Initialiser un abonnement transactionnel à partir d’une sauvegarde

S'applique à : SQL Server

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

  1. Pour une publication existante, vérifiez que la publication prend en charge la capacité d’initialiser à partir d’une sauvegarde en exécutant sp_helppublication (Transact-SQL) sur la base de données de publication du serveur 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) au niveau du serveur de publication sur la base de données de publication. Spécifiez la valeur allow_initialize_from_backup pour @property et la valeur true pour @value.

  2. Pour une nouvelle publication, exécutez sp_addpublication (Transact-SQL) au niveau du serveur de publication sur la base de données de publication. Spécifiez la valeur true pour allow_initialize_from_backup. Pour plus d’informations, voir Create a Publication.

    Avertissement

    Afin d’éviter les données d’abonnés manquantes, quand vous utilisez sp_addpublication ou sp_changepublication avec @allow_initialize_from_backup = N'true', utilisez toujours @immediate_sync = N'true'.

  3. Créez une sauvegarde de la base de données de publication à l’aide de l’instruction BACKUP (Transact-SQL).

  4. Restaurez la sauvegarde sur l’Abonné à l’aide de l’instruction RESTORE (Transact-SQL).

  5. Exécutez la procédure stockée sp_addsubscription (Transact-SQL). sur la base de données de publication du serveur de publication. 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\MSSQL13.MSSQLSERVER\BACKUP\Mybackup.dat' ou TAPE = '\\.\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 du 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, ou la valeur 0 si elle ne doit pas être déchargée.

  6. (Facultatif) Pour un abonnement par extraction, exécutez sp_addpullsubscription (Transact-SQL) et sp_addpullsubscription_agent (Transact-SQL) au niveau de 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).

  7. (Facultatif) Démarrez l'Agent de distribution. Pour plus d'informations, consultez Synchronize a Pull Subscription ou Synchronize a Push Subscription.