Initialiser un abonnement transactionnel à partir d'une sauvegarde (programmation Transact-SQL de la réplication)
Bien qu'un abonnement à une publication transactionnelle soit en général initialisé à l'aide d'un instantané, il est possible d'initialiser un abonnement à partir d'une sauvegarde en utilisant les procédures stockées de réplication. Pour plus d’informations, consultez Initialiser un abonnement transactionnel sans instantané.
Pour initialiser un Abonné transactionnel à partir d'une sauvegarde
Pour une publication existante, assurez-vous que la publication prend en charge la possibilité d’initialiser à partir de la sauvegarde en exécutant sp_helppublication (Transact-SQL) sur le serveur de publication sur la base de données de publication. Notez la valeur de allow_initialize_from_backup dans le jeu de résultats.
Si la valeur est 1, la publication prend en charge cette fonctionnalité.
Si la valeur est 0, exécutez sp_changepublication (Transact-SQL) sur le serveur de publication sur la base de données de publication. Spécifiez une valeur de allow_initialize_from_backup pour @property et une valeur de
true
pour @value.
Pour une nouvelle publication, exécutez sp_addpublication (Transact-SQL) sur le serveur de publication sur la base de données de publication. Spécifiez la valeur for
true
allow_initialize_from_backup. Pour plus d’informations, voir Create a Publication.Avertissement
Afin d'éviter les données d'abonnés manquantes, lorsque vous utilisez sp_addpublication avec
@allow_initialize_from_backup = N'true'
, utilisez toujours@immediate_sync = N'true'
.Créez une sauvegarde de la base de données de publication à l’aide de l’instruction BACKUP (Transact-SQL).
Restaurez la sauvegarde sur l’Abonné à l’aide de l’instruction RESTORE (Transact-SQL).
Sur le serveur de publication sur la base de données de publication, exécutez la procédure stockée sp_addsubscription (Transact-SQL). Spécifiez les paramètres suivants :
@sync_type – valeur de initialize with backup;
@backupdevicetype – type d'unité de sauvegarde : logical (valeur par défaut), diskou tape;
@backupdevicename – unité de sauvegarde logique ou physique à utiliser pour la restauration.
Pour une unité logique, spécifiez le nom de l'unité de sauvegarde qui a été spécifié quand sp_addumpdevice a été utilisé pour créer l'unité.
Pour une unité physique, spécifiez un chemin d'accès complet et un nom de fichier, tels que
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\BACKUP\Mybackup.dat'
ouTAPE = '\\.\TAPE0'
;(Facultatif) @password – mot de passe qui a été fourni lorsque le jeu de sauvegarde a été créé ;
(Facultatif) @mediapassword – mot de passe qui a été fourni lorsque le support de sauvegarde a été formaté ;
(Facultatif) @fileidhint – identificateur pour le jeu de sauvegarde à restaurer. Par exemple, la valeur 1 indique le premier jeu de sauvegarde sur le support de sauvegarde et la valeur 2 le second jeu de sauvegarde ;
(Facultatif pour les périphériques à bandes) @unload – spécifiez la valeur 1 (valeur par défaut) si la bande doit être déchargée du lecteur une fois la restauration terminée et 0 si elle ne doit pas être déchargée.
(Facultatif) Pour un abonnement par extraction, exécutez sp_addpullsubscription (Transact-SQL) et sp_addpullsubscription_agent (Transact-SQL) sur l’Abonné sur la base de données d’abonnement. Pour plus d’informations, consultez Créer un abonnement par extraction de données (pull).
(Facultatif) Démarrez l'Agent de distribution. Pour plus d'informations, consultez Synchronize a Pull Subscription ou Synchronize a Push Subscription.
Voir aussi
Copier des bases de données avec la sauvegarde et la restauration
Sauvegarder et restaurer des bases de données SQL Server