SSブログ

Transaction Log Shipping その① [DBMS]

SQL Server のログ配布です。
プライマリデータベースでトランザクションログをバックアップしてセカンダリデータベースへ配布して適用する事により可用性を確保する構成です。
少々タイムラグがありますが、離れた場所にデータベースのコピーを作って障害に対応します。
下の絵は SQL Server 2008 R2 のオンラインヘルプから引っ張ってきたログ配布の説明図です。
logship.jpg
SQL Server にはデータベースミラーリングという同じ様な機能が゜ありますが、あちらはバックアップは1つだけで、仕掛け上レスポンスに多少影響します。
ログ配布は配布先を複数持つ事が出来ますが、トランザクションの反映に少々タイムラグがあります。

とりあえずサーバ2台でログ配布をしてみます。
1つ目のサーバです。
SQL Server をインストールして、ログ配布するデータベースを作成します。
プライマリデータベースと呼びます。
01m.jpg
2つ目のサーバです。
SQL Server のインストールは必要です。
一応、同規模のデータベースが作成してありますが、ログ配布を設定する時にプライマリデータベースのバックアップをリストアする予定です。
02m.jpg
オンラインヘルプには書いてないのですが、ログを配布又は受取る時にネットワーク共有へアクセスするので SQL Server と SQL Server Agent の実行ユーザーをローカルシステムアカウントではなく、Administrator等のユーザーにします。この変更はそれぞれのサーバーの SQL Server Configuration Manager で行います。
03m.jpg
さらに、SQL Server 同士で設定の時に通信をするのでWindows Server 2008以降では Windows Fire Wall に穴を開ける必要があります。
04.jpg
SQL Server の受信ポート 1433(デフォルト)を開けます。
05.jpg
ログを配布するフォルダを作成し、ネットワーク共有します。
全てのサーバに作る必然性はありませんが、フェイルオーバーしたりする事を考えて全てのサーバーで作成しました。
06.jpg
07.jpg
SQL Server でトランザクションログを使用する様にリカバリモデルを FULL にします。
08.jpg

以上で事前準備が整いましたので、セカンダリデータベースの作成に入ります。
まず、プライマリデータベースをバックアップします。
バックアップ先はどこでもよいのですが、ログ配布先フォルダにしています。
09.jpg
バックアップ中…
10.jpg
バックアップ完了
11.jpg
続いて、セカンダリデータベースで先ほど行ったバックアップをリストアします。
From device でバックアップファイルからバックアップ情報を取得します。
12.jpg
必要であれば、DBファイルの場所を調整したり、既存のデータベースの上書きをチェックします。
重要なのは、リカバリモードを RESTORE WITH NORECOVERY でリストアする事です。
13.jpg
リストア中…
14.jpg
リストア完了
15.jpg
続く
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。