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_databaseは sysname で、既定値はありません。

[ @primary_server = ] 'primary_server'

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

[ @primary_database = ] 'primary_database'

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

[ @restore_delay = ] 'restore_delay'

セカンダリ サーバーが特定のバックアップ ファイルを復元するまでに待機する時間 (分)。 @restore_delayは int であり、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_sizeは int で、既定値は -1 です。

[ @buffer_count = ] 'buffer_count'

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

[ @max_transfer_size = ] 'max_transfer_size'

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

[ @restore_threshold = ] 'restore_threshold'

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

[ @threshold_alert = ] 'threshold_alert'

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

[ @threshold_alert_enabled = ] 'threshold_alert_enabled'

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

[ @history_retention_period = ] '@history_retention_period'

履歴が保持される時間 (分単位)。 @history_retention_periodは int で、既定値は 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