適用対象:SQL Server
指定したプライマリ データベースのセカンダリ サーバーに対して、プライマリ情報の設定、ローカルおよびリモート監視リンクの追加、コピー ジョブと復元ジョブの作成を行います。
構文
sp_add_log_shipping_secondary_primary
[ @primary_server = ] 'primary_server'
, [ @primary_database = ] 'primary_database'
, [ @backup_source_directory = ] N'backup_source_directory'
, [ @backup_destination_directory = ] N'backup_destination_directory'
, [ @copy_job_name = ] 'copy_job_name'
, [ @restore_job_name = ] 'restore_job_name'
[ , [ @file_retention_period = ] 'file_retention_period' ]
[ , [ @monitor_server = ] 'monitor_server' ]
[ , [ @monitor_server_security_mode = ] 'monitor_server_security_mode' ]
[ , [ @monitor_server_login = ] 'monitor_server_login' ]
[ , [ @monitor_server_password = ] 'monitor_server_password' ]
[ , [ @copy_job_id = ] 'copy_job_id' OUTPUT ]
[ , [ @restore_job_id = ] 'restore_job_id' OUTPUT ]
[ , [ @secondary_id = ] 'secondary_id' OUTPUT ]
[ , [ @secondary_connection_options = ] '<key_value_pairs>;[...]' ]
[ , [ @monitor_connection_options = ] '<key_value_pairs>;[...]' ]
[ ; ]
引数
[ @primary_server = ] 「primary_server」
ログ配布構成の SQL Server データベース エンジンのプライマリ インスタンスの名前。
@primary_serverは sysname でありNULLすることはできません。
[ @primary_database = ] 「primary_database」
プライマリ サーバー上のデータベースの名前。 @primary_database は sysname で、既定値はありません。
[ @backup_source_directory = ] N'backup_source_directory'
プライマリ サーバーからのトランザクション ログ バックアップ ファイルが格納されているディレクトリ。
@backup_source_directory は nvarchar(500) であり、 NULLすることはできません。
[ @backup_destination_directory = ] N'backup_destination_directory'
バックアップ ファイルのコピー先となるセカンダリ サーバー上のディレクトリ。
@backup_destination_directory は nvarchar(500) であり、 NULLすることはできません。
[ @copy_job_name = ] 「copy_job_name」
トランザクション ログ バックアップをセカンダリ サーバーにコピーするために作成されるSQL Server エージェント ジョブに使用する名前。
copy_job_nameは sysname でありNULLすることはできません。
[ @restore_job_name = ] 「restore_job_name」
セカンダリ データベースにバックアップを復元するセカンダリ サーバー上のSQL Server エージェント ジョブの名前。
restore_job_nameは sysname でありNULLすることはできません。
[ @file_retention_period = ] 「file_retention_period」
@backup_destination_directory パラメーターで指定されたパス内のセカンダリ サーバーにバックアップ ファイルが保持されてから削除されるまでの時間 (分単位)。
@history_retention_period は int で、既定値は NULL です。 値 14420 は、何も指定されていない場合に使用されます。
[ @monitor_server = ] 「monitor_server」
モニター サーバーの名前。
@monitor_server は sysname で、既定値はなく、 NULLすることはできません。
[ @monitor_server_security_mode = ] 「monitor_server_security_mode」
監視サーバーへの接続に使用されるセキュリティ モード。
-
1: Windows 認証 -
0: SQL Server 認証
@monitor_server_security_mode は bit で、既定値は 1 であり、 NULLすることはできません。
[ @monitor_server_login = ] 「monitor_server_login」
監視サーバーへのアクセスに使用するアカウントのユーザー名。
[ @monitor_server_password = ] 「monitor_server_password」
監視サーバーへのアクセスに使用するアカウントのパスワード。
[ @copy_job_id = ] 「copy_job_id」出力
セカンダリ サーバーでのコピー ジョブに関連付けられた ID。
@copy_job_idはuniqueidentifierでありNULLすることはできません。
[ @restore_job_id = ] 「restore_job_id」出力
セカンダリ サーバー上の復元ジョブに関連付けられている ID。
@restore_job_idはuniqueidentifierでありNULLすることはできません。
[ @secondary_id = ] 「secondary_id」出力
ログ配布構成におけるセカンダリ サーバーの ID。
@secondary_idはuniqueidentifierでありNULLすることはできません。
[ @secondary_connection_options = ] '<key_value_pairs>;[...]'
対象:SQL Server 2025(17.x)以降のバージョン
セカンダリに接続するときの追加の接続オプションを、キーと値のペアの形式で指定します。
@secondary_connection_options は nvarchar(4000) で、既定値は NULL です。
次の表に、使用可能な接続オプションを示します。
| Key | 価値 |
|---|---|
Encrypt |
strict、 mandatory、 optional、 true、 false |
TrustServerCertificate |
true、 false、 yes、 no |
ServerCertificate |
ファイル システム上のサーバー証明書へのパス。 最大長は 260 文字です。 |
HostNameInCertificate |
証明書のホスト名のオーバーライド。 最大長は 255 文字です。 |
[ @monitor_connection_options = ] '<key_value_pairs>;[...]'
対象:SQL Server 2025(17.x)以降のバージョン
リモート モニターを使用する場合のリンク サーバー接続の追加の接続オプションを、キーと値のペアの形式で指定します。
@monitor_connection_options は nvarchar(4000) で、既定値は NULL です。
次の表に、使用可能な接続オプションを示します。
| Key | 価値 |
|---|---|
Encrypt |
strict、 mandatory、 optional、 true、 false |
TrustServerCertificate |
true、 false、 yes、 no |
ServerCertificate |
ファイル システム上のサーバー証明書へのパス。 最大長は 260 文字です。 |
HostNameInCertificate |
証明書のホスト名のオーバーライド。 最大長は 255 文字です。 |
リターン コードの値
0 (成功) または 1 (失敗)。
結果セット
ありません。
解説
sp_add_log_shipping_secondary_primary は、セカンダリ サーバー上の master データベースから実行する必要があります。 このストアド プロシージャでは次の処理が行われます。
指定したプライマリ サーバーとプライマリ データベースのセカンダリ ID を生成する。
次の処理を行います。
- 指定された引数を使用して、
log_shipping_secondaryのセカンダリ ID のエントリを追加します。 - 無効になったセカンダリ ID のコピー ジョブを作成する。
-
log_shipping_secondaryエントリのコピー ジョブ ID をコピー ジョブのジョブ ID に設定します。 - 無効になっているセカンダリ ID の復元ジョブを作成します。
-
log_shipping_secondaryエントリの復元ジョブ ID を復元ジョブのジョブ ID に設定します。
- 指定された引数を使用して、
アクセス許可
このプロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーだけです。
例
この例では、 sp_add_log_shipping_secondary_primary ストアド プロシージャを使用して、セカンダリ サーバー上のプライマリ データベース AdventureWorks2025 の情報を設定する方法を示します。
EXECUTE master.dbo.sp_add_log_shipping_secondary_primary
@primary_server = N'TRIBECA',
@primary_database = N'AdventureWorks2022',
@backup_source_directory = N'\\tribeca\LogShipping',
@backup_destination_directory = N'',
@copy_job_name = N'',
@restore_job_name = N'',
@file_retention_period = 1440,
@monitor_server = N'ROCKAWAY',
@monitor_server_security_mode = 1,
@copy_job_id = @LS_Secondary__CopyJobId OUTPUT,
@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT,
@secondary_id = @LS_Secondary__SecondaryId OUTPUT;
GO