前提
構成
サーバ名 | 可用性グループ |
---|---|
s1 | プライマリ |
s2 | セカンダリ |
同期しているDB
DB名 | 復旧モデル | 想定 |
---|---|---|
test | test | 同期に失敗 |
test | test1 | 通常営業 |
SQL Server バージョン
SQL Server 2016 SP2
正常な状態
S1
S2
【問題発生】 セカンダリサーバのDBの横に同期されていませんと表示されてしまった
ステップ1
データ移動の再開
① セカンダリでSQL Server Management Stdioを開く
② Always On 高可用性 - 可用性グループ - 可用性グループ名 - 可用性データベースを開く
③ 同期されていないDB名を右クリック - データ移動の再開をクリック
④ OKをクリック
⑤ 直った
ステップ2 ステップ1で直らなかった場合
可用性グループからのセカンダリデータベースの削除
① プライマリでAlways On 高可用性 - 可用性グループ - 可用性グループ名 - 可用性データベースを開く
② 該当DBを右クリックし可用性グループからデータベースを削除します
③ OKをクリック
④ 削除されたことを確認します
⑤ セカンダリから同期されていないDBを削除します
同期されていないDBを右クリック - 削除
OKをクリック
⑥ プライマリで先ほど削除したDBのバックアップを取得します
該当DBを右クリック - タスク - バックアップ
バックアップの種類は完全で
※まっさらなフォルダに取得しないと復元するときにうまくいきませんでした
トランザクションログのバックアップも取得します
⑦ セカンダリにて取得したバックアップを復元します
データベースを右クリックし、データベースの復元をクリック
復元する際のオプションは「NORECOVERY」で行いましょう
トランザクションログの復元も行います
タスク - 復元 - トランザクションログ
こちらも「NORECOVERY」で復元します
⑧ 仕上げにDBを可用性グループに再加入させます
Always On 高可用性 - 可用性グループ - 可用性グループ名 - 可用性データベースを右クリック
データベースの追加をクリック
次へ
加入させるデータベースを選択
接続をクリックして、セカンダリインスタンスへ接続します
結合のみを選択します
次へ
完了
閉じる
無事同期されたことを確認します
ちなみに試験のため、プライマリで同期するDBにずっと更新をかけていたのですが問題なく同期が完了していました
(キャプチャ時は 2022/10/3 23:44頃)
参考