Replication Manager Application Agent CLI ユーザーズガイド
障害が発生した場合,障害発生前に定時運用でバックアップしていたデータやトランザクションログを使用すると,最後にバックアップした時点までデータベースを復旧できます。しかし,通常運用のバックアップだけを使用すると,最後のバックアップ以降の操作は切り捨てられるため,最後のバックアップ以降の操作は復旧されません。
障害発生直前の状態にデータベースを復旧したい場合,最後のバックアップから,障害発生直前までのトランザクションログを取得する必要があります。ここでは,トランザクションログを切り捨てないように取得し,障害発生直前の状態にデータベースを復旧する例について説明します。オペレーションIDとして,「Operation_A」を使用します。
図6-20 SQL Serverのトランザクションログバックアップを利用した運用(障害直前の状態にデータベースを復旧する)
定時運用では,次の流れでSQL Serverデータベースおよびトランザクションログをバックアップします。
- 時点AのSQL Serverデータベースをバックアップします。
時点Aのデータベースをバックアップする方法については,「6.5.3 SQL Serverデータベースをバックアップする」を参照してください。- 時点BのSQL Serverデータベースのトランザクションログをバックアップします。
トランザクションログをバックアップする方法については,「6.5.4 トランザクションログをバックアップする」を参照してください。時点Dで障害が発生したあとのトランザクションログを切り捨てないようにバックアップします。
障害発生後にトランザクションログを取得するには:
- 時点C以降のトランザクションログを切り捨てないように,トランザクションログを取得します。
トランザクションログを切り捨てないように取得するには,EX_DRM_SQL_TLOG_BACKUPに-no_truncateオプションを指定して実行します。DBServer > EX_DRM_SQL_TLOG_BACKUP Operation_A -no_truncate-no_truncateオプションを指定すると,時点Bでのトランザクションログバックアップ取得後から,障害発生時までのトランザクションが取得されます。トランザクションログ取得後のリストア・リカバリの流れは次のとおりです。
トランザクションログを適用してリカバリするには:
- 時点AでバックアップしたSQL Serverデータベースのデータをリストアします。
時点Aまでデータベースが回復します。時点AでバックアップしたSQL Serverデータベースをリストアする方法については,「6.5.5 SQL Serverデータベースをリストアする」を参照してください。- 時点Bでバックアップしたトランザクションログを適用してリカバリします。
時点Bでバックアップしたトランザクションログを適用してリカバリすると,時点Bまでのデータベースに戻ります。
drmsqlrecovertoolダイアログボックスでトランザクションログを適用してリカバリする方法については,「(1) drmsqlrecovertoolダイアログボックスでSQL Serverデータベースをリカバリする」を参照してください。
drmsqlrecoverコマンドで複数のトランザクションログを適用する場合,トランザクションログ一括定義ファイルを使用すると,一度に複数のトランザクションログを適用できます。トランザクションログ一括定義ファイルを使用したリカバリ方法については,「(2) drmsqlrecoverコマンドでSQL Serverデータベースをリカバリする(トランザクションログ一括定義ファイルを使用する)」を参照してください。- -no_truncateオプションを指定して取得したトランザクションログを適用してリカバリします。
-no_truncateオプションを指定して取得したトランザクションログを適用してリカバリすると,時点Bでのトランザクションログバックアップ取得後から,障害発生時までのトランザクションが適用され,時点Cまでのデータベースに戻ります。
drmsqlrecovertoolダイアログボックスでトランザクションログを適用してリカバリする方法については,「(1) drmsqlrecovertoolダイアログボックスでSQL Serverデータベースをリカバリする」を参照してください。
All Rights Reserved. Copyright© 2014, 2020, Hitachi, Ltd.