Azure VM の SQL Server にログ配布の構成
適用対象: Azure VM 上の SQL Server
この記事では、Azure Virtual Machines(VM)の SQL Server 2 つの間でログ配布を構成する方法について説明します。
概要
ログ配布を使用すると、トランザクション ログ バックアップを、 プライマリ サーバーのプライマリ データベースから、別のセカンダリ サーバーにある 1 つ以上のセカンダリ データベースに自動的に送信できます。 トランザクション ログ バックアップはセカンダリ データベースごとに個別に適用されます。 監視サーバーとして知られるオプションの 3 台目のサーバーは、バックアップおよび復元の操作の履歴および状態を記録します。さらに、これらの操作がスケジュールどおりに実行されなかった場合、オプションとして警告を通知することができます。
ログ配布は主にディザスター リカバリー ソリューションとして使用され、Always On 可用性グループを含むその他の高可用性およびディザスター リカバリーのオプションと組み合わせることができます。
前提条件
Azure VM 上の SQL Server にログ配布を構成するには、次の前提条件が必要です。
トランザクション ログ バックアップの Azure ストレージ アカウントと同じリソース グループ内の SQL Server を持つ、ドメイン参加済みの Azure 仮想マシンが最低 2 台。 セカンダリ サーバーは、プライマリ SQL Server と同じバージョン以上の SQL Server 上にある必要があります。
プライマリ データベースは、フルまたは一括ログ復旧モデルを使用する必要があります。 プライマリ データベースを単純復旧モデルに切り替えた場合、ログ配布が機能しなくなります。
アカウントを構成するログ配布は、sysadmin 固定サーバー ロールのメンバーである必要があります。
Azure ファイル共有の作成
プライマリ サーバーからのトランザクション ログ バックアップは、ファイル共有に格納されます。 ログ配布を構成する前に、プライマリ サーバーとセカンダリ サーバーの両方がアクセスできる Azure ストレージ アカウント内に Azure File 共有を作成する必要があります。
Azure Portal で Azure File 共有を作成するには、次の手順に従います。
Azure Portal で対象のリソース グループに移動し、トランザクション ログ バックアップに使用するストレージ アカウントを選択します。
[データ ストレージ]で[ファイル共有]を選択したら、[+ファイル共有]を選択して新しいファイル共有を作成します。
[基本]タブで、“ログ配布“などのファイル共有の名前を指定します。 [レベル]をデフォルトの[トランザクション最適化]のままにします。
(オプション)[バックアップ]タブで、チェック ボックスを使用して Azure Backupへのファイル共有のバックアップを有効にします。
[確認と作成] を選択してファイル共有の設定を確認したら、[作成]を選択して新しいファイル共有を作成します。
バックアップ ディレクトリの作成
ファイル共有が作成されたら、次の 2 つのディレクトリを作成する必要があります。
- プライマリがログ バックアップを書き込むディレクトリ
- セカンダリがログ バックアップをコピーして復元するディレクトリ
ディレクトリを作成するには、次の手順に従います。
Azure がファイル共有を作成したら、ポータルはユーザーを新しい SMB ファイルの[概要]ページに戻します。
[参照]で、[+ ディレクトリの追加]を選択します。 ログ バックアップなど、新しいディレクトリの名前を指定します。 [OK] を選択します。
前の手順を繰り返し、復元バックアップなどのセカンダリ ディレクトリを追加します。 [OK] を選択します。
ファイル共有に VM の接続
ディレクトリが作成されたら、仮想マシンをファイル共有に接続します。
接続の詳細を確認するには、ファイル共有の[参照]ページまたは[概要]ページのいずれから[接続]を選択し、[接続]ウィンドウを開きます。
[接続]ウィンドウには、リソースがファイル共有にアクセスできるようにするスクリプトが記載されています。 必要に応じて、ドライブ文字を変更して、ファイル共有を仮想マシンにマウントします。 このガイドでは、Windows Virtual Machine のストレージ アカウント キーを使用します。
[スクリプトの表示]を選択すると、スクリプトを表示し、コピーして、ログ配布を構成する各 SQL Server VM で実行します。
“接続“スクリプトを実行したら、次の PowerShell コマンドレットを使用してポート 445 への接続を確認できます。
Test-NetConnection -ComputerName yourstorageaccount.file.core.windows.net -Port 445
接続テストが成功すると、TcpTestSucceeded : True
の出力が表示されます。
SQL Server にファイル共有へのアクセス権の付与
SQL Server VM がファイル共有に正常に接続できたら、“接続“スクリプトの URL、ユーザー名、パスワードを使用して SQL Server で認証情報を作成し、ファイル共有にアクセスするためのアクセス許可を SQL Server サービス アカウントに付与します。
認証情報を作成するには、xp_cmdshell
をもう一度無効にする前に、xp_cmdshell
を有効にして認証情報の作成に使用します。
SQL Server サービス アカウントにファイル共有へのアクセス権を付与するには、ログ配布に使用するすべての SQL Server インスタンスで次の手順を実行します。
sysadmin ロールの一部であるアカウントを使用して SQL Server VM に接続します。
SQL Server Management Studio(SSMS)を開き、SQL Server インスタンスに接続します。
新しいクエリ ウィンドウを開き、Azure Portal から取得したストレージ キーの詳細を含む次の Transact-SQL コードを実行します。
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; exec sp_configure 'xp_cmdshell', 1; RECONFIGURE; GO EXEC xp_cmdshell 'cmdkey /add:"yourstorageaccount.file.core.windows.net" /user:"localhost\yourstorageaccount" /pass:"<yourpasskey>"'; GO EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE; GO
コマンドを実行したら、SSMS は認証情報が正常に追加されたことを確認します。
ログ配布を構成する
SQL Server インスタンスがファイル共有にアクセスできたら、SQL Server Management Studio(SSMS)を使用してログ配布を構成します。
ログ配布を構成するには、次の手順に従います。
プライマリ SQL Server インスタンスに接続します。
ログ配布構成のプライマリ データベースとして使用するデータベースを右クリックしたら、[プロパティ]を選択します。
[ページの選択]で、[トランザクション ログの配布]を選択します。
[ログ配布構成のプライマリ データベースとして有効にする]のボックスをチェックにします。
[トランザクション ログ バックアップ]で、[バックアップの設定]を選択します。
[バックアップ フォルダーへのネットワーク パス]ボックスに、トランザクション ログ バックアップ フォルダー用に作成した共有およびディレクトリへのネットワーク パスを入力します。
例:
\\yourstorageaccount.file.core.windows.net\log-shipping\log-backups
[次の期間を経過したファイルの削除]および[次の期間内にバックアップが実行されない場合は警告する]のパラメーターを事業ニーズに応じて構成します。
[バックアップ ジョブ] の [スケジュール] ボックスに、バックアップ スケジュールの一覧が表示されます。 インストールのスケジュールをカスタマイズする場合、[スケジュール]を選択したら、 SQL Server エージェントのスケジュールを必要に応じて調整します。
SQL Server では、 バックアップの圧縮がサポートされています。 ログ配布構成を作成する際には、次のオプションのいずれかを選択して、ログ バックアップのバックアップ圧縮動作を制御することができます: 既定のサーバー設定を使用する、バックアップを圧縮する、バックアップを圧縮しない。 詳細については、「 Log Shipping Transaction Log Backup Settings」をご覧ください。
[OK] を選択して設定を保存します。
[セカンダリ サーバー インスタンスとデータベース]で、[追加]を選択します。
[接続]を使用し、セカンダリ サーバーとして使用する SQL Server のインスタンスに接続します。
[セカンダリ データベース] ボックスで、一覧からデータベースを選択するか、作成するデータベースの名前を入力します。
[セカンダリ データベースの初期化] タブで、セカンダリ データベースを初期化するためのオプションを選択します。
Note
SSMS がセカンダリ データベースをデータベース バックアップから初期化することを選択した場合、セカンダリ データベースのデータおよびログ ファイルは
master
データベースのデータおよびログ ファイルと同じ場所に配置されます。 この場所は、多くの場合、プライマリ データベースのデータとログ ファイルの場所とは異なります。[コピー済ファイルの保存先フォルダー]ボックスの[ファイルのコピー]タブで、トランザクション ログ バックアップをコピーするフォルダーのパス(ファイル共有用に作成した復元バックアップ ディレクトリなど)を入力します。
\\yourstorageaccount.file.core.windows.net\log-shipping\restore-backups
- [復元ジョブ] の [スケジュール] ボックスにコピー スケジュールの一覧が表示されます。 インストールのスケジュールをカスタマイズする場合、[スケジュール]を選択したら、 SQL Server エージェントのスケジュールを必要に応じて調整します。 このスケジュールはバックアップ スケジュールに近い設定にします。
[復元] タブの [バックアップ復元時のデータベース状態] で、 [復旧モードなし] または [スタンバイ モード] を選択します。
重要
スタンバイ モードは、プライマリ サーバーとセカンダリ サーバーのバージョンが同じである場合にのみ使用できるオプションです。 セカンダリ サーバーのメジャー バージョンがプライマリ サーバーよりも新しい場合、復元モードは認められません。
[スタンバイ モード]を選択する場合、復元操作の進行中にセカンダリ データベースからユーザーを切断するかどうかを選択します。
セカンダリ サーバーの復元処理を遅延させる場合、 [バックアップの復元を最低限次の期間遅延する] で遅延時間を選択します。
[復元が次の期間内に行われない場合は警告する] で警告のしきい値を選択します。
[復元ジョブ] の [スケジュール] ボックスに表示される復元スケジュールを確認します。 インストールのスケジュールをカスタマイズする場合、[スケジュール]を選択したら、 SQL Server エージェントのスケジュールを必要に応じて調整します。 このスケジュールはバックアップ スケジュールに近い設定にします。
[OK] を選択して設定を保存します。
(オプション)[監視サーバー インスタンス]で、[監視サーバー インスタンスの使用]チェック ボックスを選択したら、[設定]を選択します。
重要
このログ配布構成を監視するには、ここで監視サーバーを追加する必要があります。 監視サーバーを後で追加するには、ログ配布構成を削除して、監視サーバーを含む新しい構成に置き換える必要があります。
[接続]を使用し、監視サーバーとして使用する SQL Server のインスタンスに接続します。
[モニター接続] で、バックアップ、コピー、復元の各ジョブで監視サーバーへの接続に使用する接続方法を指定します。
[履歴の保有期間] で、ログ配布の履歴レコードを保持する期間を指定します。
[OK] を選択して設定を保存します。
[データベースのプロパティ]ダイアログ ボックスで、[OK]を使用して構成プロセスを開始します。