sp_add_log_shipping_secondary_primary (Transact-SQL)
適用対象: SQL サーバー
指定したプライマリ データベースのセカンダリ サーバーに対して、プライマリ情報の設定、ローカルおよびリモート監視リンクの追加、コピー ジョブと復元ジョブの作成を行います。
構文
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 ]
[ ; ]
引数
[ @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' OUTPUT
セカンダリ サーバーでのコピー ジョブに関連付けられた ID。 @copy_job_id は uniqueidentifier NULL にすることはできません。
[ @restore_job_id = ] 'restore_job_id' OUTPUT
セカンダリ サーバー上の復元ジョブに関連付けられている ID。 @restore_job_id は uniqueidentifier NULL にすることはできません。
[ @secondary_id = ] 'secondary_id' OUTPUT
ログ配布構成におけるセカンダリ サーバーの ID。 @secondary_id は uniqueidentifier NULL にすることはできません。
リターン コードの値
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
ストアド プロシージャを使用して、セカンダリ サーバー上のプライマリ データベース AdventureWorks2022
の情報を設定する方法を示します。
EXEC 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