PostgreSQL 超入門 第2回(2)
2.3 長期間にわたる維持管理
PostgreSQLの開発に参加しているのは、大変優秀な技術者達です。しかし、80万行ものプログラムは、印刷すると 1万ページを超えるのです。どうしても公開後に細かな不具合が見つかったり、脆弱性が見つかったりします。
こういった問題点は発見される都度修正していく必要があります。Windows や他のソフトウェアでも定期的にアップデートがあり、不具合や脆弱性が修正されていますが、PostgreSQL でも同様のことが行われています。これをソフトウェアの「維持管理」といいます。
データベース管理システムは、業務システムの一部として組み込まれることが多く、業務システムは何年にも渡って運転を続ける必要があります。安全にシステムを運転し続けるためには、不具合や脆弱性の修正をこまめに行う必要があります。
PostgreSQL では、ほぼ毎年新しい機能を追加したり性能を改善した版を公開しています。これを「メジャーバージョン」とよんでいます。維持管理は、最新のメジャーバージョンだけでなく、過去に公開したメジャーバージョンに対しても行われています。
その結果、同じ PostgreSQL でも異なるプログラムが世の中に出回ることになるので、これを「バージョン番号」で区別するようにしています。PopstgreSQL のバージョンは、次に示すように 3つの数字の組み合わせで区別しています。
ここで、最初の2つの数字がメジャーバージョンを示していて、最後の数字が維持管理をした「マイナーバージョン」を示しています。この例では、 8.3.0(単に8.3と呼ぶこともあります)が公開された後、5回に渡って不具合や脆弱性の修正がなされたことを示しています。
現在 PostgreSQL では、次に示すメジャーバージョンに対する維持管理が行われています。
7.4 , 8.0 , 8.1 , 8.2 , 8.3
5つのメジャーバージョンに対する維持管理が同時に行われているのです。この記事執筆時点で公開されている PostgreSQL の最新バージョンは、各メジャーバージョンごとに
7.4.23 , 8.0.19 , 8.1.15 , 8.2.11 , 8.3.5
です。なお、バージョン7.4については、品質も十分であり、新たに発見される不具合も 8.0 以降に開発された機能に関するものがほとんどであることから、維持管理の終結が検討されています。
2.4 業務システムに耐える品質・機能と性能
PostgreSQL のプログラムを公開するにあたって世界中の技術者がチェックし、試験することで高い品質を保っていることは前に述べた通りです。これに加え、 PostgreSQL を業務システムに利用したいユーザが積極的に性能改善と機能拡張を行ってきた結果、PostgreSQL は業務システムに充分耐える機能と性能を持つようになってきました。
最近のメジャーバージョンのリリース毎にどのような拡張、改善がなされてきたのか、主なものを追跡してみます(これ以外にも、これらのリリースの度に 100 近い改善が盛り込まれています)。
- 8.0 運転中のバックアップの作成と、これを使ったデータベースの復旧機能の追加
- 8.1 複数のデータベースで分散処理を行うための機能の追加(2相コミット)
- 8.2 データベースへのデータの格納効率の改善
- 8.3 データベースの性能改善、XMLサポート、全文検索機能、自動メンテナンス
図2-1 に、各メジャーバージョンが公開された日付と最新のマイナーバージョンが公開された日付を示します。
又、現在、バージョン 8.4 の開発も進行中で、ここにも多くの機能や改善が盛り込まれると期待されています。
2.5 PostgreSQL の入手方法
入手の方法は3つあります。
- Linux のディストリビューション
多くの Linux ディストリビューションがありますが、そのほとんどには PostgreSQL が含まれています。手間いらずですが、最新の PostgreSQL を使うのは多少面倒になります。 - PostgreSQL コミュニティ
PostgreSQL コミュニティでは、上記各バージョンの PostgreSQL を、種々のハードウェアやオペレーティングシステム用に提供しています。PostgreSQL Global Deveropment Groupのサイトにダウンロードのページがあり、ここからプログラムのダウンロードができます。ソースコードをダウンロードして自分の環境に合わせることもできます。 - サードパーティ
PostgreSQL に関連するツールを組み合わせたり、PostgreSQL に独自の改良を加えたりしたプログラムを入手することもできます。これも、PostgreSQL コミュニティのページにいくつか紹介があります。
用語集
- メーリングリスト:
- PostgreSQLのコミュニティには、hackers、general、bugs、announce など、多くのメーリングリストがある。それぞれ、開発や内部実装の議論、一般的な質問、不具合の報告、ニュースリリースのためのもの
- 脆弱性(ぜいじゃくせい):
- 本来できてはならない操作ができてしまったり、見えてはならないデータが見えてしまうような不具合のこと
- 維持管理:
- ソフトウェアの不具合や脆弱性を修正したり、新しいハードウェアやオペレーティングシステムでソフトウェアが動くようにプログラムを修正していくこと
(2008年11月25日公開)