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

  1. 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.

  2. 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 trueallow_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'.

  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. 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' 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 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.

  6. (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).

  7. (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