ログ配布の構成 (SQL Server)
適用対象: SQL Server
このトピックでは、SQL Server で SQL Server Management Studio または Transact-SQL を使用して、ログ配布を構成する方法を説明します。
Note
SQL Server 2008 (10.0.x) Enterprise 以降のバージョンでは、バックアップの圧縮がサポートされています。 ログ配布構成の作成時に、ログ バックアップのバックアップ圧縮動作を制御できます。 詳細については、「バックアップの圧縮 (SQL Server)」を参照してください。
このトピックの内容
作業を開始する準備:
以下を使用してログ配布を構成するには:
はじめに
前提条件
プライマリ データベースでは、完全復旧モデルか一括ログ復旧モデルを使用する必要があります。単純復旧モデルにデータベースを切り替えると、ログ配布が機能しなくなります。
ログ配布を構成する前に、セカンダリ サーバーからトランザクション ログ バックアップを使用できるようにするための共有を作成する必要があります。 この共有は、トランザクション ログ バックアップを生成するディレクトリにします。 たとえば、トランザクション ログをディレクトリ c:\data\tlogs にバックアップする場合は、このディレクトリを基に \\primaryserver\tlogs という共有を作成します。
セキュリティ
アクセス許可
ログ配布ストアド プロシージャには、 sysadmin 固定サーバー ロールのメンバーシップが必要です。
SQL Server Management Studio を使用する
ログ配布を構成するには
ログ配布構成のプライマリ データベースとして使用するデータベースを右クリックし、 [プロパティ] をクリックします。
[ページの選択] の [トランザクション ログの配布] をクリックします。
[ログ配布構成のプライマリ データベースとして有効にする] チェック ボックスをオンにします。
[トランザクション ログのバックアップ] で [バックアップの設定] をクリックします。
[バックアップ フォルダーのネットワーク パスを指定する] ボックスに、トランザクション ログ バックアップ フォルダー用に作成した共有へのネットワーク パスを入力します。
バックアップ フォルダーがプライマリ サーバーに存在する場合は、バックアップ フォルダー ボックスにローカル パスを入力します (バックアップ フォルダーが、プライマリ サーバー上にない場合は、このボックスは空のままでかまいません)。
重要
プライマリ サーバーの SQL Server サービス アカウントがローカル システム アカウントで実行されている場合、バックアップ フォルダーはプライマリ サーバー上に作成し、このフォルダーへのローカル パスを指定する必要があります。
[次の期間を経過したファイルを削除する] と [バックアップが次の期間内に行われない場合は警告する] の各パラメーターを構成します。
[バックアップ ジョブ] の [スケジュール] ボックスに、バックアップ スケジュールの一覧が表示されます。 スケジュールをカスタマイズする場合は、 [スケジュール] をクリックし、 SQL Server エージェントのスケジュールを必要に応じて調整します。
SQL Server では、 バックアップの圧縮がサポートされています。 ログ配布構成を作成する際には、次のオプションのいずれかを選択して、ログ バックアップのバックアップ圧縮動作を制御することができます: 既定のサーバー設定を使用する、バックアップを圧縮する、バックアップを圧縮しない。 詳細については、「 Log Shipping Transaction Log Backup Settings」をご覧ください。
[OK] をクリックします。
[セカンダリ サーバー インスタンスとデータベース] の [追加] をクリックします。
[接続] をクリックし、セカンダリ サーバーとして使用する SQL Server インスタンスに接続します。
[セカンダリ データベース] ボックスで、一覧からデータベースを選択するか、作成するデータベースの名前を入力します。
[セカンダリ データベースの初期化] タブで、セカンダリ データベースを初期化するためのオプションを選択します。
Note
Management Studio によりセカンダリ データベースをデータベース バックアップから初期化することを選択した場合、セカンダリ データベースのデータとログ ファイルは master データベースのデータとログ ファイルと同じ場所に配置されます。 この場所は、多くの場合、プライマリ データベースのデータとログ ファイルの場所とは異なります。
[ファイルのコピー] タブの [ファイルのコピー先フォルダー] ボックスに、トランザクション ログ バックアップのコピー先となるフォルダーのパスを入力します。 多くの場合、セカンダリ サーバー上のフォルダーを指定します。
[復元ジョブ] の [スケジュール] ボックスにコピー スケジュールの一覧が表示されます。 スケジュールをカスタマイズする場合、 [スケジュール] をクリックして、 SQL Server エージェントのスケジュールを必要に応じて調整します。 このスケジュールはバックアップ スケジュールに近い設定にします。
[復元] タブの [バックアップ復元時のデータベース状態] で、 [復旧モードなし] または [スタンバイ モード] を選択します。
重要
スタンバイ モードは、プライマリ サーバーとセカンダリ サーバーのバージョンが同じである場合にのみ使用できるオプションです。 セカンダリ サーバーのメジャー バージョンがプライマリ サーバーよりも新しい場合は、 [復旧モードなし] しか選択できません
[スタンバイ モード] を選択する場合は、復元操作の進行中にセカンダリ データベースからユーザーを切断するかどうかを選択します。
セカンダリ サーバーの復元処理を遅延させる場合、 [バックアップの復元を最低限次の期間遅延する] で遅延時間を選択します。
[復元が次の期間内に行われない場合は警告する] で警告のしきい値を選択します。
[復元ジョブ] の [スケジュール] ボックスに表示される復元スケジュールを確認します。 スケジュールをカスタマイズする場合、 [スケジュール] をクリックして、 SQL Server エージェントのスケジュールを必要に応じて調整します。 このスケジュールはバックアップ スケジュールに近い設定にします。
[OK] をクリックします。
[監視サーバー インスタンス] の [監視サーバー インスタンスを使用する] チェック ボックスをオンにし、 [設定] をクリックします。
重要
このログ配布構成を監視するには、ここで監視サーバーを追加する必要があります。 監視サーバーを後で追加するには、このログ配布構成を削除して、代わりに監視サーバーを含む新しい構成を用意します。
[接続] をクリックして、監視サーバーとして使用する SQL Server インスタンスに接続します。
[モニター接続] で、バックアップ、コピー、復元の各ジョブで監視サーバーへの接続に使用する接続方法を指定します。
[履歴の保有期間] で、ログ配布の履歴レコードを保持する期間を指定します。
[OK] をクリックします。
[データベースのプロパティ] ダイアログ ボックスで [OK] をクリックし、構成処理を開始します。
Transact-SQL の使用
ログ配布を構成するには
プライマリ データベースの完全バックアップをセカンダリ サーバーに復元して、セカンダリ データベースを初期化します。
プライマリ サーバーで sp_add_log_shipping_primary_database を実行して、プライマリ データベースを追加します。 このストアド プロシージャからは、バックアップ ジョブ ID とプライマリ ID が返されます。
プライマリ サーバーで sp_add_jobschedule を実行して、バックアップ ジョブのスケジュールを追加します。
監視サーバーで sp_add_log_shipping_alert_job を実行して、警告ジョブを追加します。
プライマリ サーバーでバックアップ ジョブを有効にします。
セカンダリ サーバーで sp_add_log_shipping_secondary_primary を実行します。このとき、プライマリ サーバーとプライマリ データベースの詳細情報を指定します。 このストアド プロシージャからは、セカンダリ ID、コピー ジョブ ID、および復元ジョブ ID が返されます。
セカンダリ サーバーで sp_add_jobschedule を実行して、コピー ジョブと復元ジョブのスケジュールを設定します。
セカンダリ サーバーで sp_add_log_shipping_secondary_database を実行して、セカンダリ データベースを追加します。
プライマリ サーバーで sp_add_log_shipping_primary_secondary を実行して、新しいセカンダリ データベースに関する必要な情報をプライマリ サーバーに追加します。
セカンダリ サーバーでコピー ジョブと復元ジョブを有効にします。 詳細については、「 Disable or Enable a Job」をご覧ください。