Oracleと比較するとPostgreSQLは使える? 使えない?

2004/8/26

 LinuxなどオープンソースのOSが注目を集める中、データベースでもオープンソースの利用が広がってきた。オープンソースのPostgreSQLはベンダのサポートも広がり、エンタープライズでの利用が見込まれる。8月25日に開催された「Oracle Developer Days」で講演したミラクル・リナックスのマーケティング部 部長 北嶋伸安氏は「PostgreSQLとOracleには性能面、機能面で大きな乖離がある」と指摘する一方、「PostgreSQLの特性を十分に理解し、運用管理体制をしっかりすればPostgreSQLを使える場面もある」と述べた。

ミラクル・リナックスのマーケティング部 部長 北嶋伸安氏

 北嶋氏はオラクル出身。ミラクル・リナックスもオラクルの子会社だ。そのため説明は「中立ではなくオラクルのビューで話すことが多くなる」と前置きしたうえで行われた。ただ、北嶋氏はPostgreSQLを全面的に否定する考えではなく、大規模なミッション・クリティカル業務でなければPostgreSQLを利用できるという考えだ。PostgreSQLのアーキテクチャを理解し、必要な運用管理を行うことが重要になるという。

 北嶋氏はOracleと比較しながらPostgreSQLのアーキテキチャを説明した。北嶋氏によると、PostgreSQLの基本は「1テーブル=1ファイル」という考え。オブジェクトとファイルが1対1で対応し、「分かりやすいといえば分かりやすい構造」(北嶋氏)となっている。しかし、1つのディレクトリの配下にすべてのファイルが展開されることになり、I/Oの処理が滞る懸念がある。一方、Oracleは表領域に対して複数のデータファイルを設定でき、パフォーマンスを考慮したデータベース設計が可能。PostgreSQLでパフォーマンスや信頼性を向上させるにはRAIDの利用などハードウェアで対応するしかないという。

 また、PostgreSQLは追記型のアーキテクチャを採用している。データの更新・削除の際に以前のデータを残し、新しいデータは末尾に追記する方法だ。北嶋氏によると現在の商用データベースで追記型のアーキテキチャを採用している製品はない。この追記型のアーキテクチャを採用したデータベースではデータの更新ごとにファイルサイズが大きくなり、パフォーマンスの劣化が懸念される。VACUUMコマンドを使えば使用済みの領域を再利用できるが、VACUUM実行中はテーブルロックが掛かり、データベースの更新ができなかったり、パフォーマンスが低下するなどの問題もあるという。PostgreSQL 7.2以降はデータをロックせずに使用済み領域を再利用できるコンカレントVACUUMが導入されたが、コンカレントVACUUMではデータファイル自体は縮小せず、やはりデータをロックするFULL VACUUMを定期的に実行する必要がある。

 PostgreSQL 7.1から導入されたトランザクションログを使うバックアップ/リカバリも、Oracleのバックアップ/リカバリとは異なる。Oracleはデータファイルに変更があると、その変更情報がREDOログファイルに保存される。障害が発生したときはこのREDOログファイルを参照し、過去の任意の一地点に戻り、リカバリできる。一方、北嶋氏の説明によると、PostgreSQLのトランザクションログを使ってリカバリできるのは、フルバックアップを行った時点。フルバックアップ以降に行った変更はリカバリでは無視されてしまう。そのため定期的なフルバックアップが欠かせないという。

 前述したように北嶋氏はPostgreSQLを否定する立場ではない。データベースの用途によってはPostgreSQLが適することもあるという考えだ。しかし、難しいのはシステムを構築した当初はPostgreSQLが適していても、データ量が増えたり、よりミッション・クリティカルな業務での要求が高まると「PostgreSQLでは力不足になる」(北嶋氏)ということだ。PostgreSQLで構築したシステムを、Oracleなど商用データベースに移行させるのはコストと時間がかかる。そのためPostgreSQLでシステムを構築する際でも、将来の商用データベースへの移行を考えてシステムを開発する必要がある。北嶋氏は商用データベースへの移行を前提としたアプリケーション開発の注意点として「できるだけPostgreSQL固有の機能は使わない」「JDBCドライバなど汎用インターフェイスを使う」「データベース・アクセス部分を集約する」などのポイントを挙げた。

(編集局 垣内郁栄)

[関連リンク]
日本オラクル
ミラクル・リナックス

[関連記事]
LinuxとWindowsのTCOを「勝手に計算」 (@ITNews)
商用ポスグレ「PowerGres」にWindows版上位モデル (@ITNews)
オープンソースの構築相談を受け付けます、アークシステム (@ITNews)
MySQL、PostgreSQLを追撃 (@ITNews)
MySQL、開発者が明かした今後のロードマップ (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)