Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S'applique à :SQL Server
Initialise la base de données primaire d'une configuration d'envoi de journaux, ce qui inclut le travail de sauvegarde, l'enregistrement de surveillance local, et l'enregistrement de surveillance distant.
Conventions de la syntaxe Transact-SQL
Syntaxe
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>;[...]' ]
[ ; ]
Les arguments
[ @database = ] « base de données »
Nom de la base de données principale de copie des journaux de transaction.
@database est sysname, sans valeur par défaut et ne peut pas être NULL.
[ @backup_directory = ] N’backup_directory'
Chemin d’accès au dossier de sauvegarde sur le serveur principal.
@backup_directory est nvarchar(500), sans valeur par défaut et ne peut pas être NULL.
[ @backup_share = ] N’backup_share'
Chemin d’accès réseau au répertoire de sauvegarde sur le serveur principal.
@backup_share est nvarchar(500), sans valeur par défaut et ne peut pas être NULL.
[ @backup_job_name = ] 'backup_job_name'
Nom du travail SQL Server Agent sur le serveur principal qui copie la sauvegarde dans le dossier de sauvegarde.
@backup_job_name est sysname et ne peut pas être NULL.
[ @backup_retention_period = ] backup_retention_period
Durée, en minutes, de conservation du fichier de sauvegarde du journal dans le répertoire de sauvegarde sur le serveur principal.
@backup_retention_period est int, sans valeur par défaut et ne peut pas être NULL.
[ @monitor_server = ] 'monitor_server'
Nom du serveur moniteur.
@monitor_server est sysname, sans valeur par défaut et ne peut pas être NULL.
[ @monitor_server_security_mode = ] monitor_server_security_mode
Mode de sécurité utilisé pour la connexion au serveur moniteur.
-
1: Authentification Windows -
0: Authentification SQL Server
@monitor_server_security_mode est bit, avec une valeur par défaut 1, et ne peut pas être NULL.
[ @monitor_server_login = ] 'monitor_server_login'
Nom d’utilisateur du compte utilisé pour accéder au serveur moniteur.
[ @monitor_server_password = ] 'monitor_server_password'
Mot de passe du compte utilisé pour accéder au serveur moniteur.
[ @backup_threshold = ] backup_threshold
Durée, en minutes, après la dernière sauvegarde avant qu’une erreur de @threshold_alert soit générée. @backup_threshold est int, avec une valeur par défaut de 60 minutes.
[ @threshold_alert = ] threshold_alert
Alerte à déclencher lorsque le seuil de sauvegarde est dépassé. @threshold_alert est int, avec une valeur par défaut de 14 420.
[ @threshold_alert_enabled = ] threshold_alert_enabled
Spécifie si une alerte est déclenchée lorsque @backup_threshold est dépassé. La valeur zéro (0), la valeur par défaut, signifie que l’alerte est désactivée et ne sera pas déclenchée. @threshold_alert_enabled est bit.
[ @history_retention_period = ] history_retention_period
Durée en minutes pendant laquelle l’historique est conservé.
@history_retention_period est int, avec la valeur par défaut NULL. La valeur 14 420 est utilisée si aucune autre valeur n'est spécifiée.
[ @backup_job_id = ] sortie de backup_job_id
ID de travail sql Server Agent associé au travail de sauvegarde sur le serveur principal.
@backup_job_id est un paramètre OUTPUT de type uniqueidentifier et ne peut pas être NULL.
[ @primary_id = ] sortie de primary_id
ID de la base de données primaire pour la configuration de la copie des journaux de transaction.
@primary_id est un paramètre OUTPUT de type uniqueidentifier et ne peut pas être NULL.
[ @backup_compression = ] backup_compression_option
Spécifie si une configuration de copie des journaux de transaction utilise la compression de sauvegarde.
-
0:Handicapé. Ne jamais compresser des sauvegardes de journal. -
1:Activé. Toujours compresser des sauvegardes de journal. -
2(par défaut) : utilisez l’option de configuration du serveur par défaut de compression de sauvegarde .
[ @primary_connection_options = ] '<key_value_pairs> ;[ ...]'
S’applique à : SQL Server 2025 (17.x) et versions ultérieures
Spécifie des options de connectivité supplémentaires lors de la connexion au principal, sous la forme de paires clé-valeur.
@primary_connection_options est nvarchar(4000) et a la valeur par défaut NULL.
Le tableau suivant répertorie les options de connectivité disponibles :
| Key | Valeur |
|---|---|
Encrypt |
strict, , mandatoryoptional, , truefalse |
TrustServerCertificate |
true, , falseyes, ,no |
ServerCertificate |
Chemin d’accès du système de fichiers au certificat de serveur. Cela a une longueur maximale de 260 caractères. |
HostNameInCertificate |
Remplacement du nom d’hôte pour le certificat. Cela a une longueur maximale de 255 caractères. |
[ @monitor_connection_options = ] '<key_value_pairs> ;[ ...]'
S’applique à : SQL Server 2025 (17.x) et versions ultérieures
Spécifie des options de connectivité supplémentaires pour la connexion de serveur lié lors de l’utilisation d’un moniteur distant, sous la forme de paires clé-valeur.
@monitor_connection_options est nvarchar(4000) et a la valeur par défaut NULL.
Le tableau suivant répertorie les options de connectivité disponibles :
| Key | Valeur |
|---|---|
Encrypt |
strict, , mandatoryoptional, , truefalse |
TrustServerCertificate |
true, , falseyes, ,no |
ServerCertificate |
Chemin d’accès du système de fichiers au certificat de serveur. Cela a une longueur maximale de 260 caractères. |
HostNameInCertificate |
Remplacement du nom d’hôte pour le certificat. Cela a une longueur maximale de 255 caractères. |
Valeurs des codes de retour
0 (réussite) or 1 (échec).
Jeu de résultats
Aucune.
Notes
sp_add_log_shipping_primary_database doit être exécuté à partir de la master base de données sur le serveur principal. Cette procédure stockée remplit les fonctions suivantes :
Génère un ID principal et ajoute une entrée pour la base de données primaire dans la table
log_shipping_primary_databasesà l’aide des arguments fournis.Elle crée un travail de sauvegarde pour la base de données primaire qui est désactivée.
Définit l’ID du travail de sauvegarde dans l’entrée
log_shipping_primary_databasessur l’ID de travail de la tâche de sauvegarde.Ajoute un enregistrement de moniteur local dans la table
log_shipping_monitor_primarysur le serveur principal à l’aide d’arguments fournis.Si le serveur moniteur est différent du serveur principal,
sp_add_log_shipping_primary_databaseajoute un enregistrement de moniteur sur le serveur moniteur àlog_shipping_monitor_primaryl’aide d’arguments fournis.
autorisations
Seuls les membres du rôle serveur fixe sysadmin peuvent exécuter cette procédure.
Exemples
R. Ajouter une base de données primaire dans une configuration d’expédition de journaux
Cet exemple ajoute la base de données AdventureWorks2025 en tant que base de données primaire dans une configuration d'envoi de journaux.
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. Ajouter une base de données primaire avec un chiffrement strict
Cet exemple montre comment ajouter la base de données en tant que base de données AdventureWorks2025 principale dans une configuration de copie des journaux de transaction et demander à la copie des journaux de transaction d’utiliser les options de chiffrement strictes pour la connexion à l’instance primaire à partir de l’exécutable de copie des journaux de transaction et de l’instance principale vers l’instance monitor-serverde surveillance à distance.
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
Chapitre C. Utilisez un moniteur distant avec des options de connectivité
La surveillance de la copie des journaux de transaction peut s’arrêter si l’analyse est une instance SQL Server 2025 distante (17.x), lorsque d’autres instances SQL Server de la topologie de copie des journaux de transaction utilisent une version précédente.
Une fois que vous avez abandonné la configuration existante, utilisez le script d’exemple suivant pour recréer la configuration d’expédition de journaux avec le bon @monitor_connection_options, pour les répliques primaires et secondaires.
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;';
Pour plus d’informations, consultez Le comportement de validation du chiffrement et du certificat.