Partager via


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 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) sur la base de données de publication du serveur 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) sur la base de données de publication du serveur de publication. Spécifiez la valeur true pour allow_initialize_from_backup. Pour plus d'informations, consultez Créer une publication.

    AttentionAttention

    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. 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), disk ou 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\MSSQL11.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 la base de données d'abonnement de l'Abonné. 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 Synchroniser un abonnement par extraction (pull) ou Synchroniser un abonnement par émission (push).

Voir aussi

Concepts

Copier des bases de données avec la sauvegarde et la restauration

Sauvegarde et restauration des bases de données SQL Server