SQL Server 2005 データベースのミラーリング
初めに
ミラーリング対象データベース、ミラーデータベース、ミラー監視データベースの3つのインスタンスを利用する方法の覚え書きです。
ミラーリング対象データベースは「プリンシパル」と呼ばれるようですので、これ以降は「プリンシパル」と呼びます。
ミラーリングのモードは同期モードになります。非同期モードのミラーリングは「Enterprise版」でないと利用できないようです。
「Standard版」では同期モードのみ利用可能です。
同期モードでは、監視用データベースを利用する方法と監視用データベースを利用しない方法があります。
今回は利用する方法の覚え書きです。
2008/10/21追記
プリンシパル側のバックアップを取る前に、自動終了が「False」になっている事を確認する。
[データベースのプロパティ]-[オプション]-[自動終了]が True になっていた場合は、False に変更する。
こうしないと、データベースのミラーリングを開始する時にエラーが発生する。
プリンシパルのデータベースのバックアック
- 「SQL Server Management Studio」を起動します。
- プリンシパルのデータベースサーバーに接続します。
- ミラーデータベース用のデータベースサーバーに接続します。
- ミラー監視データベース用のデータベースサーバーに接続します。
- プリンシパルのデータベースのバックアップをとります。
- 復旧モデル→FULL
- バックアップの種類→完全を選択
- バックアップ先の[追加]ボタンをクリック。
- ファイル名の右側のボタンをクリックし、保存先ファイルを指定します。
- [OK]をクリックします。
- データベースのバックアップに戻りますので[OK]ボタンをクリックします。
- [OK]ボタンをクリックします。
- つづけて、トランザクションログのバックアップをとります。
- バックアップの種類→トランザクションログを選択。
- [OK]ボタンをクリックします。
- [OK]ボタンをクリックします。
ミラーデータベースの作成
プリンシパルのバックアップをミラーデータベース用データベースサーバーに復元します。
- [データベース]を右クリックし「データベースの復元」を選択します。
- 復元先データベース→プリンシパルと同じデータベース名を入力します。
- 復元用のソース→「デバイスから」を選択し、右側のボタンをクリックします。
- [追加]ボタンをくりっくし、復元もとのバックアップを選択します。
- [OK]ボタンをクリックします。
- 復元するバックアップ セットの選択→完全とトランザクション ログの両方にチェックを入れます。
- 復元オプション→「既存のデータベースを上書きする」にチェックを入れる。
- 復旧状態→「データベースは操作不可状態のままで、コミットされていないトランザクションはロールバックしない。別のトランザクション ログは復元できます。(RESTORE WITH NORECOVERY)」を選択します。
- [OK]ボタンをクリックします。
[OK]ボタンをクリックします。
ミラーデータベース用にリストアしたデータベースの表示は上記のようになります。
ミラーリング設定
- プリンシパルのデータベースを右クリックし、[タスク]-[ミラー]を選択する。
- [セキュリティの構成]ボタンをクリックする。
ウイザードが起動します。
- [次へ]をクリックします。
- [次へ]をクリックします。
- [次へ]をクリックします。
- [次へ]をクリックします。
- ミラーサーバインスタンスを選択し、[接続]ボタンをクリックし、接続します。
- [次へ]をクリックします。
- ミラーリング監視サーバインスタンスを選択し、[接続]ボタンをクリックし、接続します。
- [次へ]をクリックします。
- サービスのアカウントを全て入力し、[次へ]をクリックします。
- [完了]をクリックします。
- [閉じる]をクリックします。
- [ミラーリングの開始]をクリックします。
- [OK]をクリックします。
設定が完了すると表示が上記のようになります。
障害発生時の動作
ミラー監視サーバーが正常動作していれば、プリンシパルがダウンしても自動的に、ミラーサーバーにフェールオーバーされます。
フェールオーバーされると、ミラーサーバーがプリンシパルとして動作します。(プリンシパルとミラーが逆転します)
元のプリンシパルが復旧した場合でも、元のプリンシパルはミラーデータベースの状態のままです。
元のプリンシパルをプリンシパルに戻したい場合は、手動でフェールオーバーします。
※「Microsoft SQL Server Management Studio」で実行できます。
問題は、ミラー監視サーバーがダウンし、つづいてプリンシパルサーバーがダウンした時です。
この場合は、自動フェールオーバーされませんので、ミラーデータベースで利用したい場合は、手動で復旧処理をする必要があります。
ミラーデータベースを通常のデータベースの状態に戻し、利用する方法です。
この場合は、SQL コマンドを使用するしか方法がなさそうです。
操作対象PCに「sqlcmd」がインストールされている必要があります。
※ミラーサーバーで操作を行ってもかまいません。
sqlcmdコマンドの利用開始
C:\> sqlcmd -S tsv2\SQL2005 -E
※Windows認証で接続する場合。
まずは、ミラーリングの削除を行います。
ALTER DATABASE sshanbai_test SET PARTNER OFF GO
データベースを通常の状態に復旧します。
RESTORE DATABASE sshanbai_test WITH RECOVERY GO
sqlcmdコマンドの利用終了
exit
以上で通常のデータベースの状態に戻ります。