6.18.2 操作例
以下の操作例では,次のデータべース名を使用します。
パブリケーションデータベース:PubUserDB1
サブスクリプションデータベース:SubUserDB1
ディストリビューションデータベース:distribution
- この項の構成
- (1) データベースをバックアップする
- (2) パブリケーションデータベースのトランザクションログをバックアップする
- (3) データベースのリストアの準備をする
- (4) データベースをリストアする
- (5) データベースをリカバリする
- (6) 運用再開の準備をする
(1) データベースをバックアップする
- パブリケーションデータベースをバックアップする
- 補足説明
- パブリケーションデータベースをバックアップするときには,ディストリビューションデータベースも同時にバックアップする必要があります。
パブリッシャ/ディストリビュータサーバで,-targetオプションまたは-fオプションでパブリケーションデータベースとディストリビューションデータベースを指定してdrmsqlbackupコマンドを実行します。
PROMPT> drmsqlbackup instA -target PubUserDB1,distribution
PROMPT> |
- サブスクリプションデータベースをバックアップする
サブスクライバサーバで,drmsqlbackupコマンドを実行します。
PROMPT> drmsqlbackup instC
PROMPT> |
- システムデータベースを含めてデータベースをバックアップする
パブリッシャ/ディストリビュータサーバ,またはサブスクライバサーバで,-systemオプションを指定してdrmsqlbackupコマンドを実行します。
PROMPT> drmsqlbackup instA -system
PROMPT> |
(2) パブリケーションデータベースのトランザクションログをバックアップする
パブリッシャ/ディストリビュータサーバで,drmsqllogbackupコマンドを実行します。
PROMPT> drmsqllogbackup instA
PROMPT> |
(3) データベースのリストアの準備をする
各データベースでリストアするための前提条件を次に示します。
- パブリケーションデータベースをリストアするときには,ディストリビューションデータベースも同時にリストアする必要があります。
- パブリケーションデータベースをリストアするときには,パブリケーションデータベースはオンライン状態,または削除されている必要があります。
- システムデータベースをリストアするときには,パブリケーションデータベースはオンライン状態である必要があります。
データベースをリストアするには次の準備が必要です。ただし,サブスクリプションデータベースだけをリストアする場合には,ステップ2(サブスクリプションの同期の停止)だけを実施してください。
- ログリーダーエージェントを停止します。
- サブスクリプションに関連づけられているエージェントを停止します。
サブスクリプションの同期の停止が行われます。停止しない場合,デタッチに失敗し,エラーメッセージが出力されます。
(4) データベースをリストアする
- パブリケーションデータベースをリストアする
パブリケーションデータベースとディストリビューションデータベースをバックアップしたときのバックアップIDを指定して,パブリッシャ/ディストリビュータサーバでdrmsqlrestoreコマンドを実行します。
PROMPT> drmsqlrestore 0000000001 -resync
PROMPT> |
システムデータベースを含めてデータベースをバックアップするときのバックアップIDを指定する場合には,-targetオプションまたは-fオプションでパブリケーションデータベースとディストリビューションデータベースを指定してdrmsqlrestoreコマンドを実行します。
PROMPT> drmsqlrestore 0000000005 -resync -target PubUserDB1,distribution
PROMPT> |
- パブリケーションデータベースとシステムデータベースをリストアする
パブリッシャ/ディストリビュータサーバで,次の手順でリストアする必要があります。
- システムデータベースをリストアします。
PROMPT> drmsqlrestore 0000000005 -resync -target master,model,msdb
PROMPT> |
- ログリーダーエージェントを停止します。
- サブスクリプションに関連づけられているエージェントを停止します。
サブスクリプションの同期の停止が行われます。
注意事項
ログリーダーエージェントの起動オプションが「SQL Serverエージェント起動時に自動的に起動する」の場合,master,model,msdbデータベースのリストア後にログリーダーエージェントが起動され,パブリケーションデータベース,ディストリビューションデータベースのリストアのときにエラーになります。
- パブリケーションデータベースとディストリビューションデータベースをリストアします。
PROMPT> drmsqlrestore 0000000005 -resync -target PubUserDB1,distribution
PROMPT> |
- システムデータベースだけをリストアする
システムデータベースを含むデータベースをバックアップしたときのバックアップIDを指定して,パブリッシャ/ディストリビュータサーバまたはサブスクライバサーバで,drmsqlrestoreコマンドを実行します。
PROMPT> drmsqlrestore 0000000005 -resync -target master,model,msdb
PROMPT> |
- サブスクリプションデータベースをリストアする
サブスクライバサーバで,drmsqlrestoreコマンドを実行します。
PROMPT> drmsqlrestore 0000000002 -resync -target SubUserDB1
PROMPT> |
(5) データベースをリカバリする
drmsqlrecoverコマンドまたはdrmsqlrecovertoolコマンドを使用して,通常の手順でリカバリ(ロールフォワード)を実施します。
(6) 運用再開の準備をする
SQL Serverのレプリケーションの運用を再開するには,次の準備が必要です。
サブスクリプションの方式によって,この操作をするサーバが異なります。
プッシュサブスクリプションの場合:パブリッシャ/ディストリビュータサーバ
プルサブスクリプションの場合:サブスクライバサーバ
- ログリーダーエージェントを起動します。
- サブスクリプションに関連づけられているエージェントを起動します。
サブスクリプションの同期が開始されます。
- サブスクリプションの再初期化,または削除・再作成をします。