PostgreSQL VS Oracle

Oracle OpenWorld Tokyo 2006 [3E-12] 3月3日(金) 17:30〜 18:30
Oracle Database10gが打破する
PostgreSQLの限界
ブログ検索エンジン「アクセラナビ」が
PostgreSQLからOracle Database 10gへの
移行を決断した理由
ミラクル・リナックス株式会社
プロフェショナルサービス部 部長
小田切 耕司
ミラクル・リナックスの強み
データベースならミラクル・リナックス
zOracle Databaseに最適化された製品
9 豊富な導入実績
サイバーマップ・ジャパン様、デアゴスティーニ・ジャパン様など
zPostgreSQL/MySQLのサポートも実施
9 Oracleへの移行コンサルの提供
サポートで選ぶならミラクル・リナックス
zLinuxカーネルとOracleのスペシャリストによる、質の高い
サポート
9 日本語による迅速かつ丁寧なサポート
9 ダンプ解析、緊急修正モジュールの提供
zお客様ニーズに合わせて選べる豊富なサポートメニュー
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
2
プロフェショナル サービス メニュー
高↑
プロダクトサポート
追加サービス
システム導入設計
システム分析
サービス 要求レベル
システム移行
インストール
コンサルティングサービス
24時間サポート
↓低
エンタープライズサポート
ダンプ解析
サポートサービス
緊急修正情報提供
プロダクトサポート/アップデートサポート
1ショットサポート
導入
設計
開発
運用
システムの開発/運用の流れ
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
MIRACLE LINUX 製品
MIRACLE LINUX V4.0 – Asianux Inside
大規模ネットワークやデータベース
システムの利用に最適!
MIRACLE LINUX V4.0
63,000円(税込)
1CPU/4GB限定
企業Web、ファイルサーバなどの
小規模システムでのご利用に!
MIRACLE LINUX One V4.0
37,800円(税込)
MIRACLE LINUX With Oracle10g
MIRACLE LINUXとOracle10gが
セットになった、お得なパッケージ
製品です!
WITH Oracle10g SE One
(5NUP)
153,300円(税込)
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
4
サポート付き製品〜バリューパック登場!
MIRACLE LINUX V4.0
バリューパックはこんなにお得!
1. 「年間プロダクト・サポート契約」と
「MIRACLE LINUX V4.0」がセット!
2. 単体で購入するよりも割安!
3. 一括して複数年契約すると格安!
バリューパック
年間プロダクトサポート
定価:¥157,500
MIRACLE LINUX V4.0
定価:¥63,000
年
RHEL AS
MLV4.0
定価
バリュー
パック
バリューパック・
キャンペーン
1年
¥207,900
¥220,500
¥189,000
¥157,500
約6万3千円お得!
3年
¥529,200
¥535,500
¥472,500
¥420,000
約11万円お得!
5年
¥882,000
¥850,500
¥756,000
¥682,500
約17万円お得!
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
別々で購入するより・・
5
PostgreSQLとOracleの違い
〜PostgreSQLの適用範囲を考える〜
アジェンダ
¾ イントロダクション
¾ アーキテクチャ編
¾ その他機能、周辺環境編
¾ Oracle vs PostgreSQLベンチマーク編
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
7
PostgreSQLとは
¾ カリフォルニア大学バークレー校で開発されたpostgresが原型。
(2006年7月で開発10年目)
¾ オープンソースとして公開。ライセンスはBSDスタイル。
¾ 日本におけるコミュニティの普及活動や、その機能の多彩さ、そ
して当初からライセンス条項が寛容だったため、オープンソース
DBMSとしては、(たぶん)日本で一番普及している。
(世界的に見るとMySQLの方が普及率は高い)
¾ 最新のバージョンは8.1.3(2006年2月14日)。
一般ユーザが特権ユーザに昇格できてしまうというセキュリティ
ホールのためにバージョンアップ
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
8
PostgreSQLを選択する理由
Case1
¾開発予算の無いシステムや投資した
予算に対する採算性が保証できない
システム
Case2
¾OSもオープンソースならば、DBMSも
オープンソースのものをという選択
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
9
安易な選択は禁物
¾ 当初はミッションクリティカルではなかった。
アクセス数も少なく検索中心。
インターネットの怖いところは
急激にアクセス数が増加すること
¾ データの量と質の変化
¾アクセス数やデータ量の増加。
¾カード決済情報など、重要な情報が占める割合の
増加。
¾計画時には予想もしない利用方法が要求されるように
なるとPostgreSQLでは力不足。しかし、その時点でDB
移行を検討しても、そんなに簡単なことではない。
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
10
DBMS選択時の基準
¾
¾
¾
¾
¾
¾
¾
¾
安定性・信頼性
実績
パフォーマンス
拡張性・スケーラビリティ
管理のしやすさ
開発のしやすさ
開発ツールとの相性
他システムとの連携のし
やすさ
¾
¾
¾
¾
¾
¾
¾
¾
製品としての将来性
価格
技術情報の豊富さ
ベンダーのサポート体制
ベンダーの教育体制
使用するOS
保有しているスキル
協力会社の見つけやすさ
→ 何を重要視するかはシステム要件次第
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
11
アーキテクチャ編
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
12
PostgreSQLのプロセス構造とファイル構造
フロントエンド
バックエンド
接続要求
①
psqlなどの
アプリケーション
psqlなどの
アプリケーション
共有メモリバッファ
shared_buffer
postmaster
②
fork()
SQL/問い合わせ結果
SQL/問い合わせ結果
③
postgres
postgres
データベースクラスタ
template0
template1
ユーザーDB
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
トランザク
ションログ
13
Oracleのプロセス構造とファイル構造
リスナープロセス
データベースインスタンス
tnslsnr
接続要求
①
SQL*Plusなどの
アプリケーション
LCK0
ユーザープロセス
SMON
PMON
② プロセス
起動
SGASGA
SQL/結果
SQL*Plusなどの
アプリケーション
RECO
oracle
oracle
oracle
③
CKPT
ARCH
サーバープロセス
DBW0
LGWR
アーカイブ
ファイル
データベース
データファイル
REDOログ
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
制御ファイル
14
PostgreSQLの特徴
PostgreSQLのもっとも特徴的な機能
¾ 追記型アーキテクチャ
z 更新・削除時には、以前のデータを残したままにし
ておき、新しいデータを末尾に追記する
z 単純な仕組みでロックなしの読み取り一貫性を実現
¾ トランザクションログ
¾高信頼性とハイパフォーマンスを実現
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
15
PostgreSQLの更新の仕組み
¾ PostgreSQLのMVCCでは
以前のデータを残したまま
にしておき、新しいデータを
末尾に追記する。
UPDATE
OID
1000
1000
XID
100
105
番号
1
1
部門
開発
開発本部
¾ データを変更するとXIDを
インクリメントする。可視範囲のデータは、現在の
XID以下のXIDを持つデータのみ。
感覚的には、OIDはOracle
のROWIDに相当し、XID
はOracleのSCNに相当
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
16
根本的なアーキテクチャの違い
〜追記型アーキテクチャの問題〜
Oracle
PostgreSQL
ディスク領域を再利用
追記型アーキテクチャ
削除
・削除された領域は、
再利用可能。
・更新は、変更する
列データのみ変更。
・24時間365日の
運用が可能
更新
・削除や更新は、変更対
象のデータに使用済みフ
ラグを立て、最後にデー
タを追加。
更新
削除フラグ
更新フラグ
更新フラグ
・1列更新するだけでも、
全データを新規にコピー
・トランザクションが発生
するシステムでは、使用
ディスクサイズが増加し、
パフォーマンスも劣化。
新しいデータ
新しいデータ
新しいデータ
・定期的にデータベースを停止して
メンテナンスをする必要あり。
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
17
VACUUM(バキューム)の問題
¾ 使用済みの領域を再利用するには、VACUUMコマンドを
実行する必要がある。ただしVACUUM実行中はロックが
かかるので、その間データベースにアクセスできない。
¾ PostgreSQL 7.2以降、データをロックしないコンカレント
VACUUMが導入された。この機能によって、ロック無しで
使用済み領域を再利用できる。
¾ それでもデータファイル自体は縮小しないので、データを
ロックするFULL VACUUMを定期的に実行する必要あり。
¾ PostgreSQLの場合、1日に一度のVACUUMを推奨。
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
18
コンカレントVACUUME vs VACUUM FULL
¾ コンカレントVACUUMでは、領域を再利用可能にするだけで、ファイルは
縮小しない。その代わり排他ロックは不要。
元のファイル
削除された行
VACUUME
FULL
更新された行
コンカレント
VACUUME
再利用可能
更新された行
再利用可能
新しいデータ
新しいデータ
新しいデータ
新しいデータ
新しいデータ
新しいデータ
再利用可能
新しいデータ
新しいデータ
新しいデータ
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
19
PostgreSQL/MySQLから
Oracleへの移行サービス
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
20
PostgreSQLからの無償移行相談サービス
PostgreSQLからOracleデータベースへの移行をご検討中のエンドユーザー
様を対象に、Oracle Directがその移行手順をご紹介いたします。
0120-155-096
http://www.oracle.co.jp/direct/p2o.html
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
21
移行コンサルティング・サービス概要
Linux or Windowsサーバ
Oracle移行前提の
アプリケーション
設計支援
Oracle移行前提の
データベース
設計支援
アプリケーション移行サービス
PHP
Java
MIRACLE LINUX
Tomcat/JBoss/PHP
C#
PostgreSQL
/ My SQL
User Data
Java
データベース移行サービス
ユーザデータ移行サービス
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
PHP
Oracle
User Data
22
OSSデータベース移行診断サービス
¾ サービス内容:
PostgreSQLやMySQLのデータベースをOracle Database へ移
行する場合のデータベース設計・テーブル設計・移行方式検討
を実施するサービス
¾ 費用: 60万円〜
¾ 納品物:データベース設計・移行方式検討書、データベース構築
スクリプト
¾ 移行元対象DB:PostgreSQL, MySQL
¾ 移行元対象OS:Windows / UNIX / Linux
¾ 移行先対象DB:Oracle Database
¾ 移行先対象OS:MIRACLE LINUX , Red Hat Enterprise Linux
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
23
ユーザデータ移行サービス
¾ サービス内容:
PostgreSQLや MySQLを対象としたユーザアプリケーションを
Oracle Database へ対応させる場合に発生するデータの移行を
実施するサービス
¾ 費用: 60万円〜
¾ 納品物 :データ移行方式検討書、報告書(PDF)、データ移行プ
ログラム(スクリプトを含む)
¾ 移行元対象DB:PostgreSQL, MySQL
¾ 移行元対象OS:Windows / UNIX / Linux
¾ 移行先対象DB:Oracle Database
¾ 移行先対象OS:MIRACLE LINUX , Red Hat Enterprise Linux
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
24
ユーザアプリケーション移行診断サービス
¾ サービス内容:
PostgreSQLや MySQLを対象としたユーザアプリケーションを
Oracle Database へ対応させる場合に発生する影響度を診断
するサービス
¾ 費用:90万円〜
¾ 納品物 :ユーザアプリケーション 診断報告書(PDF)、
¾ 対象言語:Java, PHP, C# (上記以外は相談により)
¾ 移行元対象DB:PostgreSQL, MySQL
¾ 移行元対象OS:Windows / UNIX / Linux
¾ 移行先対象DB:Oracle Database
¾ 移行先対象OS:MIRACLE LINUX , Red Hat Enterprise Linux
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
25
OSSデータベース設計支援サービス
¾ サービス内容:
PostgreSQLやMySQLのデータベースを設計する際に、将来
Oracle Database への移行をスムーズに行えるようにデータ
ベース設計・テーブル設計の支援やレビューを実施するサー
ビス
¾ 費用:60万円〜
¾ 納品物 :データベース設計・移行方式検討書、データベース
構築スクリプト
¾ 対象DB:PostgreSQL, MySQL
¾ 対象OS:MIRACLE LINUX , Red Hat Enterprise Linux
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
26
ユーザアプリケーション設計支援サービス
¾ サービス内容:
PostgreSQLやMySQLのデータベースアプリケーションを
設計する際に将来Oracle Database への移行をスムーズ
に行えるようにユーザアプリケーションの設計の支援やレ
ビューを実施するサービス
¾ 費用:90万円〜
¾ 納品物 :ユーザアプリケーション 診断報告書
¾ 対象言語:Java, PHP (上記以外は相談により)
¾ 対象OS:MIRACLE LINUX , Red Hat Enterprise Linux
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
27
アクセラテクノロジ様のDB移行
¾ PostgreSQL利用時の問題
¾ 2000万記事程度までは問題なく運用できる反面、ある規模を
超えると急激に速度低下する
¾ そのため記事が2000万記事を超えるたびに、PostgreSQL のテー
ブル分割やインスタンス増設を実施(2台で5インスタンス)
¾ インスタンスを追加するたびにアプリを改修要
¾ 6000 万記事を超える辺りから、インスタンスを増設しても性能劣
化が発生
¾ システム負荷が高い(CPU のロードアベレージが常時20 以上と
なる)
¾ そのため定期的に行っていたオンラインバキュームが3日かけて
も終了せず、 4TBのディスク容量を圧迫し始めた。
¾ フルバキュームの必要を感じたがシステムは止められない
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
28
アクセラテクノロジ様のDB移行
¾ Oracle移行の目的
¾2台で5インスタンスだったPotsgreSQLを1サーバ1イン
スタンスのOracle 10g 64bit版へ移行
¾データレコードは約1億件、元のデータ容量は3.5TB
¾データベーススキーマの見直し、および移行方法支援、
オラクルチューニングをミラクル・リナックスが支援
¾1千万件のデータ移行に約1日かかり、
全部で10日以上かかる。
¾PostgreSQLの読み出しが遅いのがボトルネック
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
29
移行システム構成
移行前
移行後
Internet
Internet
•Accela BizSearch
(検索エンジン)
•Apache
•Perl+PHP4.0
•Accela BizSearch
(検索エンジン)
•Apache
•Perl+PHP4.0
接続するインスタンスは1つ
アプリ側で接続する
DBを切り替え
PostgreSQL8.0.3
OS:SuSE Linux 32bit
・Oracle10g EE 1CPU
•Partitioning option
・OS:MIRACLE LINUX V3.0
2台のサーバで
5つ以上のインスタンスが稼動
Copyright © 2000-2005 MIRACLE LINUX CORPORATION All rights reserved
64bit
Oracle による
パーティション切り替え
30
【お問い合わせ先】
https://www.miraclelinux.com/contact/
ミラクル・リナックス株式会社 【無断転載を禁ず】
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。ミラクル・リナックス(株)は本書の内容に
関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。又、本資料の著作権は特
に指定されている箇所を除いて、ミラクル・リナックスが有します。ミラクル・リナックスが著作権を有するコンテンツにつきましては、ミラクル・リ
ナックスに対して無断で複製、改変、頒布などをすることはできません。
MIRACLE LINUX の製品名、ロゴ、サービス名などは、ミラクル・リナックスが所有するか、使用権許諾を受けている商標もしくは登録商標で
す。その他、本 Web サイトに掲載されている他社の製品名、ロゴなどは、それぞれ該当する各社が所有する商標もしくは登録商標です。