Comments
Description
Transcript
Online Split Mirror
Online Split Mirror <第1.02版 2005年 7月> お断り:当資料は、DB2 Universal Database for Linux, UNIX and Windows V8.2(V8.1 + FixPak9) をベースに作成されています。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. Online Split Mirror DB2 UDB運用管理 目次 1.Split Mirrorイメージを利用したOnlineバックアップ FlashCopyを利用したBackup手順の例 (参考)AIX環境でのFlashCopyにおける考慮点 2.SET WRITE SUSPEND/RESUMEコマンド 3.db2inidbユーティリティー db2inidb-SNAPSHOTdb2inidb-STANDBYdb2inidb-MIRROR- 4.WRITE SUSPEND時の状態 SUSPEND I/O時の制約 SUSPEND I/O時の異常終了後のクラッシュ・リカバリー 5.Split Mirrorイメージからのバックアップ 6.Split Mirrorシナリオ Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 2 Online Split Mirror DB2 UDB運用管理 Split Mirrorイメージを利用したOnlineバックアップ ESS FlashCopyなどのハードウェア・ベースのデータ・バックアップ、 コピー機能を使用したDBバックアップ/リストア運用をサポート z ESSの有料フューチャーである、FlashCopy、Peer-to-Peer Remote Copy(OORC) を利用して、短時間でDiskのコピー・イメージを取得する z Backupユーティリティーを使用するよりも高速にバックアップの取得が可能 FlashCopy (Local) Peer-to-Peer Remote Copy (PPRC:対等リモート・コピー) 機能 瞬時にデータのコピーを取得する機能 ディスク・ボリューム単位でコピー AIXではhdisk単位 利点 バックアップ処理によるアプリケーション停止時間の大幅な削減 テスト・データの容易な作成 データの容易な複製(BIアプリケーションへの利用など) 起動 Webアプリケーション (ESS specialistの初期画面から、Copy Servicesを起動) Web I/F+ command フィーチャー 有料フィーチャーが必要 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 3 Online Split Mirror DB2 UDB運用管理 解説:Split Mirrorイメージを利用したバックアップ ¾ ¾ ¾ ¾ 近年、24時間365日DB2を止めることができないようなサービス形態は増加の一途をたどっています。また負荷分散、デー タ保護などのため、データベースを「ミラー化」する、という要件も多くなっています。さらにテラバイトを超えるよう なDBのバックアップ/リストアをDB2提供のBACKUP DB/RESTORE DBで行うことが現実的でないようなケースも出てきていま す。 DB2 UDB V7.1以前までは、DB2 UDBとしてESS FlashCopyや他のOS提供のコピーを使用したBackup/Recovery手順がサポート されず、db2コマンドとしてのbackup/restore/rollforwardコマンドを使用せざる得ませんでした。 DB2のユーティリティーである、Backup/Restore DBは、ESS FlashCopyなどに比べるとDBバックアップ取得の処理は遅く、 またReadのみを許可し、Writeを許可しないモードがDB2から提供されていなかったため、OS提供のコピーを使用した Backupを取得しようとする場合には、DBを停止しなければなりませんでした。 OnlineのDBからFlash Copyのようなハードウェア・ベースのデータ・バックアップ、コピー機能を使用して、Split Mirrorイメージを取得するため、DB2 UDB V7.1のFixpak1からは、新しいコマンドが提供されました。 z Split Mirrorイメージには、データベースを構成するすべてのコンテナーおよびディレクトリー (ボリューム・ディレクトリーを含む) を含んでいることを確認してください。 ¾ ¾ ¾ ¾ Flash Copy、Peer-to-Peer Remote Copy(PPRC)は、それぞれ IBM TotalStorage Enterprise Storage Server(ESS)の提 供する有料フィーチャーである、ESSコピーサービスとして提供される機能です。また、 IBM TotalStorage DSファミリー 製品でもFlashコピーはサポートされています。 Flash Copyは、ESSのボリュームのポイント・イン・タイム・コピーの取得を可能にします。つまり、FlashCopyが実行され るとその時点でのDISKのコピーを取得することができます。FlashCopyは数秒で完了する非常に速い処理で、FlashCopyの 完了後はOriginalとCOPYの両方を使用できます。 PPRCは、あるESSのひとつのLogical Unit(LUN)から2番目のESSにある別LUNへのリアルタイムのミラーリングを可能にす る、同期プロトコルです。この2番目のESSは遠隔地に置くことができます。PPRCはアプリケーションから独立しています。 コピーはディスクサブシステム単位で行われるため、アプリケーションからはそのコピー機能の存在を意識することがあ りません。 ESS FlashCopyのサイト http://www.ibm.com/jp/storage/products/disk/ess/flash.html Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 4 Online Split Mirror DB2 UDB運用管理 Split Mirrorイメージ取得時のコマンド OnlineのDBからFlashCopyなどのハードウェア・ベースのデータ・バックアップ、 コピー機能を使用してSplit Mirrorイメージを取得するためのコマンドが提供さ れている set write suspend for database すべてのTablespaceとLogに対するDISK書き込みを禁止 SELECT/INSERT/UPDATE/DELETEとも、表スペースやLOGのDISKへの書き込みを発生し ない限り実行可能 z 書き込み禁止状態になったDBからFlashCopyのような機能を使ってSplit Mirrorイ メージを取得する z z set write resume for database z z Suspend write状態の解除 Split Mirrorイメージの取得完了後、直ちにこのコマンドで書き込み禁止状態を解 除する db2inidbユーティリティー z 取得されたデータベースのSplit Mirrorイメージの用途を決定する ¾ ¾ ¾ SNAPSHOT STANDBY MIRROR Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 5 Online Split Mirror DB2 UDB運用管理 FlashCopyを利用したBackup手順の例 手順 z データベースへの書き込みをWAITさせる、Write Suspend状態にする ¾ DBのsuspend – set write suspend for database 実行 z Split Mirrorイメージの取得 ¾ FlashCopy実行(web I/F or CLI) – Disk cache中のdataはFlashCopy実行時にdiskにdestageされる。 – FlashCopyの論理コピー実行(同期確立)でシステムからはコピー完了と見える – CLI taskは、同期確立でpromptが戻る z Write Suspend状態の解除 ¾ DBのresume – set write resume for database 実行 z 同期確立後、target側diskの認識 ¾ cfgmgr/importvg/fsck/mount ¾ target側で業務開始 z FlashCopyの物理データコピー終了 z webから実行の場合は画面で確認可能 z 取得されたSplit Mirrorイメージの用途を決定 ¾ db2inidbユーティリティーを使用 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 6 Online Split Mirror DB2 UDB運用管理 (参考)AIX環境でのFlashCopyにおける考慮点 DB2,またはAIXが書込みを停止できないファイル・システムについ ては取得対象のコピー元として考慮が必要 z FlashCopyの論理コピー中に、ファイル・システムに書き込みが発生すると、ター ゲット側のファイル・システムの整合性が失われる場合がある z 考慮が必要な環境(注1) ¾ ¾ ¾ DBMS:DB2 UDB for AIX V7.1(FP2以降)、V7.2、V8.1、V8.2 OS:AIX V4、V5でJFSまたはJFS2を使用している環境 Storage:IBM TotalStorage ESS / DSファミリー FlashCopy機能 等 z 考慮が必要なデータ ¾ インスタンス・ホームディレクトリー ¾ SMS一時表スペース ¾ アーカイブログ・ディレクトリー ¾ DB2運用のためのWork領域、Diagpath等 z 理由 ¾ DB2のSET WRITE SUSPENDコマンドで書込みを停止することができない ¾ ディスクへの同期書込みを行っていない(AIXのキャッシュから非同期に書き込まれる可 能性がある) z 対応方法 ¾ FlashCopyの対象外とする ¾ 可能であればFlashCopy前にunmountする ¾ SMS一時表スペースについては、DMS File/Raw いずれかで作成すれば回避可能 等 詳細は、Technote(Reference #:1191417)参照 (注1)Storage,OSとの連携に関わる部分に関しては、製品の新しい機能により、当資料の情報が更新される可能性があることをご了承く ださい。最新の状況をご確認いただくようお願いいたします。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 7 Online Split Mirror DB2 UDB運用管理 解説:(参考)AIX環境でのFlashCopyにおける考慮点 ¾ FlashCopyの論理コピー中にDB2,AIXからファイル・システムに書き込みが発生すると、ターゲット側のファイル・システ ムの整合性が失われる場合があるため、DB2,またはAIXが書込みを停止できないファイル・システムについてはコピー元の 取得対象として考慮が必要です。 考慮が必要となる環境は以下の組合せになります。 z DBMS:DB2 UDB for AIX V7.1(FP2以降)、V7.2、V8.1、V8.2 z OS:AIX V4、V5でJFSまたはJFS2を使用している環境 z Storage:IBM TotalStorage ESS / DSファミリー FlashCopy機能 等 (※お断り) Storage,OSとの連携に関わる部分に関しては、製品の新しい機能により、当資料の情報が更新される可能性があることを ご了承ください。最新の状況をご確認いただくようお願いいたします。 ¾ ¾ FlashCopyの対象外とすべきデータは以下の通りです。 z インスタンス・ホームディレクトリー (理由) • • • ¾ DB2のSET WRITE SUSPENDコマンドで書き込みを停止することができない ディスクへの同期書き込みを行っていないため、ディスクに書かれていないデータが、AIXのキャッシュ上に残る可能性がある unmountするにはDB2の停止が必要 FlashCopyを実施する際に考慮が必要となるデータは以下の通りです。 z SMS一時表スペース z アーカイブログ・ディレクトリー z DB2運用のためのWork領域 z 構成パラメータで指定されたDiagpath z DB2 Load Copyファイル z DB2 Export先のファイル z DB2 BACKUPコマンドで取得したバックアップイメージ 等 (理由) • • DB2のSET WRITE SUSPENDコマンドで書き込みを停止することができないため (アーカイブログ、DIAGPATH、work領域など) ディスクへの同期書き込みを行っていないため (SMS 一時表スペース、DB2 Load Copy/Export/Backupファイル) Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 8 Online Split Mirror DB2 UDB運用管理 解説:(参考)AIX環境でのFlashCopyにおける考慮点(続き) ¾ 対応方法 z FlashCopyの対象外とする z 可能であればFlashCopy前にunmountする • z ¾ インスタンス・ホームディレクトリーはunmountするということ、すなわちDB2の停止が必要となるため、基本的には対象外とする。 但し、インスタンスホーム下の重要なファイルについては、FlashCopy以外の方法でテープ装置等へのバックアップを行うことを推奨 します。 SMS一時表スペースについては、DMS File/Raw いずれかで作成すれば回避は可能。 なお、以下については、FlashCopyの対象とすることが可能です。 アクティブ・ログディレクトリー Regular/Large表スペース(SMS/DMS) システムカタログ表スペース(SMS/DMS) 一時表スペース(DMS) ローカル・データベース・ディレクトリー (理由) • 上記ファイル・システムに関しては、DB2のSET WRITE SUSPENDコマンドで書き込みを停止することが可能です • また、常にディスクへの同期書き込みを行っているため、ディスクに書かれていないデータが、AIXのキャッシュ上に残りません。 (考慮点) • アクティブ・ログディレクトリー ¾SET WRITE SUSPENDコマンド実行時、Log Buffer内のログ・ページはディスクへForce Writeされるが、バッファープール内に あるデータ・ページは、ディスクへForce Writeされない。 ¾正Volumeから副Volumeにコピーバックし、db2inidb as mirrorコマンドによりリカバリーする際には、以下のいずれかの対応 が必要 1. アクティブログディレクトリーはコピーバックの対象としない(あらかじめ、他のFSとFlashCopyのタスクを分けておく) 2. プライマリー側のアクティブログを他の領域に退避させ、コピーバックを行う • Regular/Large表スペース ¾SMS Regular/Large表スペースを使用している場合には、DB2 LOADコマンド実行中にFlashCopyを実行しないこと z z z z z ¾ 詳細は、World Wideで発行されているTechnote(Reference #:1191417)を参照 z 参照先リンク:http://www1.ibm.com/support/docview.wss?rs=71&context=SSEPGG&dc=DB520&q1=flashcopy&uid=swg21191417&loc=en_US&cs=utf -8&lang=en Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 9 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 10 Online Split Mirror DB2 UDB運用管理 SET WRITE SUSPEND/RESUME コマンド >>-SET--WRITE--+-SUSPEND-+--FOR--+-DATABASE-+------------------>< '-RESUME--' '-DB-------' set write suspend for database z 全ての表スペースとログに対するDISKへの書き込みを禁止 z すべてのTablespaceとLogに対するDISK書き込みを禁止 ¾ 書き込み禁止のリソースへの書き込み要求はWAIT状態になる ¾ バッファープールへの書き込み、ログバッファーへの書き込みは認める z SELECT/INSERT/UPDATE/DELETEとも、表スペースやLOGのDISKへの書き 込みを発生しない限り実行可能 バッファープール、ログバッファーに空きがある限り、UPDATE/INSERT/DELETEの 実行可能 ¾ 更新トランザクションのCOMMITは、ログバッファーのDISKフラッシュをするので WAITになる ¾ 一時表スペースへの書き込みが必要なSELECTはWAITになる ¾ z 発行するとLog Buffer内のログは、DiskへForce Writeされる ¾ バッファープール内にあるページは、DiskへForce Writeされない ¾ 途中のログは、トランケートされる z 書き込み禁止状態になったDBからFlashCopyのような機能を使ってSplit Mirror イメージを取得する ¾ DBを停止する必要はなし set write resume for database z Suspend write状態を解除 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 11 Online Split Mirror DB2 UDB運用管理 解説:SET WRITE SUSPEND/RESUME コマンド ¾ ¾ ¾ ¾ ¾ SET WRITE SUSPENDを実行した同じ接続からSET WRITE RESUMEコマンドを発行することが推奨されています。 set write suspend for database z すべてのTablespaceとLogに対するDISK書き込みを禁止します。DISK書き込み禁止の状態になっても、バッファー プールやログバッファーといったメモリー上の領域への書き込みは禁止しません。 ですから、SELECT/INSERT/UPDATE/DELETEとも、DISKへの書き込みが発生しない限り実行可能です。 すなわち、バッファープール、ログバッファーに空きがある限り、UPDATE/INSERT/DELETEの実行は可能ですが、それ らをCOMMITしようとした時点でWAIT状態になります。COMMITはログバッファーのフラッシュをするからです。 また、SELECTであっても書込み禁止のDISKへの書き込みを必要とする場合、WAIT状態になる可能性があります。 z 書き込み禁止されたリソースに書込み要求をしてWAITになる例: – SELECT でもORDER BYをし、そのシステム一時表スペースへ書き込みをする場合 – そのSELECT自身がDirty Page(Bufferpool上にあるデータで変更があったページ)をdiskへ書き戻しを要求する ような場合 z SET WRITE SUSPEND FOR DATABASEが発行されるとLog Buffer内のログはDiskへForce Writeされます。 z バッファープール内にあるページはDiskへForce Writeされません。 z set write suspendコマンドが実行された時点で、使用されていたアクティブ・ログ・ファイルは、トランケートさ れます。 z バッファープール内のDirtyページに書かれた情報はSplit Mirroredイメージには書かれないことになりますが、ロ グには反映されています。後ほどこのSplit Mirrorを使用するときにはCrashリカバリー(またはROLLFORWARD)を実 行することでログにある更新情報をSplit Mirrorイメージの方へ反映させることができます。 set write resume for database z Suspend_write状態を解除します。 (DBが異常終了していない場合に)クラッシュ・リカバリーを実行せずにDB入力許可を再開。 SET WRITE SUSPENDコマンドを発行した接続がハングし、WRITE RESUMEを実行できなくなった場合には、RESTART DATABASE コマンドにて、WRITE RESUMEを指定して実行すると、(DBが異常終了していない場合には)クラッシュ・リカバリーが実 行されずにDBが再始動します。(後述) Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 12 Online Split Mirror DB2 UDB運用管理 db2inidbユーティリティー 取得されたSplit Mirrorイメージの用途を決定する >>-db2inidb--database_alias--AS--+-SNAPSHOT-+-------------------> +-STANDBY--+ '-MIRROR---' >--+----------------------------+------------------------------>< '-RELOCATE USING--configFile-' z Snapshot ¾ Crashリカバリーが実行され, Write Suspend状態が解除 ¾ Split Mirrorが取得された時点でCOMMITもROLLBACKもされていないトランザクション はROLLBACKされる ¾ 循環ログを用いているDBからのSplit Mirrorには、このオプションのみ使用可能 z Standby ¾ Crashリカバリーは実行せず、DBをRollforward Pending状態にする。Write Suspend状 態は解除 ¾ OriginalのDBで生成されたログファイルを使って随時ROLLFORWARDを実行 z Mirror ¾ Crashリカバリーは実行せず、DBをRollforward Pending状態にする。Write Suspend状 態は解除 ¾ Split MirrorをあたかもDBのバックアップのように使用する際に指定 ¾ Split MirrorをPrimaryDB上に戻してから db2inidb ... as mirror を実行 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 13 Online Split Mirror DB2 UDB運用管理 解説:db2inidbユーティリティー ¾ ¾ ¾ ¾ ¾ SET WRITE SUSPENDコマンドは、ログバッファーのフラッシュは行いますが、バッファープール上のDirtyページのフラッ シュは行いません。ですから、取得したSplit Mirrorイメージは整合性の取れていない状態にあります。 db2inidbコマンドは、取得したSplit Mirrorイメージをどのような目的に使用するのかをDB2に知らせるために使用します。 スナップショット z Crashリカバリーが実行され、Write Suspend状態が解除されます。新しいLOG CHAINが始まるため、元のデータベース のいかなるログからもロールフォワードは実行できません。 – db2inidb <db_name> as snapshot z db2inidbコマンドが完了した時点で、データベースはバックアップを含むすべての作業を行えるようになります。循 環ログ方式を用いている場合、SNAPSHOTのみ指定可能です。 スタンバイ z データベースをロールフォワード保留状態にします。 – db2inidb <db_name> as standby z スタンバイとミラーの両オプションではCrashリカバリーは実行されません。また、実行途中のトランザクションは未 解決のままになるため、データベースは不整合状態のままです。 z STANDBYオプションでdb2initdbコマンドが実行されたSplit Mirrorは、ROLLFORWARD保留状態のままセカンダリーDBに おいておきます。Primaryで生成されたログファイルは随時SecondaryへROLLFORWARDを使って適用してゆきます。 Secondaryを使いたくなった時点でROLLFORWARD ...COMPLETEを実行すれば良いわけです。 ミラー z ミラーコピーは元データベースに置きかえられ、データベースはロールフォワード保留状態になり、そしてWRITE SUSPEND状態は解除されます。 – db2inidb <db_name> as mirror z 分割されたDBイメージのログではなく、プライマリーDBのログを使ってROLLFORWARDを実行することが必要です。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 14 Online Split Mirror DB2 UDB運用管理 db2inidb-SNAPSHOT 読み取り専用のセカンダリーDBに、アプリケーション用にある時点 のプライマリー DBのクローンを作成する Data Data Active Log Active Log z Primaryからアーカイブログ は転送しない Archived Log DataBase DataBase Secondary Primary Q SNAPSHOT手順 O 1.Primaryにてdb2 set write suspend for database O 2.OS LevelでのPrimaryからSecondaryへCopyを実施 O 3.Primaryにてdb2 set write resume for database O 4.Secondaryにてdb2start O 5.Secondaryにてdb2inidb <DB> as snapshot ( =>Read/Write使用可能状態) Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 15 Online Split Mirror DB2 UDB運用管理 解説:db2inidb-SNAPSHOT¾ ¾ ¾ ¾ ¾ ¾ db2inidb..as snapshotを実行すると、Split Mirrorイメージ取得時に未了であったトランザクションがロールバックされ、 Primaryデータベースからのいずれのログもクローン・データベース上で再生されないように、新規ログ・チェーン・シーケ ンスを開始します デフォルトでは、Primaryからコピーされたデータベースは、同じPrimaryのシステム上に存在させることはできません。 ミラーリングされたデータベースは、同じディレクトリー構造を持ち、 Primaryデータベースと同じインスタンス名を使用す る Secondaryシステム上に置く必要があります。 また、データベースで使用するコンテナー(RAWデバイスなど)にインスタンスからアクセスできるように、権限の設定を同 じにしておく必要があります。 z もし、db2inidb .. as snapshotを実行した際に、例えば/dev/rxxxなどのデバイスの所有者を、インスタンス・ユー ザーに変更していなかったことが原因で、RAWデバイス・コンテナーを持つ表スペースのみ、ROLLFORWARD保留状態に なってしまった場合には、ROLLFORWARD DATABASEコマンドを、ROLLFORWARD保留状態の表スペースを全てリストしてから、 ONLINEオプション指定、to end of logs指定で実行することで、NORMAL状態に戻すことができます。 ミラーリングされたデータベースを Primaryデータベースと同じシステム上に存在させなければならない場合には、 db2relocatedbユーティリティー、または db2inidb コマンドの RELOCATE USING オプションを使用することができます。 これによってPrimaryのシステム上に異なるDB名、異なるインスタンス名、異なるログパスで、コピーされたデータベースを 置く事ができます。 O O O O O O O 1.Primaryにてdb2 set write suspend for database 2.OS LevelでのPrimaryからSecondaryへCopyを実施 3.Primaryにてdb2 set write resume for database 4.Primaryにてコピーを別の場所へ解凍 4.Primaryにてdb2relocatedbまたはdb2inidb snapshot .... RELOCATE USINGを使用 (db2relocatedbを実行時には、Primaryにてdb2inidb <DB> as snapshot) =>Read/Write使用可能状態 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 16 Online Split Mirror DB2 UDB運用管理 解説:db2inidb-SNAPSHOT-(続き) ¾ db2inidb ... as SNAPSHOT RELOCATE USING の実行 $ cat relocate.cfg DB_NAME=TEST1,TEST1 DB_PATH=/home/db2inst1,/work INSTANCE=db2inst1,db2inst1 LOG_DIR=/home/db2inst1/db2inst1/NODE0000/SQL00003/SQLOGDIR/,/work/db2inst1/NODE0000/SQL00003/SQLOGDIR/ $ db2 list db directory システム・データベース・ディレクトリー ディレクトリー中の項目数 = 3 ~ 中略 ~ データベース 2 項目: データベース別名 データベース名 ローカル・データベース・ディレクトリー データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・データベース・パーティション番号 代替サーバー・ホスト名 代替サーバーのポート番号 = = = = = = = = = TEST1 TEST1 /home/db2inst1 a.00 間接 0 $ db2 connect to test1 データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/6000 8.2.0 = DB2INST1 = TEST1 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 17 Online Split Mirror DB2 UDB運用管理 解説:db2inidb-SNAPSHOT-(続き) ¾ db2inidb ... as SNAPSHOT RELOCATE USING の実行(続き) $ db2inidb test1 as snapshot relocate using relocate.cfg データベースを再配置しています... ファイルおよび制御構造は正常に変更されました。 データベースは正常にカタログされました。 DBT1000I ツールは正常に完了しました。 データベースの再配置が成功しました。 DBT1036N データベース "TEST1" の再配置が成功した後、ディレクトリー・キャッシュのリフレッシュができません。 SQLCODE = "-1025"。 $ db2 terminate DB20000I TERMINATE コマンドが正常に終了しました。 $ db2 list db directory システム・データベース・ディレクトリー ディレクトリー中の項目数 = 3 ~ 中略 ~ データベース 2 項目: データベース別名 データベース名 ローカル・データベース・ディレクトリー データベース・リリース・レベル コメント ディレクトリー項目タイプ カタログ・データベース・パーティション番号 代替サーバー・ホスト名 代替サーバーのポート番号 = = = = = = = = = TEST1 TEST1 /work a.00 間接 0 $ db2 connect to test1 データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. = DB2/6000 8.2.0 = DB2INST1 = TEST1 18 Online Split Mirror DB2 UDB運用管理 db2inidb-STANDBY 常時プライマリーのデータベースからロールフォワード可能な Standbyデータベースをセカンダリーに作成する Data Data Active Log DataBase DataBase Q を転送する Secondary Primary 手順 z Primaryからアーカイブログ Archived Log Archived Log 1.Primaryにてdb2 set write suspend for database 2.OS LevelでのPrimaryからSecondaryへCopyを実施 3.Primaryにてdb2 set write resume for database 4.Secondaryにてdb2start 5.SecondaryにてCopyされたActive LOG削除(COPYされていれば) 6.Secondaryにてdb2inidb <DB> as Standby( =>Rollforward Pending状態) 7.Primary側のUserExitにて書き出されたLog FileをSecondaryへ転送、Secondary側で ROLLFORWARD実行(STOP/COMPLETEオプションは付けない) (以降、繰り返す) 8.もしPrimary側がDownしたらばRollforward with STOP/COMPLETEをSecodary側にて実施 O O O O O O O O Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 19 Online Split Mirror DB2 UDB運用管理 解説:STANDBYの例 ¾ Primary側にてUser ExitをON z USEREXIT #define #define #define #define #define #define #define z db2 ¾ Programを修正 ARCHIVE_PATH RETRIEVE_PATH AUDIT_ACTIVE ERROR_ACTIVE AUDIT_ERROR_PATH AUDIT_ERROR_ATTR BUFFER_SIZE "/work/" "/work/" 1 1 "/work/" "a" 32 /* path must end with a slash /* path must end with a slash /* enable audit trail logging /* enable error trail logging /* path must end with a slash /* append to text file /* # of 4K pages for output buffer */ */ */ */ */ */ */ update db cfg for test2 using userexit on Primary側で更新後、接続を解除 ---> z アクティブlogがクローズされArchived Log Path(/work/V8DB/NODE0000)へUSEREXITにてLOGが書き出される $ db2 "import from test_source.ixf of ixf messages imp.msg create into test_source" 読み込まれた行数 スキップされた行数 挿入された行数 更新された行数 拒否された行数 コミットされた行数 = = = = = = 5 0 5 0 0 5 $ db2 "select * from test_source" ROW_NUMBER TEST_DATA DESCRIPTION ---------- --------- -------------------1 1 this is row1 1 レコードが選択されました。 $ db2 termiante Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 20 Online Split Mirror DB2 UDB運用管理 解説:STANDBYの例(続き) ¾ Primary側にてSET WRITE SUSPEND FOR DATABASE $db2 set write suspend for database DB20000I The SET WRITE command completed successfully. ¾ File転送+FTP(またはESSのFlashCopy) z tar -cvf /tmp/db2v82.tar /work/db2v82 z Primary->Secondary FTP実施 ¾ Primary側にてSET WRITE RESUME FOR DATABASE z 通常にRead/Write可能 ¾ Secondary側にてdb2stop Secondary側の/sqllib/adm下へPrimaryと同じUSEREXITプログラムをCOPY(db2uext2) Secondary側にて解凍 ¾ Secondary側にてdb2start 後db2inidb ¾ ¾ z tar -xvf /tmp/db2v82.tar /work/db2v82 z db2start z (前回のSNAPSHOT Test時のデータ,ログ消去の為、db2 z db2inidb test as standby drop db testおよびcatalog db test on /workを実施しておく) Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 21 Online Split Mirror DB2 UDB運用管理 解説:STANDBYの例(続き) ¾ Secondary側でdb2inidbを実施後、接続TRY $ db2inidb test as standby DBT1000I ツールは正常に完了しました。 $ db2 rollforward db test query status ロールフォワード状況 ¾ 入力データベース別名 状況を返したノードの数 = test = 1 ノード番号 ロールフォワード状況 次に読み込むログ・ファイル 処理したログ・ファイル 最後にコミットしたトランザクション = = = = = 0 DB ペンディング S0000001.LOG 1970-01-01-00.00.00.000000 Primary側にて更新後、接続を切断する $ db2 connect データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/6000 8.2.0 = DB2V82 = TEST $ db2 "update test_source set test_data=test_data+100" DB20000I SQL コマンドが正常に終了しました。 $ db2 terminateDB20000I TERMINATE コマンドが正常に終了しました。 $ ls /work/V8DB/NODE0000 S0000000.LOG S0000001.LOG Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 22 Online Split Mirror DB2 UDB運用管理 解説:STANDBYの例(続き) ¾ PrimaryからSecondaryへArchived LOG(S0000001.LOG)を転送後、SecondaryにおいてRollforwardを実施 $ db2 rollforward db test to end of logs ロールフォワード状況 入力データベース別名 状況を返したノードの数 = test = 1 ノード番号 ロールフォワード状況 次に読み込むログ・ファイル 処理したログ・ファイル 最後にコミットしたトランザクション = = = = = DB20000I 0 DB 作業中 S0000002.LOG S0000001.LOG - S0000001.LOG 2004-12-25-11.48.14.000000 ROLLFORWARD コマンドが正常に終了しました。 $ db2 connect to test SQL1117N ロールフォワード・ペンディングのために、データベース "TEST"の接続または活動化を行なうことはできません。 SQLSTATE=57019 ¾ 上記を繰り返し、常にSecondaryはRollforward Pending状態 ¾ SecondaryDBでロールフォワード保留状態を解消し、アプリケーションからアクセス可能にするためには、ROLLFORWARD DB <DBNAME>TO END OF LOGS AND COMPLETEを実行する。その時点で(適用したログの範囲で)完了していないトランザクショ ンはROLLBACKとみなされる。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 23 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 24 Online Split Mirror DB2 UDB運用管理 db2inidb-MIRROR セカンダリーへコピーされたSplit Mirrorからプライマリーへコピー バックし、PrimaryDBのLOGからロールフォワード可能なデータ ベースを作成する Data Data z MirrorとしてCopy Backする前 に更新されてはいけない Active Log Archived Log DataBase DataBase Secondary Primary 手順 Q O O O O O O O O 1.Primaryにてdb2 set write suspend for database 2.OS LevelでのPrimaryからSecondaryへCopyを実施 3.Primaryにてdb2 set write resume for database 4.<Primaryにて通常運用後、 障害発生> 5.SecondaryからPrimaryへCOPY Back (Primary側のLogは退避させておく) · SecondaryのLOGはCOPY Backしないが、DBディレクトリ下のlog control fileは含める 6.Primaryにてdb2start (db2inidb前にDBへのConnectまたはDBのActivateを行うとロールフォワー ド・リカバリーで必要なログ・ファイルが消去されるので注意が必要です) 7.Primaryにてdb2inidb <DB> as Mirror( =>Rollforward Pending状態) 8.Primary側で既存のLOGを使用してRollforward + STOP/COMPLETEを実施 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 25 Online Split Mirror DB2 UDB運用管理 db2inidb-MIRROR- 使用上の注意 初期化する前にスプリット・ミラー・データベースに接続すると、ロー ルフォワード・リカバリーで必要なログ・ファイルが消去される z その接続によって、データベースは、中断された時点にあった状態に戻る。 z 中断の時点でデータベースが整合とマーク付けされると、DB2 UDB はクラッシュ・リカ バリーの必要はないと判断して、将来の利用のためにログ・ファイルを消去する。 z この後、ロールフォワードを実行すると、SQL4970N エラー・メッセージが戻される ¾ ロールフォワードが失敗する例 ① 障害発生 ② バックアップ・イメージとしてミラーリングされたDBをCopy Back ③ db2start ④ db2 connect to <database> (ログが消去される) ⑤ db2inidb as mirror ⑥ ROLLFORWARD ⇒ SQL4970N エラー(ログファイルが存在しない) db2inidb <database> as mirror コマンド発行前に DBを活動化し ないこと z DBの活動化:db2 connect to <database> コマンド実行(または、activate dbコマン ド) z 不用意にクライアントから接続等がされない環境でリカバリー運用する必要がある Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 26 Online Split Mirror DB2 UDB運用管理 解説:Mirrorの例 ¾ Primary DB側で表の内容を確認後、更新(接続は切断しない-->更新はActive Log上にある状態) $ db2 connect to test データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/6000 8.2.0 = DB2V82 = TEST $ db2 get db cfg | grep LOGRETAIN リカバリー用ログの保持使用可能 第 1 ログ・アーカイブ・メソッド (LOGRETAIN) = RECOVERY (LOGARCHMETH1) = LOGRETAIN $ db2 "insert into t1 values (4,4,'Row 4')" DB20000I SQL コマンドが正常に終了しました。 db2v82@raymond[/work/db2v82]$ db2 "select * from t1" COL1 COL2 ----------- ----------1 1 2 2 3 3 4 4 COL3 ---------Row 1 Row 2 Row 3 Row 4 4 レコードが選択されました。 $ ls /data1/v8dblog/NODE0000/ S0000000.LOG S0000001.LOG S0000002.LOG S0000003.LOG Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 27 Online Split Mirror DB2 UDB運用管理 解説:Mirrorの例(続き) ¾ Primary側にて接続があるにも関わらず、異常終了させる 別セッションにてdb2stop -killを実行 $ db2 list applications 許可 ID アプリケーション アプリケーション・ アプリケーション ID DB 名 ハンドル 名 -------- -------------- ---------- ------------------------------ -------- ----DB2V82 db2bp 51 *LOCAL.db2v82.041225121428 TEST 1 $ db2stop -kill SQL1064N DB2STOP の処理が正常に終了しました。 SQL1042C 予期しないシステム・エラーが発生しました。 ¾ SQLSTATE=58004 Secondary側からDB Copy Imageのみをコピーバックする(Secondary側のActive,Archived Logはコピーバックしない) z ESS ¾ エージェントの 数 FlashCopyまたはtar+ftpの実施 Primary側でdb2start, db2inidbを実施(db2startで起動した後にdb2inidbを実行すること) $ db2inidb test as mirror DBT1032N インスタンスは、現在アクティブではありません。 $ db2start SQL1063N DB2START の処理が正常に終了しました。 $ db2inidb test as mirror DBT1000I ツールは正常に完了しました。 $ db2 connect to test SQL1117N ロールフォワード・ペンディングのために、データベース "TEST" の接続または活動化を行なうことはできません。 SQLSTATE=57019 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 28 Online Split Mirror DB2 UDB運用管理 解説:Mirrorの例(続き) ¾ Primary側でロールフォワード $ db2 rollforward db test to end of logs and stop ロールフォワード状況 入力データベース別名 状況を返したノードの数 = test = 1 ノード番号 ロールフォワード状況 次に読み込むログ・ファイル 処理したログ・ファイル 最後にコミットしたトランザクション = = = = = DB20000I 0 非ペンディング S0000001.LOG - S0000003.LOG 2004-12-25-12.25.35.000000 ROLLFORWARD コマンドが正常に終了しました。 $ db2 connect to test データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 = DB2/6000 8.2.0 = DB2V82 = TEST db2v82@raymond[/work/db2v82/NODE0000/SQL00001/SQLOGDIR]$ db2 "select * from t1" COL1 COL2 ----------- ----------1 1 2 2 3 3 4 4 COL3 ---------Row 1 Row 2 Row 3 Row 4 4 レコードが選択されました。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 29 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 30 Online Split Mirror DB2 UDB運用管理 WRITE SUSPEND時の表スペース状態 WRITE SUSPEND時は、すべてのTABLESPACEが書き込み禁止 WRITE SUSPEND時 ¾ ¾ WRITE RESUME後 $ db2 set write suspend for database DB20000I SET WRITE コマンドが正常に終了しました。 $ db2 set write resume for database DB20000I SET WRITE コマンドが正常に終了しました。 $ db2 list tablespaces $ db2 list tablespaces 現在のデータベースの表スペース 現在のデータベースの表スペース 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 書き込み中断 = = = = = 0 SYSCATSPACE システム管理スペース 任意のデータ 0x10000 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 標準 = = = = = 0 SYSCATSPACE システム管理スペース 任意のデータ 0x0000 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 書き込み中断 = = = = = 1 TEMPSPACE1 システム管理スペース システム一時データ 0x10000 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 標準 = = = = = 1 TEMPSPACE1 システム管理スペース システム一時データ 0x0000 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 書き込み中断 = = = = = 2 USERSPACE1 システム管理スペース 任意のデータ 0x10000 表スペース ID 名前 タイプ 内容 状態 詳しい説明: 標準 = = = = = 2 USERSPACE1 システム管理スペース 任意のデータ 0x0000 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 31 Online Split Mirror DB2 UDB運用管理 解説:WRITE SUSPEND時の表スペース状態 ¾ SET WRITE SUSPEND FOR DATABASE を実行すると、そのデータベースのすべての表スペースがwrite suspend状態(0x10000) となって書き込み不能となります。 ¾ db2diag.logの出力 (DB2 UDB V8.1 フォーマット) SET WRITE SUSPENDコマンド実行 2003-08-25-10.03.52.441541 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbSuspendWrite Probe:80 Database:TEST ADM6075W The table space "SYSCATSPACE" (ID "0") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. 2003-08-25-10.03.52.471226 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbSuspendWrite Probe:80 Database:TEST ADM6075W The table space "TEMPSPACE1" (ID "1") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. 2003-08-25-10.03.52.473457 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbSuspendWrite Probe:80 Database:TEST ADM6075W The table space "USERSPACE1" (ID "2") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. SET WRITE RESUMEコマンド実行 2003-08-25-10.05.19.981732 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbUnsuspendWrite Probe:20 Database:TEST ADM6076W The table space "SYSCATSPACE" (ID "0") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 2003-08-25-10.05.19.984154 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbUnsuspendWrite Probe:20 Database:TEST ADM6076W The table space "TEMPSPACE1" (ID "1") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 2003-08-25-10.05.19.985792 Instance:udbv81 Node:000 PID:29091(db2agent (TEST)) TID:1024 Appid:*LOCAL.udbv81.028DF5095741 buffer pool services sqlbUnsuspendWrite Probe:20 Database:TEST ADM6076W The table space "USERSPACE1" (ID "2") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 32 Online Split Mirror DB2 UDB運用管理 解説:WRITE SUSPEND時の表スペース状態(続き) ¾ db2diag.logの出力(続き) (DB2 UDB V8.2 フォーマット) SET WRITE SUSPENDコマンド実行 2004-12-25-21.45.31.700396+540 E62255C544 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbSuspendWrite, probe:80 MESSAGE : ADM6075W The table space "SYSCATSPACE" (ID "0") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. SET WRITE RESUMEコマンド実行 2004-12-25-21.47.03.410874+540 E64349C540 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbUnsuspendWrite, probe:20 MESSAGE : ADM6076W The table space "SYSCATSPACE" (ID "0") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 2004-12-25-21.45.31.701770+540 E62800C543 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbSuspendWrite, probe:80 MESSAGE : ADM6075W The table space "TEMPSPACE1" (ID "1") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. 2004-12-25-21.47.03.411967+540 E64890C539 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbUnsuspendWrite, probe:20 MESSAGE : ADM6076W The table space "TEMPSPACE1" (ID "1") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 2004-12-25-21.45.31.702685+540 E63344C543 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbSuspendWrite, probe:80 MESSAGE : ADM6075W The table space "USERSPACE1" (ID "2") has been placed in the WRITE_SUSPEND state. All write I/O for this table space will be suspended until a WRITE RESUME is issued. 2004-12-25-21.47.03.412877+540 E65430C539 LEVEL: Warning PID : 1663010 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-11 APPID: *LOCAL.db2v82.041225124042 FUNCTION: DB2 UDB, buffer pool services, sqlbUnsuspendWrite, probe:20 MESSAGE : ADM6076W The table space "USERSPACE1" (ID "2") which was previously in the WRITE_SUSPEND state is no longer in that state. Write I/O has been resumed to the table space. 2004-12-25-21.46.13.535030+540 I63888C460 LEVEL: Severe PID : 516334 TID : 1 PROC : db2agent (instance) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-16 APPID: *LOCAL.db2v82.041225124613 FUNCTION: DB2 UDB, database monitor, sqm___sqlmonssagnt, probe:1234 MESSAGE : Cannot obtain the requested snapshot as this database is in write suspend mode. Skipping database TEST Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 33 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 34 Online Split Mirror DB2 UDB運用管理 SUSPEND I/O時の制約 SELECTでも待ちになるケース(タイムアウトしない) バッファープール中Dirty PageをDISKへ書き戻す行為を引き起こすSELECT文 Log Bufferにあふれ、DISKへ書き込みを起こす更新(表にData Change Capture属性がある 場合にはLOG量が増加するので要注意、省略時のLogBuffer Size(4KB)=8) O ソートをメモリー内で行なえず、システムテンポラリー領域へ書き込みを要求する ORDER BY付きのSELECT文 O O その他の考慮点 O REORG/QUIESCE/ALTER TABLESPACE/CREATE TABLESPACEなどは実行不可 (待ち) SUSPEND I/O中DB2STOPできない ==> db2stop SQL1553N DB2 cannot be stopped because one or more databases are in WRITE SUSPEND state. O SUSPEND I/O中、BACKUPはTABLESPACEへラッチ要求がでるため待ちになる O BACKUP/RESTORE実行中はSUSPEND I/Oができない ¾ SQL01550N The SET WRITE SUSPEND command failed. (Reason code = n). O – – – – 1. Database is not activated. 2. Database is in backup in progress state. 3. Database is in restore in progress state. 4. Database is already in suspended state. Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 35 Online Split Mirror DB2 UDB運用管理 解説:SUSPEND I/O時の制約 ¾ ¾ ¾ SELECTであってもWRITE SUSPEND状態のリソースへの書き込みが必要になる場合があるため、場合によってはWRITE SUSPEND 状態のDBで待ち状態になることがあります。以下のようなケースです。 z バッファープール中Dirty PageをDISKへ書き戻す行為を引き起こすSELECT文 z Log Bufferにあふれ、DISKへ書き込みを起こす更新(表にData Change Capture属性がある場合にはLOG量が増加するの で要注意、省略時のLogBuffer Size=8KB) z ソートをメモリー内で行なえず、システムテンポラリー領域へ書き込みを要求するORDER BY付きのSELECT文 なお、WRITE SUSPEND状態のものへ書き込みが発生したための待ちは、LOCK待ちと異なりタイムアウトしないので注意が必 要です。 その他の考慮点 z REORG/QUIESCE/ALTER TABLESPACE/CREATE TABLESPACEなどをWRITE SUSPEND状態のDBに対して発行すると、WRITE RESUMEが発行されるまで待たされることになります。 z SUSPEND I/O中DB2STOPはできません z SUSPEND I/O中はBACKUPはTABLESPACEへラッチ要求がでるため待ちになります z BACKUP/RESTORE実行中はSUSPEND I/Oができません。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 36 Online Split Mirror DB2 UDB運用管理 解説:SELECTが待ちになる例 ¾ バッファープールぺージの書き出しのためSELECTが待ちの例 z BUFFERPOOL SIZE 10ページ z 表 PERF (C1 INT,C2 INT,C3 CHAR(50) CHAR(50)) z 索引なし z 表は304Page 10000 $ db2 connect to test バップァープールの初期化 STATUS: Read/Write データベース接続情報 データベース・サーバー SQL 許可 ID ローカル・データベース別名 $ db2 set write suspend for database DB20000I SET WRITE コマンドが正常に終了しました。 = DB2/6000 8.2.0 = DB2V82 = TEST バップァープール内のページがすべてDirty STATUS: Write_SUSPEND $ db2 +c "update perf set c2=c2+1 where c1<305" DB20000I SQL コマンドが正常に終了しました。 * where c1<305は10Page分の更新を意味する $ db2 +c "select * from test_source"---->待ち ページの書き出しができない STATUS: Write_SUSPEND Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 37 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 38 Online Split Mirror DB2 UDB運用管理 Suspend I/O時異常終了後のクラッシュ・リカバリー RESTART DATABASEコマンドにV8.1 FP1から新しいオプション WRITE RESUMEが追加 z WRITE SUSPEND状態のままDBがDownした場合に使用する ¾SUSPEND_WRITE状態を解消し、Crash Recoveryを走らせる z WRITE SUSPENDを発行した接続がWAIT状態になった場合に使用する ¾SUSPEND_WRITE状態を解消し、Crash Recoveryを走らせない WRITE SUSPEND状態でのDBダウン RESTARTの実行 $ db2 set write suspend for database DB20000I SET WRITE コマンドが正常に終了しました。 $ db2 restart db test SQL1552N データベースが現在 WRITE SUSPEND 状態であるため、コマンドが失敗しました。 $ db2stop -kill SQL1064N DB2STOP の処理が正常に終了しました。 SQL1042C 予期しないシステム・エラーが発生しました。 SQLSTATE=58004 $ db2start SQL1063N DB2START の処理が正常に終了しました。 $ db2 restart db test write resume DB20000I RESTART DATABASE コマンドが正常に終了しました。 $ db2 connect to test データベース接続情報 $ db2 terminate DB20000I TERMINATE コマンドが正常に終了しました。 データベース・サーバー SQL 許可 ID ローカル・データベース別名 $ db2 connect to test SQL1552N データベースが現在 WRITE SUSPEND 状態であるため、コマンドが失敗しました。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. = DB2/6000 8.2.0 = DB2V82 = TEST 39 Online Split Mirror DB2 UDB運用管理 解説:Suspend I/O時異常終了後のクラッシュ・リカバリー ¾ V8.1 FP1より、RESTART DATABASEコマンドに新しいオプション WRITE RESUMEが追加されました。 このオプションは、WRITE SUSPEND状態のままDBがDownした場合や、WRITE SUSPENDを発行した接続がWAIT状態になった場合 に使用します。 このオプションがWRITE SUSPENDのままDOWNしたDBのRESTARTで指定されると、SUSPEND_WRITE状態は解消され、Crash Recoveryが走ります。 このオプションがWRITE SUSPENDを発行した接続がWAIT状態になった場合に使用されると、SUSPEND_WRITE状態は解消され、 Crash Recoveryは走りません。 当パラメータは、ミラーリングされたデータベースではなく、Primaryデータベースだけに適用が可能です。 ¾ 以下はWRITE RESUMEを指定しなかった場合のDB2DIAG.LOG出力です。 ¾ ¾ ¾ ¾ 2004-12-25-22.32.05.278787+540 E104429C585 LEVEL: Severe PID : 1728620 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-8 APPID: *LOCAL.db2v82.041225133205 FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:22 MESSAGE : ADM6024C The database cannot be restarted because table spaces cannot be brought ONLINE as a result of an outstanding WRITE SUSPEND. To restart the database specify WRITE RESUME on the RESTART DATABASE command. 2004-12-25-22.32.05.279399+540 I105015C421 LEVEL: Error PID : 1728620 TID : 1 PROC : db2agent (TEST) INSTANCE: db2v82 NODE : 000 DB : TEST APPHDL : 0-8 APPID: *LOCAL.db2v82.041225133205 FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:22 RETCODE : ZRC=0x800200F3=-2147352333=SQLB_FAIL2_SUSPEND_WRITE_ON "Restart failed" Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 40 Online Split Mirror DB2 UDB運用管理 スプリット・イメージからのバックアップ スプリット・イメージからのバックアップの取得 z スプリット・イメージ(ROLLFORWARD保留状態のデータベース)に対し、DBのフ ルバックアップ取得が可能 一時表スペース以外がDMS表スペースでDBフルバックアップ可能 z V7.2 APAR IY21083 以降 db2inidb...standbyの実行後にのみDBのバックアップ取得可能 z 一度でもROLLFORWARDを実行してしまうと、COMPLETEまたはSTOPオプショ ンでのROLLFORWARDを実行しない限り、BACKUPの取得はできない。 Onlineバックアップは不可 z スプリット・イメージはロールフォワード保留状態なので、そもそもONLINEは有り得 ない Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 41 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ ¾ ¾ ¾ ¾ 通常はROLLFORWARD保留状態のDBや表スペースのバックアップを取ることはできません。しかし、V7.2 APAR IY21083より、 Split Mirrorイメージがdb2inidbコマンドによってROLLFORWARD保留状態になっているものについては、DBのフルバックアッ プが取得できるようになりました。 例えばRESTORE DBが完了してROLLFORWARD保留状態となっているDBのバックアップは取得できません。 db2inidbコマンドの実行後、PrimaryDBからのログをROLLFORWARD DBで適用した場合、STOPまたはCOMPLETEオプションを指定 しないと、DBはROLLFORWARD保留のままです。このようなDBからのBackupも取得できません。一度ROLLFORWARDを実行してし まったSPLIT MIRRORイメージの場合には、STOP/COMPLETEオプションでROLLFORWARD保留状態を解除したあとでなければ BACKUPの取得ができません。 Onlineバックアップは不可 z スプリット・イメージはロールフォワード保留状態なので、そもそもONLINEは有り得ない ¾ V8 update4マニュアルより抜粋 z Using a Split Mirror as a Standby Database If you have only DMS table spaces (database managed space), you can take a full database backup to offload the overhead of taking a backup on the production database. – · V7.2+FP10以降では、一時表スペースがSMS表スペース、カタログ表スペースがDMS表スペース、ユーザーデータ用表スペース がDMS表スペースである場合、Split Mirrorイメージを解凍してdb2inidb ..as standby実行後のDBのフルバックアップが可 能です。 O APAR IY21083: – Abstract: SPLIT MIRROR BACKUP TERMINATED - SMS TABLESPACE NOT ALLOWED. ERROR DESCRIPTION: split mirror backup in v7.1 fp3 returns a meesage indicating that this feature does not work with sms tablespaces. PROBLEM The backup of a split mirror should not fail if the SMS tablespace is a TEMP. First Fixed In: DB2 Version 7 FixPak 4 Latest DB2 FixPak containing a fix for this APAR: DB2 V7 Fixpak 10 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 42 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ ¾ バックアップ成功例 db2diag.logのメッセージ (一時表スペースはSMS表スペースで作成し、カタログ表スペースとユーザーデータ用の表スペースをDMS表スペースで作成し、 db2inidb .. as standby発行後にDBのフルバックアップを取得した例) 【DB2 UDB V7.2 + FP10】 【DB2 UDB V8.1 + FP3】 2003-08-26-15.18.54.324550 Instance:udbv72 Node:000 PID:22479(db2agent (TEST2)) Appid:*LOCAL.udbv72.030826150006 database_utilities sqlubcka Probe:0 Database:TEST2 2003-08-26-17.24.34.441314 Instance:v8ha Node:000 PID:24713(db2agent (TEST)) TID:1024 Appid:*LOCAL.v8ha.064846172434 data protection sqlpgint Probe:5110 Starting a full database backup. Backup after split mirror. 2003-08-26-15.18.54.382090 Instance:udbv72 PID:22494(db2bm.22479.0) Appid:none database_utilities sqlubbmcont Probe:10 Node:000 Backing up tablespace SYSCATSPACE 2003-08-26-15.18.56.614486 Instance:udbv72 PID:22494(db2bm.22479.0) Appid:none database_utilities sqlubbmcont Probe:10 Starting a full database backup. Node:000 2003-08-26-17.24.48.415359 Instance:v8ha Node:000 PID:24713(db2agent (TEST)) TID:1024 Appid:*LOCAL.v8ha.064846172434 database utilities sqlubcka Probe:130 Database:TEST Backup Complete. Backing up tablespace USERSPACE_DMS 2003-08-26-15.18.57.213958 Instance:udbv72 PID:22494(db2bm.22479.0) Appid:none database_utilities sqlubbmcont Probe:6 2003-08-26-17.24.34.512842 Instance:v8ha Node:000 PID:24713(db2agent (TEST)) TID:1024 Appid:*LOCAL.v8ha.064846172434 database utilities sqlubcka Probe:0 Database:TEST Node:000 Finished tablespaces 2003-08-26-15.18.57.423929 Instance:udbv72 Node:000 PID:22479(db2agent (TEST2)) Appid:*LOCAL.udbv72.030826150006 database_utilities sqlubcka Probe:0 Database:TEST2 Backup Complete. Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 43 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ(続き) ¾ バックアップ成功例 db2diag.logのメッセージ(続き) (一時表スペースはSMS表スペースで作成し、カタログ表スペースとユーザーデータ用の表スペースをDMS表スペースで作成し、 db2inidb .. as standby発行後にDBのフルバックアップを取得した例) 【DB2 UDB V8.2】 2004-12-26-00.09.39.018956+540 I52640C361 LEVEL: Warning PID : 778352 TID : 1 PROC : db2agent (TEST2) INSTANCE: db2v82 NODE : 000 DB : TEST2 APPHDL : 0-10 APPID: *LOCAL.db2v82.041225150938 FUNCTION: DB2 UDB, data protection, sqlpgint, probe:5110 MESSAGE : Backup after split mirror. 2004-12-26-00.09.39.103086+540 I53002C380 LEVEL: Warning PID : 778352 TID : 1 PROC : db2agent (TEST2) INSTANCE: db2v82 NODE : 000 DB : TEST2 APPHDL : 0-10 APPID: *LOCAL.db2v82.041225150938 FUNCTION: DB2 UDB, database utilities, sqlubSetupJobControl, probe:2025 MESSAGE : Starting an offline db backup. 2004-12-26-00.10.00.985870+540 I53383C353 LEVEL: Warning PID : 778352 TID : 1 PROC : db2agent (TEST2) INSTANCE: db2v82 NODE : 000 DB : TEST2 APPHDL : 0-10 APPID: *LOCAL.db2v82.041225150938 FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:130 MESSAGE : Backup Complete. Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 44 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ(続き) ¾ バックアップ失敗例のdb2diag.logのメッセージ (一時表スペース、カタログ表スペースはSMS表スペースで作成し、ユーザーデータ用の表スペースをDMS表スペースで作成し、 db2inidb .. as standby発行後にDBのフルバックアップを取得した例) 【DB2 UDB V7.2 + FP10】 2003-08-26-16.04.05.361415 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 data_protection sqlpgint Probe:410 Database:TEST3 2003-08-26-16.04.05.424013 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 database_utilities buildAppTblsp Probe:46 Database:TEST3 eefb ffff Backup after split mirror. 2003-08-26-16.04.05.393995 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 buffer_pool_services sqlbStartPools Probe:0 Database:TEST3 Starting the database. .... 2003-08-26-16.04.05.436758 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 database_utilities sqlubcka Probe:0 Database:TEST3 Backup terminated. 2003-08-26-16.04.05.410187 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 database_utilities sqlubcka Probe:0 Database:TEST3 Starting a full database backup. 2003-08-26-16.04.05.415652 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 database_utilities buildAppTblsp Probe:37 Database:TEST3 Backing up of a split mirrored database containing SMS Tablespaces is unsupported 2003-08-26-16.04.05.419842 Instance:udbv72 Node:000 PID:22676(db2agent (TEST3)) Appid:*LOCAL.udbv72.030826160405 database_utilities buildAppTblsp Probe:46 Database:TEST3 DiagData eefb ffff Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 45 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ(続き) ¾ バックアップ失敗例のdb2diag.logのメッセージ(続き) (一時表スペース、カタログ表スペースはSMS表スペースで作成し、ユーザーデータ用の表スペースをDMS表スペースで作成し、db2inidb .. as standby発行後にDBのフルバックアップを取得した例) 【DB2 UDB V8.1 + FP3】 2003-08-26-17.39.16.292437 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 data protection sqlpgint Probe:5110 2003-08-26-17.39.16.384745 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 database utilities sqlubcka Probe:140 Database:TEST_SMS Backup after split mirror. Backup Terminated. 2003-08-26-17.39.16.362481 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 database utilities sqlubcka Probe:0 Database:TEST_SMS Starting a full database backup. 2003-08-26-17.39.16.367512 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 database utilities buildAppTblS Probe:37 Database:TEST_SMS Backing up of a split mirrored database containing SMS Tablespaces is unsupported 2003-08-26-17.39.16.371672 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 database utilities buildAppTblS Probe:46 Database:TEST_SMS DiagData 0x5079C828 : 0xFFFFFBEE .... 2003-08-26-17.39.16.377132 Instance:v8ha Node:000 PID:24894(db2agent (TEST_SMS)) TID:1024 Appid:*LOCAL.v8ha.064846173916 database utilities buildAppTblS Probe:46 Database:TEST_SMS 0x5079C828 : 0xFFFFFBEE Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. .... 46 Online Split Mirror DB2 UDB運用管理 解説:スプリット・イメージからのバックアップ(続き) ¾ バックアップ失敗例のdb2diag.logのメッセージ(続き) (一時表スペース、カタログ表スペースはSMS表スペースで作成し、ユーザーデータ用の表スペースをDMS表スペースで作成し、db2inidb .. as standby発行後にDBのフルバックアップを取得した例) 【DB2 UDB V8.2】 2004-12-26-00.25.42.989313+540 I61933C367 LEVEL: Warning PID : 1577028 TID : 1 PROC : db2agent (TEST_SMS) INSTANCE: db2v82 NODE : 000 DB : TEST_SMS APPHDL : 0-11 APPID: *LOCAL.db2v82.041225152542 FUNCTION: DB2 UDB, data protection, sqlpgint, probe:5110 MESSAGE : Backup after split mirror. 2004-12-26-00.25.43.273162+540 I62301C441 LEVEL: Error PID : 1577028 TID : 1 PROC : db2agent (TEST_SMS) INSTANCE: db2v82 NODE : 000 DB : TEST_SMS APPHDL : 0-11 APPID: *LOCAL.db2v82.041225152542 FUNCTION: DB2 UDB, database utilities, sqlubBuildAppTbsp, probe:40 MESSAGE : Backing up of a split mirrored database containing SMS Tablespaces is unsupported 2004-12-26-00.25.43.273608+540 I62743C446 LEVEL: Severe PID : 1577028 TID : 1 PROC : db2agent (TEST_SMS) INSTANCE: db2v82 NODE : 000 DB : TEST_SMS APPHDL : 0-11 APPID: *LOCAL.db2v82.041225152542 FUNCTION: DB2 UDB, database utilities, sqlubBuildAppTbsp, probe:40 MESSAGE : DiagData DATA #1 : Hexdump, 4 bytes 0x40991324 : FFFF FBEE .... 2004-12-26-00.25.43.273865+540 I63190C426 LEVEL: Error PID : 1577028 TID : 1 PROC : db2agent (TEST_SMS) INSTANCE: db2v82 NODE : 000 DB : TEST_SMS APPHDL : 0-11 APPID: *LOCAL.db2v82.041225152542 FUNCTION: DB2 UDB, database utilities, sqlubBuildAppTbsp, probe:40 DATA #1 : Hexdump, 4 bytes 0x40991324 : FFFF FBEE .... 2004-12-26-00.25.43.324582+540 I63617C360 LEVEL: Severe PID : 1577028 TID : 1 PROC : db2agent (TEST_SMS) INSTANCE: db2v82 NODE : 000 DB : TEST_SMS APPHDL : 0-11 APPID: *LOCAL.db2v82.041225152542 FUNCTION: DB2 UDB, database utilities, sqlubcka, probe:140 MESSAGE : Backup Terminated. Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 47 Online Split Mirror DB2 UDB運用管理 ブランク・ページです。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 48 Online Split Mirror DB2 UDB運用管理 Split Mirrorシナリオ Primary UDB Secondary UDB ESSクラスター1 ESSクラスター2 Data PPRC Data FlashC Data FlashC Data LOG PPRC LOG FlashC LOG FlashC LOG Volume Set A Volume Set A: Volume Set B: Volume Set C: Volume Set D: Volume Set B Volume Set C ミラーからの バックアップ Volume Set D Primaryデータベース PPRCによって作成されたPrimaryデータベースのミラー Volume Set Bのローカル・フラッシュコピー(StandByデータベース) Volume Set Cのローカル・フラッシュコピー(バックアップデータベース) Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 49 Online Split Mirror DB2 UDB運用管理 解説:Split Mirrorシナリオ ¾ ¾ ¾ ¾ ¾ ¾ ¾ 初期状態 z Primaryデータベース(Volume Set A)では通常の読み書きが行われています。アーカイブログは、PPRC接続により常に Standby側(VolumeSetB)にミラーが取られるようにします。 SUSPEND WRITE z PrimaryデータベースでSET WRITE SUSPENDを発行し、書き込み禁止状態にします。一度書き込み禁止状態になると、す べての更新トランザクション、またはReadOnlyであっても一時表を必要とするようなトランザクションはすべて待ち状 態になります。 PPRCを用いた再同期化 z PPRCを用いて、Primaryデータベースとそのミラー(Volume Set B)の同期を取ります。PPRCは更新のあったDISK上のト ラックをコピーします。 RESUME WRITE z VolumeSetAとBの同期を取る処理が完了したら、直ちにSET WRITE RESUMEを実行し、書き込み禁止状態を解除します。 FlashCopy z VolumeSet AとBの同期を取るPPRCの接続が完了したら、VolumeSetBからCへローカルフラッシュコピーを実行します。 z VolumeSetCに対しては、STANDBYモードのdb2inidbコマンドを実行し、ロールフォワード保留状態にしておきます。 LOGのPPRC接続再開 z フラッシュコピーの取得が完了したら、VolumeSetAとBの間のPPRC接続をRESYNCモードで再開し、Primaryデータベース の側で生成された最新のログをセカンダリーサーバー側へ持ってきます。 z Primaryデータベースの側で生成されたログを随時StandbyデータベースへROLLFORWARDによって適用し、必要なときに ROLLFORWARDをCOMPLETEオプションで実行して、こちらのDBをアプリケーションに開放することができます。 z このとき、VlumeSet BからCへFlashCopyを行う際には、ある一時点で整合性のある状態にしなければいけないため、 VlumeSet AからBへのPPRCは同期モード(非同期モードの際には同期モードに切り替えて)にて、一時点での整合点を 取った後、(PPRCの機能で)Suspend状態にします。それから、VlumeSet BからCへFlashCopyを行います。 これによって整合性の保たれたログをVolumeSet CのDBへROLLFORWARDして適用することができます。 ミラーの保管 z Standyデータベースを直ちにAvailableにした場合、その時点でもはやPrimaryDBで生成されたログを適用することがで きなくなります。その場合、こちらの例のようにもう一つミラーを作ることで、StandbyDBがサービス開始した後も Primaryで生成されるログを適用する先を確保できます。 z 安全のために必要であれば、作成されたSplit Mirrorのバックアップをテープなどのメディアに取ることもできます。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 50 Online Split Mirror DB2 UDB運用管理 (参考)db2rfpenについて db2efpenコマンドの目的 z データベースをロールフォワード・ペンディング状態にするツール z DB2を停止した状態で取得したバックアップから復元した際、ログをロー ルフォワード適用する場合に利用する ¾ ¾ db2inidbが使用できない場合の代替策 (例)DB2を停止してFlashCopyを取得した場合、アーカイブ・ロギング方式 においては、コピー後に記録されたログを適用するためにロールフォワード ペンディング状態にする必要がある コマンド使用に際しての考慮点 z 一度ROLLFORWARD完了したDBに対して、このユーティリティーを使 用して再度ログをROLLFORWARD適用することはできない z 当コマンドは正式サポートされているが、使用方法については、必要に 応じてDB2サポート部門等のサポートを受けて使用する z 高可用性災害時リカバリー(HADR)を使用している環境では、データ ベースは標準データベースにリセットされる V8.2 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 51 Online Split Mirror DB2 UDB運用管理 解説:(参考)db2rfpenについて ¾ DB2を停止した状態(db2stop)でデータベース・ディレクトリごと取得されたバックアップから回復した場合に、ログをロー ルフォワード適用する際に利用します。 ¾ db2inidbが使用できない環境における代替策として、例えば、DB2を停止してFlashCopyを取得した場合、アーカイブ・ロギ ング方式においてコピー後に記録されたログを適用するためにロールフォワードペンディング状態にします。 ¾ db2rfpenは、データベースをロールフォワード・ペンディング状態にするユーティリティーですが、例えばログ・シッピン グの運用において、一度ROLLFORWARD完了されたデータベースに対してこのユーティリティーを使用してロールフォワード・ ペンディング状態にし、再度ログをROLLFORWARD適用することはできません。 ¾ V8.2においては、高可用性災害時リカバリー(HADR)を使用している場合は、データベースは標準データベースにリセット されます。 ¾ 当コマンドは正式にサポートされたコマンドですが、正しい手順等、使用方法については、必要に応じてDB2サポート部門等 のサポートを受けることも検討してください。 Copyright 2005, IBM Japan Systems Engineering Co.,Ltd. 52