sp_add_log_shipping_secondary_primary (Transact-SQL)

適用対象:SQL Server

指定したプライマリ データベースのセカンダリ サーバーに対して、プライマリ情報の設定、ローカルおよびリモート監視リンクの追加、コピー ジョブと復元ジョブの作成を行います。

Transact-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はビットであり、既定値は 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 データベースから実行する必要があります。 このストアド プロシージャでは次の処理が行われます。

  1. 指定したプライマリ サーバーとプライマリ データベースのセカンダリ ID を生成する。

  2. 次の処理を行います。

    1. 指定された引数を使用してセカンダリ ID log_shipping_secondary のエントリを追加します。
    2. 無効になったセカンダリ ID のコピー ジョブを作成する。
    3. エントリ内のコピー ジョブ ID を log_shipping_secondary コピー ジョブのジョブ ID に設定します。
    4. 無効になっているセカンダリ ID の復元ジョブを作成します。
    5. エントリの復元ジョブ ID を log_shipping_secondary 復元ジョブのジョブ 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