読者です 読者をやめる 読者になる 読者になる

雑記+備忘録

OS中心の技術情報と趣味について(最近は主に将棋)。備忘録なのでここに書かれたことを試すのは自己責任でお願いします。

SQL Server 高可用性3台ミラー構成

SQL Server 2012以降では「AlwaysOn 可用性グループ」にとって代わられて非推奨となってしまった
高可用性3台ミラー構成、
しぶとく出てくるのでメモ。

常にプリンシパル想定のマシンをプリンシパルとして動かしたい場合、
保守などでシャットダウンする順番に注意。
プリンシパルを最初にシャットダウンすると、自動フェールオーバーでミラーと入れ替わってしまう。
◇シャットダウン順:【W】→【M】→【P】
◇起動順:【P】→【M】→【W】

<ディスク障害など、完全破損時の復旧>
1.プリンシパルが破壊された場合の復旧
インスタンスまで作成後、ミラー構築時の手順の応用で、
 【M】(障害発生時に自動フェールオーバーでプリンシパルになっているはず)のデータベースを右クリックメニュー「ミラー」からミラーリングを削除
  ↓
 【M】のデータベースを手動バックアップ
  ↓
 【P】のインスタンスにWITH NORECOVERYでリストア
  ↓
 【M】のデータベース右クリックメニュー「ミラー」から
 「セキュリティの構成」ボタンのウィザードでミラーリングを再構築
 (一応エンドポイントは既存のものを使える。drop endpoint "エンドポイント名"で【M】、【W】ともエンドポイントを削除して、再作成してもよい)

ミラーリング再構築で以下のメッセージが出たことがあった。

1478 ミラー データベース “Unbobo” には、プリンシパル データベースのログ バックアップ チェーンを維持するのに十分なトランザクション ログ データがありません。プリンシパル データベースのログ バックアップが作成されていないか、ミラー データベースで復元されていない可能性があります。

このときは、新プリンシパルデータベースのプロパティの「オプション」で復旧モードを「完全→単純」にして適用、
再度「単純→完全」にして適用してからバックアップを取ってミラー側にリストアする手順から再実施。
これでプリンシパルデータベースの「ログ バックアップ チェーン」がクリアされる。
以下のサイトが参考になりました。
http://engineermemo.wordpress.com/2011/06/29/sql-server-2008-%E4%BB%A5%E9%99%8D%E3%81%AE%E3%83%AD%E3%82%B0%E3%81%AE%E5%88%87%E3%82%8A%E6%8D%A8%E3%81%A6/

2.ミラーが破壊された場合の復旧
自動フェールオーバーが起きないのでプリンシパルが変わらない以外は1と同じ

3.ウィットネスが破壊された場合の復旧
インスタンスまで作成後、
 プリンシパルのデータベース右クリックメニュー「ミラー」からミラーリングを削除
  ↓
 「セキュリティの構成」ボタンからミラーリングを再構築
 (エンドポイントは既存のものを使える)

(2015/8/28追記)
上記の「ログ バックアップ チェーン」をクリアしてバックアップから復元する方法は
王道ではないようだ。
訂正記事を書きました(続・SQL Server 高可用性3台ミラー構成 - 雑記&備忘録