次の方法で共有


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_serversysname でありNULLすることはできません。

[ @primary_database = ] 'primary_database'

プライマリ サーバー上のデータベースの名前。 @primary_databasesysname で、既定値はありません。

[ @backup_source_directory = ] N'backup_source_directory'

プライマリ サーバーからのトランザクション ログ バックアップ ファイルが格納されているディレクトリ。 @backup_source_directorynvarchar(500) であり、 NULLすることはできません。

[ @backup_destination_directory = ] N'backup_destination_directory'

バックアップ ファイルのコピー先となるセカンダリ サーバー上のディレクトリ。 @backup_destination_directorynvarchar(500) であり、 NULLすることはできません。

[ @copy_job_name = ] 'copy_job_name'

トランザクション ログ バックアップをセカンダリ サーバーにコピーするために作成されるSQL Server エージェント ジョブに使用する名前。 copy_job_namesysname でありNULLすることはできません。

[ @restore_job_name = ] 'restore_job_name'

セカンダリ データベースにバックアップを復元するセカンダリ サーバー上のSQL Server エージェント ジョブの名前。 restore_job_namesysname でありNULLすることはできません。

[ @file_retention_period = ] 'file_retention_period'

@backup_destination_directory パラメーターで指定されたパス内のセカンダリ サーバーにバックアップ ファイルが保持されてから削除されるまでの時間 (分単位)。 @history_retention_periodint で、既定値は NULL です。 値 14420 は、何も指定されていない場合に使用されます。

[ @monitor_server = ] 'monitor_server'

モニター サーバーの名前。 @monitor_serversysname で、既定値はなく、 NULLすることはできません。

[ @monitor_server_security_mode = ] 'monitor_server_security_mode'

監視サーバーへの接続に使用されるセキュリティ モード。

  • 1: Windows 認証
  • 0: SQL Server 認証

@monitor_server_security_modebit で、既定値は 1 であり、 NULLすることはできません。

[ @monitor_server_login = ] 'monitor_server_login'

監視サーバーへのアクセスに使用するアカウントのユーザー名。

[ @monitor_server_password = ] 'monitor_server_password'

監視サーバーへのアクセスに使用するアカウントのパスワード。

[ @copy_job_id = ] 'copy_job_id' OUTPUT

セカンダリ サーバーでのコピー ジョブに関連付けられた ID。 @copy_job_iduniqueidentifierでありNULLすることはできません。

[ @restore_job_id = ] 'restore_job_id' OUTPUT

セカンダリ サーバー上の復元ジョブに関連付けられている ID。 @restore_job_iduniqueidentifierでありNULLすることはできません。

[ @secondary_id = ] 'secondary_id' OUTPUT

ログ配布構成におけるセカンダリ サーバーの ID。 @secondary_iduniqueidentifierでありNULLすることはできません。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

ありません。

解説

sp_add_log_shipping_secondary_primary は、セカンダリ サーバー上の master データベースから実行する必要があります。 このストアド プロシージャでは次の処理が行われます。

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

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

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