sp_add_log_shipping_secondary_database (Transact-SQL)

適用対象: SQL Server

ログ配布についてセカンダリ データベースを設定します。

Transact-SQL 構文表記規則

構文

sp_add_log_shipping_secondary_database
    [ @secondary_database = ] 'secondary_database'
    , [ @primary_server = ] 'primary_server'
    , [ @primary_database = ] 'primary_database'
    [ , [ @restore_delay = ] 'restore_delay' ]
    [ , [ @restore_all = ] 'restore_all' ]
    [ , [ @restore_mode = ] 'restore_mode' ]
    [ , [ @disconnect_users = ] 'disconnect_users' ]
    [ , [ @block_size = ] 'block_size' ]
    [ , [ @buffer_count = ] 'buffer_count' ]
    [ , [ @max_transfer_size = ] 'max_transfer_size' ]
    [ , [ @restore_threshold = ] 'restore_threshold' ]
    [ , [ @threshold_alert = ] 'threshold_alert' ]
    [ , [ @threshold_alert_enabled = ] 'threshold_alert_enabled' ]
    [ , [ @history_retention_period = ] 'history_retention_period' ]
[ ; ]

引数

[ @secondary_database = ] 'secondary_database'

セカンダリ データベースの名前。 @secondary_databasesysname で、既定値はありません。

[ @primary_server = ] 'primary_server'

ログ配布構成の SQL Server データベース エンジンのプライマリ インスタンスの名前。 @primary_serversysname でありNULLすることはできません。

[ @primary_database = ] 'primary_database'

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

[ @restore_delay = ] 'restore_delay'

セカンダリ サーバーが特定のバックアップ ファイルを復元するまでに待機する時間 (分)。 @restore_delayint であり、 NULLすることはできません。 既定値は0です。

[ @restore_all = ] 'restore_all'

1 に設定すると、セカンダリ サーバーでは復元ジョブの実行時にすべてのトランザクション ログ バックアップが復元されます。 それ以外の場合は、1 つのファイルが復元された後に停止します。 @restore_allビットでありNULLすることはできません。

[ @restore_mode = ] 'restore_mode'

セカンダリ データベースの復元モード。

  • 0: 次を使用してログを復元します。 NORECOVERY
  • 1: 次を使用してログを復元します。 STANDBY

@restore_modeビットでありNULLすることはできません。

[ @disconnect_users = ] 'disconnect_users'

1に設定すると、ユーザーは復元操作の実行時にセカンダリ データベースから切断されます。 既定値は、0 です。 @disconnect_usersビットでありNULLすることはできません。

[ @block_size = ] 'block_size'

バックアップ デバイスのブロック サイズとして使用されるサイズ (バイト単位)。 @block_sizeint 既定値は -1 です。

[ @buffer_count = ] 'buffer_count'

バックアップ操作または復元操作で使用されるバッファーの合計数。 @buffer_countint 既定値は -1 です。

[ @max_transfer_size = ] 'max_transfer_size'

バックアップ デバイスに対して SQL Server によって発行される最大入力または出力要求のサイズ (バイト単位)。 @max_transfersizeint であり、 NULLできます。

[ @restore_threshold = ] 'restore_threshold'

アラートが生成されるまでの復元操作の間に許容される時間 (分)。 @restore_thresholdint であり、 NULLすることはできません。

[ @threshold_alert = ] 'threshold_alert'

バックアップのしきい値を超えたときに発生するアラート。 @threshold_alertint で、既定値は 14,420 です。

[ @threshold_alert_enabled = ] 'threshold_alert_enabled'

@restore_thresholdを超えたときにアラートを発生するかどうかを指定します。 1 (既定値) の値は、アラートが発生することを意味します。 @threshold_alert_enabledビットです。

[ @history_retention_period = ] '@history_retention_period'

履歴が保持される時間 (分単位)。 @history_retention_periodint で、既定値は NULL です。 値 14420 は、何も指定されていない場合に使用されます。

リターン コードの値

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

結果セット

ありません。

解説

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

  1. sp_add_log_shipping_secondary_primary は、セカンダリ サーバーのプライマリ ログ配布データベース情報を初期化するために、このストアド プロシージャの前に呼び出す必要があります。

  2. 指定された引数を使用して、 log_shipping_secondary_databases のセカンダリ データベースのエントリを追加します。

  3. 指定された引数を使用して、セカンダリ サーバーの log_shipping_monitor_secondary にローカル モニター レコードを追加します。

  4. モニター・サーバーがセカンダリ・サーバーと異なる場合、 sp_add_log_shipping_secondary_database は、指定された引数を使用してモニター・サーバー上の log_shipping_monitor_secondary にモニター・レコードを追加します。

アクセス許可

このプロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーだけです。

この例では、sp_add_log_shipping_secondary_database ストアド プロシージャを使用して、プライマリ サーバー TRIBECAに存在するプライマリ データベースAdventureWorks2022を使用して、データベース LogShipAdventureWorksをセカンダリ データベースとしてログ配布構成に追加する方法を示します。

EXEC master.dbo.sp_add_log_shipping_secondary_database
    @secondary_database = N'LogShipAdventureWorks',
    @primary_server = N'TRIBECA',
    @primary_database = N'AdventureWorks2022',
    @restore_delay = 0,
    @restore_mode = 1,
    @disconnect_users = 0,
    @restore_threshold = 45,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440;
GO