web-dev-qa-db-ja.com

DB2オンライン復元はロールフォワードなしですか?

Db2リストアに関する多くのドキュメントを読みましたが、最後のデータベースバックアップからオンラインリストアを実行する方法を見つけることができませんでしたが、ログのロールフォワーディングはありませんか?

コマンド例に感謝します。

たとえば、私の最後のオンラインバックアップは2月1日です。そのバックアップのオンライン復元を実行したいが、2月1日以降はログなし(オフライン復元オプションWITHOUT ROLL FORWARDと同様)。

私はdb2 9.7を使用しています

前もって感謝します

2
Dejan

インフォメーションセンター に従って:

「オンラインバックアップイメージから復元するときにこのオプションを指定すると、エラーSQL2537Nが返されます。」

したがって、あなたはロールフォワードに任されています。そうは言っても、あなたは以下を試すことができます

db2 rollforward db mydb to end of backup and complete

rollforwardコマンドの情報 によると

END OF BACKUPパーティションデータベース内のすべてのパーティションを最小復旧時間までロールフォワードすることを指定します。例については、以下の「例」セクションを参照してください。

これにより、バックアップの最後まで復元しようとしているものが復元され、バックアップ後に発生する可能性のあるトランザクションログのロールフォワードは含まれません。通常、アーカイブされたログを使用するオフラインバックアップからの復元では、少なくともこのステートメントを発行する必要があります。

私は個人的にオンラインで行う必要はなく、バックアップの最後までロールフォワードするだけでした。それを試して、何が起こるかを私たち全員に知らせてください。

編集:以下の質問に回答するには:オンラインバックアップを行うには、アーカイブログを有効にする必要があります。それでも、アーカイブログを使用してオフラインバックアップを作成できます。そのために、循環に戻す必要はありません。ただし、アーカイブログを有効にすると、オフラインバックアップとオンラインバックアップのどちらから復元するかに関係なく、完了したらロールフォワードを実行する必要があります。それを回避する方法はありません。 これに関する私自身の以前の質問 を参照してください。

アーカイブログを設定するには、データベース構成パラメーターLOGARCHMETH1を変更する必要があります。デフォルトでは、これはOFFに設定されています。これは循環ロギングを意味します。そのための選択肢は次のとおりです。

  • DISK
  • TSM
  • USEREXIT
  • VENDOR
  • LOGRETAIN

LOGRETAINは、アーカイブされたログをロギングディレクトリに残すようにDB2に指示します。これらのログがクリーンアップされることはありません(DBAとして実行します)。 USEREXITは、ログを保存およびアーカイブするためのIBM以外のサードパーティツールに任せます(通常はCで手動でコーディングされます)。私が理解していることから、これを使う人はあまり多くありません。 DISKTSMはかなり使用されているようです。 DISKは、ログをどこにアーカイブするかをDB2に通知します(他のいくつかのパラメーターを設定すると、DB2は不要になったログを自動的にクリーンアップできます。以下にそのことを示します)。 TSMは、IBMのTivoli Storage ManagerがログをアーカイブするようにDB2に指示します。それが機能するために取得する必要がある他のいくつかの設定があります。私が働いているところでは、まだそれを試していません。最後に、VENDORは、サードパーティベンダー製品を使用してログをアーカイブするために使用されます。

別のディスクスポットへのアーカイブロギングをセットアップし、DB2が自動的にクリーンアップするようにするには、次のようにします(注:これらはUnixパスにあります)。

db2 connect to mydb user <admin user> using <admin user password>
#NOTE THE double and single quotes needed on the command line in Unix
db2 "update db cfg using logarchmeth1 'DISK:/dbarch/dblogs'"
db2 update db cfg using num_db_backups 2
db2 update db cfg using rec_his_retentn 2
db2 update db cfg using auto_del_rec_obj on
db2 terminate

これにより、DB2は2つの完全バックアップを少なくとも2日間保持するようになります。 2つのバックアップが2日間保持され、別のバックアップが取得されます。最も古いバックアップがDB2によって削除されます。次に、DB2は、現在削除されたバックアップと次に古い保持バックアップの間にあったログをクリーンアップします。

また、アーカイブロギングに切り替えると、DB2は次のアクション(つまり、データベースがBACKUP PENDINGモードになる)としてすぐにオフラインバックアップを行う必要があり、それまでは他に何もできなくなります。あなたはそうします。

お役に立てれば!

2
Chris Aldrich