Initialisation d'un abonnement transactionnel sans capture instantanée
Par défaut, un abonnement à une publication transactionnelle est initialisé avec une capture instantanée, laquelle est générée par l'Agent de capture instantanée et appliquée par l'Agent de distribution. Dans certains scénarios, comme ceux impliquant de volumineux datasets initiaux, il est préférable d'initialiser un abonnement à l'aide d'une autre méthode. Autres méthodes d'initialisation d'un abonné :
- Spécifier une sauvegarde. Restaurez la sauvegarde sur l'Abonné, l'Agent de distribution copie ensuite toutes les métadonnées de réplication et procédures système requises. L'initialisation avec une sauvegarde est le moyen le plus rapide pour remettre les données sur l'Abonné, c'est également un moyen pratique, car vous pouvez utiliser n'importe quelle sauvegarde récente si celle-ci a été effectuée après que la publication ait été activée pour l'initialisation avec une sauvegarde.
- Copier un dataset initial sur l'Abonné par un autre mécanisme, comme l'attachement d'une base de données. Vous devez vous assurer que les données et schéma corrects se trouvent sur l'Abonné, l'Agent de distribution copie ensuite toutes les métadonnées et procédures système requises.
Initialisation d'un abonnement avec une sauvegarde
Une sauvegarde contient une base de données complète ; de ce fait, chaque base de données d'abonnement contiendra une copie complète de la base de données de publication lorsqu'elle est est initialisée :
- La sauvegarde inclut des tables n'étant pas spécifiées comme des articles pour la publication.
- La sauvegarde inclut toutes les données, même si des filtres de lignes ou de colonnes sont spécifiés sur une table.
L'administrateur ou l'application est responsable de la suppression de tout objet ou donnée non sollicité une fois que la sauvegarde a été restaurée. Dans les synchronisations suivantes, les modifications de données sont répliquées uniquement si elles s'appliquent à des tables spécifiées comme des articles, et que les modifications répondent à tous les critères de filtrage spécifiés.
Remarque : |
---|
Lors de la restauration d'une sauvegarde, vous devez vous assurer que la sauvegarde provient d'un serveur de publication si vous voulez que l'Abonné se synchronise automatiquement. Les valeurs du numéro de séquence d'enregistrement (LSN) de la sauvegarde (utilisées pour définir le point de démarrage de la synchronisation) sont spécifiques au serveur de publication. |
Pour initialiser un abonnement avec une sauvegarde
Pour initialiser un abonnement avec une sauvegarde, vous devez d'abord activer l'option lorsque vous créez une publication, puis spécifier des valeurs pour plusieurs options lorsque vous créez un abonnement. Les publications peuvent être activées par la biais de l'Assistant Nouvelle publication ou par programme. Cependant, les valeurs requises pour les options d'abonnement ne peuvent être spécifiées que par programme.
- SQL Server Management Studio: Procédure : activer l'initialisation avec une sauvegarde pour les publications transactionnelles (SQL Server Management Studio)
- Programmation de la réplication avec Transact-SQL : How to: Initialize a Transactional Subscriber from a Backup (Replication Transact-SQL Programming)
Remarque : |
---|
Si un abonnement est initialisé sans utiliser une capture instantanée, le compte sous lequel fonctionne le service SQL Server sur le serveur de publication doit disposer d'autorisations d'écriture sur le dossier de captures instantanées sur le serveur de distribution. Pour plus d'informations sur les autorisations, consultez Modèle de sécurité de l'Agent de réplication. |
Vérification de la pertinence d'une sauvegarde
Une sauvegarde est appropriée à l'initialisation d'un abonné si toutes les transactions se produisant après avoir effectué la sauvegarde sont stockées sur le serveur de distribution. La réplication affichera un message d'erreur si la sauvegarde n'est pas appropriée.
Afin de vous assurer que l'utilisation d'une sauvegarde est appropriée, suivez les instructions suivantes :
- Utilisez la dernière sauvegarde disponible, et si elle est plus ancienne que la période de rétention de distribution maximale, créez une nouvelle sauvegarde avant de tenter d'initialiser un abonnement avec une sauvegarde. Pour plus d'informations sur la période de rétention, consultez Expiration et désactivation des abonnements.
- Par défaut, les travaux de nettoyage de la distribution effacent les transactions de plus de 72 heures de la base de données de distribution. Le nettoyage est basé sur la période de rétention définie pour la publication. Lors de la synchronisation avec d'anciennes sauvegardes, envisagez de désactiver temporairement le travail avant la sauvegarde que vous souhaitez restaurer, puis de le réactiver une fois l'abonnement créé avec succès. Cela évite la suppression de transactions de la base de données de distribution pouvant s'avérer nécessaires à la réussite de la synchronisation à partir de la sauvegarde. Pour plus d'informations sur l'exécution de travaux de nettoyage, consultez Procédure : exécuter des travaux de maintenance de réplication (SQL Server Management Studio).
Dans certains cas, vous devez effectuer manuellement des personnalisations dans la base de données restaurée de l'Abonné après avoir configuré des abonnements initialisés par une sauvegarde. En général, les modifications manuelles sur la base de données restaurée de l'Abonné sont nécessaires, si la publication est définie de telle sorte que le contenu de la base de données de l'Abonné est supposé être différent du contenu de la base de données du serveur de publication.
- Les vues indexées sur la base de données restaurée doivent être converties en tables si elles sont publiées en tant qu'articles de la vue indexée sur la table basés sur un journal
- Les colonnes de type timestamp abonnées à la base de données restaurée doivent être converties en colonnes binary(8) : copiez le contenu des tables contenant les colonnes timestamp vers de nouvelles tables avec des schémas correspondants, sauf pour les colonnes timestamp qui sont remplacées par les colonnes binary(8), supprimez les tables d'origine, et renommez les nouvelles tables avec les mêmes noms que les tables d'origine.
Initialisation d'un abonnement avec une méthode de remplacement
Il est possible d'initialiser un abonnement à l'aide de n'importe quelle méthode vous autorisant à copier le schéma de la base de données de publication et les données sur l'Abonné, comme Integration Services. Lorsque vous utilisez une méthode de remplacement pour initialiser l'Abonné, les objets de prise en charge de la réplication sont copiés sur l'Abonné.
Contrairement à l'initialisation avec une sauvegarde, vous, ou votre application, devez vous assurer que les données et le schéma sont correctement synchronisés au moment d'ajouter l'abonnement. Si, par exemple, il y a une activité sur le serveur de publication entre le moment où les données et le schéma sont copiés sur l'Abonné et le moment où l'abonnement est ajouté, les modifications résultant de cette activité ne seront peut-être pas répliquées sur l'Abonné.
Pour initialiser un abonnement avec une méthode de remplacement
- SQL Server Management Studio: Procédure : initialiser manuellement un abonnement (SQL Server Management Studio)
- Programmation de la réplication avec Transact-SQL : How to: Initialize a Subscription Manually (Replication Transact-SQL Programming)
Voir aussi
Concepts
Initialisation d'un abonnement