適用於:SQL Server
設定記錄傳送組態的主要資料庫,其中包括備份作業、本機監視記錄,以及遠端監視記錄。
語法
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 ]
[ , [ @primary_connection_options = ] '<key_value_pairs>;[...]' ]
[ , [ @monitor_connection_options = ] '<key_value_pairs>;[...]' ]
[ ; ]
引數
[ @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。
[ @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_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。 如果未指定任何值,則會使用 14420 的值。
[ @backup_job_id = ] backup_job_id 輸出
與主伺服器上備份作業相關聯的 SQL Server Agent 作業標識碼。
@backup_job_id是 uniqueidentifier 類型的 OUTPUT 參數,不能是 NULL。
[ @primary_id = ] primary_id 輸出
記錄傳送組態之主資料庫的標識碼。
@primary_id是 uniqueidentifier 類型的 OUTPUT 參數,不能是 NULL。
[ @backup_compression = ] backup_compression_option
指定記錄傳送組態是否使用 備份壓縮。
-
0:禁用。 永遠不要壓縮記錄備份。 -
1:啟用。 一律壓縮記錄備份。 -
2(預設值):使用 備份壓縮預設 伺服器組態選項。
[ @primary_connection_options = ] '<key_value_pairs>;[......]'
適用於:SQL Server 2025(17.x)及更新版本
在連線到主要資料庫時,以索引鍵值組的形式指定其他連線選項。
@primary_connection_options 是 nvarchar(4000), 預設值為 NULL。
下表列出可用的連線選項:
| Key | 價值觀 |
|---|---|
Encrypt |
strict、mandatory、optional、true、false |
TrustServerCertificate |
true、false、yes、no |
ServerCertificate |
檔案系統上伺服器憑證的路徑。 其長度上限為 260 個字元。 |
HostNameInCertificate |
憑證的主機名稱覆寫。 其長度上限為 255 個字元。 |
[ @monitor_connection_options = ] '<key_value_pairs>;[......]'
適用於:SQL Server 2025(17.x)及更新版本
在使用遠端監視器時,以索引鍵值組的形式指定連結伺服器連線的其他連線選項。
@monitor_connection_options 是 nvarchar(4000), 預設值為 NULL。
下表列出可用的連線選項:
| Key | 價值觀 |
|---|---|
Encrypt |
strict、mandatory、optional、true、false |
TrustServerCertificate |
true、false、yes、no |
ServerCertificate |
檔案系統上伺服器憑證的路徑。 其長度上限為 260 個字元。 |
HostNameInCertificate |
憑證的主機名稱覆寫。 其長度上限為 255 個字元。 |
傳回碼值
0 (成功) 或 1 (失敗)。
結果集
無。
備註
sp_add_log_shipping_primary_database 必須在主伺服器上從 master 資料庫執行。 此預存程式會執行下列函式:
產生主要標識碼,並使用提供的自變數,在數據表
log_shipping_primary_databases中加入主資料庫的專案。為停用的主資料庫建立備份作業。
將專案中的
log_shipping_primary_databases備份作業標識元設定為備份作業的作業標識碼。使用提供的自變數,在主伺服器上的數據表
log_shipping_monitor_primary中新增本機監視器記錄。如果監視伺服器與主伺服器不同,
sp_add_log_shipping_primary_database請使用提供的自變數在監視伺服器上新增監視記錄log_shipping_monitor_primary。
權限
只有系統管理員固定伺服器角色的成員才能執行此程式。
範例
A。 在日誌運送配置中新增主要資料庫
本範例會將資料庫 AdventureWorks2025 新增為記錄傳送組態中的主資料庫。
DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;
EXECUTE master.dbo.sp_add_log_shipping_primary_database
@database = N'AdventureWorks',
@backup_directory = N'c:\lsbackup',
@backup_share = N'\\backupshare\lsbackup',
@backup_job_name = N'LSBackup_AdventureWorks',
@backup_retention_period = 1440,
@monitor_server = N'monitor-server',
@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
B. 新增主要資料庫並嚴格加密
此範例會將資料庫 AdventureWorks2025 新增為日誌傳送配置中的主要資料庫,並指示日誌傳送針對從日誌傳送可執行檔到主要實例的連線,以及從主要實例到遠端監視器實例 monitor-server的連線,使用嚴格的加密選項。
DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;
EXECUTE master.dbo.sp_add_log_shipping_primary_database
@database = N'AdventureWorks',
@backup_directory = N'c:\lsbackup',
@backup_share = N'\\backupshare\lsbackup',
@backup_job_name = N'LSBackup_AdventureWorks',
@backup_retention_period = 1440,
@monitor_server = N'monitor-server',
@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,
@primary_connection_options = N'Encrypt=Strict;',
@monitor_connection_options = N'Encrypt=Strict;';
GO
C. 使用帶有連接功能的遠端螢幕
如果監控器是遠端的 SQL Server 2025 (17.x) 實例,而日誌運送拓撲中其他 SQL Server 實例使用舊版本,日誌運送監控可能會失效。
一旦你放棄現有設定,請使用以下範例腳本,以正確的 @monitor_connection_options重建日誌運送設定,無論是主副本還是次副本。
DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;
EXECUTE
master.dbo.sp_add_log_shipping_primary_database
@database = N'LogShippedDB',
@backup_directory = N'\\backupshare\lsbackup',
@backup_share = N'\\backupshare\lsbackup',
@backup_job_name = N'LSBackup_AdventureWorks',
@backup_retention_period = 4320,
@backup_compression = 2,
@monitor_server = N'LS25Monitor',
@monitor_server_security_mode = 1,
@backup_threshold = 60,
@threshold_alert_enabled = 1,
@history_retention_period = 5760,
@backup_job_id = @LS_BackupJobId OUTPUT,
@primary_id = @LS_PrimaryId OUTPUT,
@overwrite = 1,
@monitor_connection_options = N'Encrypt=Mandatory;TrustServerCertificate=Yes;';
欲了解更多資訊,請參閱 加密與憑證驗證行為。