Réplication SQL Server 2008 (en évitant la réinitialisation)
-
05-07-2019 - |
Question
J'essaie de déterminer s'il existe un meilleur moyen de gérer la réplication que ce que nous faisons actuellement.
Nous essayons essentiellement de déterminer 2 choses:
- Est-il possible d'ajouter une colonne existante d'une table à la réplication sans réinitialiser le tout publication
- Pouvez-vous simplement sélectionner un article spécifique à réinitialiser au lieu de tout des articles d'une publication?
(Je suis un peu nouveau dans le domaine de la réplication ... j'essaie de faire vite, alors je m'excuse si ma terminologie n'a pas de sens)
À l'heure actuelle, nous avons environ 30 publications, ce qui fait que, s'il y a lieu de les réinitialiser, leur impact est minime ... car plusieurs de nos tableaux sont assez volumineux. Nous préférerions n'avoir que plusieurs publications.
Toutes les idées seraient grandement appréciées.
Mettre à jour
Lorsque nous essayons d'ajouter une colonne à un article, nous recevons le message suivant:
Vous avez changé un ou plusieurs propriétés qui nécessitent tous abonnements à réinitialiser. Enregistrer ces modifications marque chaque abonnement qui prend en charge automatique réinitialisation à réinitialiser à partir d'un instantané la prochaine fois que son L'agent de distribution s'exécute. Vous devez courir l'agent de capture instantanée pour générer le instantané.
Nous voulons éviter de réinitialiser tous les abonnements .. nous utilisons la réplication transactionnelle ... nous voulons à nouveau ajouter une colonne existante à une publication existante sans avoir à réinitialiser tous les abonnements.
La solution
Quel type de réplication? Instantané, Fusion, Transacitonal, Peer-to-Peer?
1) Oui. Voir Apporter des modifications de schéma aux bases de données de publication :
- Pour ajouter une nouvelle colonne à une table et inclure cette colonne dans un existant publication, exécutez ALTER TABLE AJOUTER . Par défaut, le la colonne est ensuite répliquée sur tous Les abonnés. La colonne doit permettre Valeurs NULL ou inclure une valeur par défaut contrainte.
- Pour inclure une colonne existante dans un publication existante, utilisation
sp_articlecolumn
(Transact-SQL),sp_mergearticlecolumn
(Transact-SQL), ou les propriétés de la publication - boîte de dialogue.
2) Cela dépend du type de réplication. Voir Réinitialisation d'un abonnement :
Réinitialiser un abonnement implique appliquer un nouvel instantané d'un ou plusieurs articles à un ou plusieurs abonnés: réplication transactionnelle et d'instantané permettre aux articles individuels d'être réinitialisé; fusionner la réplication exige que tous les articles soient réinitialisé .