Share via


sp_add_log_shipping_primary_database (Transact-SQL)

適用於:SQL Server

設定記錄傳送組態的主要資料庫,其中包括備份作業、本機監視記錄,以及遠端監視記錄。

Transact-SQL 語法慣例

語法

sp_add_log_shipping_primary_database
    [ @database = ] 'database'
    , [ @backup_directory = ] N'backup_directory'
    , [ @backup_share = ] N'backup_share'
    , [ @backup_job_name = ] 'backup_job_name'
    [ , [ @backup_retention_period = ] backup_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' ]
    [ , [ @backup_threshold = ] backup_threshold ]
    [ , [ @threshold_alert = ] threshold_alert ]
    [ , [ @threshold_alert_enabled = ] threshold_alert_enabled ]
    [ , [ @history_retention_period = ] history_retention_period ]
    [ , [ @backup_job_id = ] backup_job_id OUTPUT ]
    [ , [ @primary_id = ] primary_id OUTPUT ]
    [ , [ @backup_compression = ] backup_compression_option ]
[ ; ]

引數

[ @database = ] 'database'

記錄傳送主資料庫的名稱。 @database是 sysname,沒有預設值,而且不能是 NULL

[ @backup_directory = ] N'backup_directory'

主伺服器上的備份資料夾路徑。 @backup_directory是 nvarchar(500),沒有預設值,而且不能是 NULL

[ @backup_share = ] N'backup_share'

主伺服器上的備份目錄網路路徑。 @backup_share是 nvarchar(500),沒有預設值,而且不能是 NULL

[ @backup_job_name = ] 'backup_job_name'

將備份複製到備份資料夾之主伺服器上的 SQL Server Agent 作業名稱。 @backup_job_name是 sysname,不能是 NULL

[ @backup_retention_period = ] backup_retention_period

在主伺服器上的備份目錄中保留記錄備份文件的時間長度,以分鐘為單位。 @backup_retention_period為 int,沒有預設值,而且不能是 NULL

[ @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'

用來存取監視伺服器之帳戶的密碼。

[ @backup_threshold = ] backup_threshold

在引發@threshold_alert錯誤前的最後一次備份之後,以分鐘為單位的時間長度。 @backup_threshold為 int,預設值為 60 分鐘。

[ @threshold_alert = ] threshold_alert

超過備份閾值時要引發的警示。 @threshold_alert為 int,預設值為 14,420。

[ @threshold_alert_enabled = ] threshold_alert_enabled

指定是否在超過@backup_threshold引發警示。 默認值為零 (0),表示警示已停用且不會引發。 @threshold_alert_enabled為 bit

[ @history_retention_period = ] history_retention_period

保留歷程記錄的分鐘數長度。 @history_retention_period為 int,預設值為 NULL。 如果未指定任何值,則會使用 14420 的值。

[ @backup_job_id = ] backup_job_id OUTPUT

與主伺服器上備份作業相關聯的 SQL Server Agent 作業標識碼。 @backup_job_id是 uniqueidentifier 類型的 OUTPUT 參數,不能是 NULL

[ @primary_id = ] primary_id OUTPUT

記錄傳送組態之主資料庫的標識碼。 @primary_id是 uniqueidentifier 類型的 OUTPUT 參數,不能是 NULL

[ @backup_compression = ] backup_compression_option

指定記錄傳送組態是否使用 備份壓縮

傳回碼值

0 (成功)或 1 (失敗)。

結果集

無。

備註

sp_add_log_shipping_primary_database 必須在主伺服器上從 master 資料庫執行。 此預存程式會執行下列函式:

  1. 產生主要標識碼,並使用提供的自變數,在數據表 log_shipping_primary_databases 中加入主資料庫的專案。

  2. 為停用的主資料庫建立備份作業。

  3. 將專案中的 log_shipping_primary_databases 備份作業標識元設定為備份作業的作業標識碼。

  4. 使用提供的自變數,在主伺服器上的數據表 log_shipping_monitor_primary 中新增本機監視器記錄。

  5. 如果監視伺服器與主伺服器不同, sp_add_log_shipping_primary_database 請使用提供的自變數在監視伺服器上新增監視記錄 log_shipping_monitor_primary

權限

只有系統管理員固定伺服器角色的成員才能執行此程式。

範例

本範例會將資料庫 AdventureWorks2022 新增為記錄傳送組態中的主資料庫。

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXEC master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\tribeca\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'rockaway',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0;
GO