HA環境を構築する。(HADR)
今は、全く利用していないのですが、IBM DB2のHADR の構築手順を証跡として残した資料になります。何をやるにも、ちょっと設定が面倒なDB2.. でもやはり、商用DBは強固です
HADR構築手順 †
マシン構成 †
以下の構成でHADRを構成する手順を記載いたします。
- active
- os
CentOS release 5 (Final)
- network
- host
hostname: tenten ipaddr: 192.168.1.11
- host
- mem
total used free shared buffers cached Mem: 2075680 2017400 58280 0 9196 1459600 -/+ buffers/cache: 548604 1527076 Swap: 2031608 139756 1891852
- db2
- product
Product name: "DB2 Express-C" License type: "保証なし" Expiry date: "永続" Product identifier: "db2expc" Version information: "9.5" Max number of CPUs: "2"
- product
- os
- standby
- os
CentOS release 5 (Final)
- network
- host
hostname: neji ipaddr: 192.168.1.12
- host
- os
- mem
total used free shared buffers cached Mem: 515524 476176 39348 0 5360 224568 -/+ buffers/cache: 246248 269276 Swap: 1048568 103572 944996
- db2
- product
Product name: "DB2 Express-C" License type: "保証なし" Expiry date: "永続" Product identifier: "db2expc" Version information: "9.5" Max number of CPUs: "2"
- product
前提条件(あと注意事項) †
- active
- dbにて、tentenという名称のデータベースが作成されている
- standby
- dbは何も入っていないこと
- 注意事項(IBM からの記載事項)
DB2 Express-C で高可用性構成を組むことはできますか? できません。無償版の DB2 Express-C は単独での使用を前提としており、 高可用性構成を組むこ とは認められていません。 高可用性構成とは、ログ・シッピング、クラスタリング・ソフトウエアを使用した ホットスタンバイ構成、レプリケーション、 HADR (High Availability Disaster Recovery) などを含みます。 高可用性構成が必要な場合は Express-C + FTL または商用版 DB2 Express などの利用をご検討ください。
- 出来ないといっているわけではなく、認められていません。といっているところに注意してください。HADRに関しては動くか動かないかといわれると結果としては、動きます。当ページは、構築手法だけを記載しているもので、動作が確認された時点でHA構成は結果的に削除しておりますので、そのあたりだけご注意ください。
手順 †
- 事前準備
- active,standby共通(以下、共通を記載)
- active
- DB構成パラメータの変更(インスタンスオーナーで実行)
$ db2 update db cfg for tenten using LOGRETAIN recovery $ db2 update db cfg for tenten using HADR_LOCAL_HOST tenten $ db2 update db cfg for tenten using HADR_LOCAL_SVC DB2_HADRP $ db2 update db cfg for tenten using HADR_REMOTE_HOST neji $ db2 update db cfg for tenten using HADR_REMOTE_SVC DB2_HADRS $ db2 update db cfg for tenten using HADR_REMOTE_INST db2admin $ db2 update db cfg for tenten using HADR_SYNCMODE nearsync $ db2 update db cfg for tenten using HADR_TIMEOUT 30 $ db2 update db cfg for tenten using logindexbuild on
- データベースのバックアップ
$ db2 backup db tenten to /app/backup/ バックアップは成功しました。 このバックアップ・イメージのタイム・スタンプは 20080713160232 です。
- DB構成パラメータの変更(インスタンスオーナーで実行)
- standby
- データベースのリストア(上記にてバックアップしたファイル利用)
nfs からバックアップファイルを取得し、インスタンスオーナーのhomeにコピーしています。(ここは別にftpでもなんでもいいです。
$ cp -rf TENTEN.0.db2admin.NODE0000.CATN0000.20080713170556.001 /home/db2admin/ $ chmod -Rf 777 TENTEN.0.db2admin.NODE0000.CATN0000.20080713170556.001 $ db2 restore db tenten DB20000I RESTORE DATABASE コマンドが正常に完了しました。
- データベースのリストア(上記にてバックアップしたファイル利用)
- DB構成パラメータの変更(インスタンスオーナーで実行)
$ db2 update db cfg for tenten using HADR_LOCAL_HOST neji $ db2 update db cfg for tenten using HADR_LOCAL_SVC DB2_HADRS $ db2 update db cfg for tenten using HADR_REMOTE_HOST tenten $ db2 update db cfg for tenten using HADR_REMOTE_SVC DB2_HADRP $ db2 update db cfg for tenten using HADR_REMOTE_INST db2admin $ db2 update db cfg for tenten using HADR_SYNCMODE nearsync $ db2 update db cfg for tenten using HADR_TIMEOUT 30 $ db2 update db cfg for tenten using logindexbuild on
- スタンバイサーバの起動
$ db2 start hadr on db tenten as standby DB20000I START HADR ON DATABASE コマンドが正常に完了しました。
- HADR 起動確認
$ db2pd –hadr –db tenten Database Partition 0 -- Database TENTEN -- Active -- Up 0 days 00:01:44 HADR Information: Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes) Standby RemoteCatchupPending Nearsync 0 0 ConnectStatus ConnectTime Timeout Disconnected Sat Jul 12 23:54:06 2008 (1215874446) 30 LocalHost LocalService neji DB2_HADRS RemoteHost RemoteService RemoteInstance tenten DB2_HADRP db2admin PrimaryFile PrimaryPg PrimaryLSN S0000000.LOG 0 0x0000000001788000 StandByFile StandByPg StandByLSN S0000000.LOG 0 0x0000000001788000
- active
- プライマリの起動
$ db2 start hadr on db tenten as primary DB20000I START HADR ON DATABASE コマンドが正常に完了しました。
- HADR 起動確認(Primary がpeerになっていれば完了)
$ db2pd -hadr -db tenten Database Partition 0 -- Database TENTEN -- Active -- Up 0 days 00:00:25 HADR Information: Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes) Primary Peer Nearsync 0 0 ConnectStatus ConnectTime Timeout Connected Sun Jul 13 17:25:02 2008 (1215937502) 30 LocalHost LocalService tenten DB2_HADRP RemoteHost RemoteService RemoteInstance neji DB2_HADRS db2admin PrimaryFile PrimaryPg PrimaryLSN S0000000.LOG 0 0x0000000001788000 StandByFile StandByPg StandByLSN S0000000.LOG 0 0x0000000001788000
- プライマリの起動
参考情報 †
- DB2 HADRとTivoli System Automationを連携した高可用性システムの構築ガイド
http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/002048C4