[SQL Server] Réplication : quelques opérations de manipulation élémentaires

Ce billet présente quelques opérations de manipulation élémentaire de la réplication. Il aborde notamment la modification des propriétés d’un distributeur, d’un serveur de publication, d’un éditeur ou d’un abonné, mais aussi la réinitialisation et/ou synchronisation d’un abonné.

Modification des propriétés…

… d’un distributeur

Il est possible de consulter et/ou modifier les propriétés d’un distributeur. Pour ce faire, faites un clic-droit sur Réplication, dans l’explorateur d’objets de SQL Server Management Studio (SSMS), puis allez dans Propriétés du serveur de distribution… :


La fenêtre modale suivante s’ouvre :


Au sein de l’onglet Général, le bouton Nouveau permet de créer et ajouter une nouvelle base de distribution.

Par défaut, les transactions stockées dans la base de distribution sont retenues jusqu’à 3 jours (72 heures) et l’historique des performances 2 jours (48 heures) :


Il est de bon ton d’adapter les valeurs en fonction des besoins. Si, par exemple, la base de distribution devient trop volumineuse, vous pouvez réduire à la durée de rétention des transactions à 24h.

Au sein des propriétés, il est également possible de définir des profils de SQL Agent :


Dont voici un exemple de fenêtre modale :


Un profil d’agent est un ensemble de paramètres utilisé chaque fois qu’un agent est exécuté.

Pour en savoir plus sur les profils d’agent référez-vous au lien suivant : http://msdn.microsoft.com/en-us/library/ms152515.aspx.

L’onglet Serveurs de publication liste les instances (éditeurs) et leurs bases de publication.


Il est possible de modifier la liste en ajoutant des serveurs (Ajouter). Il est également possible, ici, de modifier le dossier de snapshot de chaque serveur, le mode de connexion (et MDP) de leur agent,…

… d’un serveur de publication

Pour accéder aux propriétés d’un serveur de publication (éditeur), il suffit de faire un clic-droit sur Réplication, dans l’explorateur d’objets de SSMS, puis de sélectionner Propriétés du serveur de publication… :


Une fenêtre modale de propriétés s’ouvrira, indiquant, dans l’onglet Général, le serveur de distribution et la base de distribution utilisée par la publication :


L’onglet Bases de données de publication liste les bases du serveur utilisées comme base de publication transactionnelle et/ou de fusion.

… d’une publication

Il est possible de consulter et/ou modifier les propriétés d’un éditeur (ou publication). Pour ce faire, faites un clic-droit sur la publication souhaitée, au sein de Publications locales, sous Réplication, dans l’explorateur d’objets de SSMS, puis allez dans Propriétés… Le résultat sera le suivant (pour les propriétés générales) :

  • Pour la publication de snapshot :


    On peut noter que, dans notre cas, les abonnements n’expirent jamais, mais peuvent être désactivés jusqu’à leur prochaine réinitialisation.

  • Pour la publication transactionnelle :


    On peut noter que, dans notre cas, les abonnements n’expirent jamais, mais peuvent être désactivés jusqu’à leur prochaine réinitialisation.

  • Pour la publication de fusion :


On peut noter, dans notre cas, que chaque abonnement est supprimé au bout de 2 semaines (valeur par défaut) s’il n’a pas été synchronisé durant tout ce laps de temps.

Chaque onglet fournit des informations de propriétés de la publication concernée, ainsi que la possibilité de les modifier. Grosso-modo :

  • Général : donne des informations sur le nom de l’éditeur (pas modifiable), sa base de données (pas modifiable), sa description, le niveau de compatibilité des abonnés (seulement dans le cas de la réplication de fusion) et la durée de rétention des abonnements.
  • Articles : fournit la liste des articles (tables, vues, procédures stockées, fonctions…) répliquées. Il est possible, ici, de modifier leurs propriétés, de choisir la direction de leur synchronisation (bidirectionnelle ? Unidirectionnelle ?…), de copier ou non certaines contraintes ou structure de données (clés étrangères, indexes,…). Si vous effectuez certaines modifications spéciales (ajout d’indexes, etc…), un nouveau snapshot post-modifications est recommandé.
  • Filtrer les lignes : permet de savoir quelles lignes sont filtrées au sein de chaque table concernée par la réplication. On peut éventuellement modifier les filtres existants, ou en créer.
  • Instantané : donne des informations (modifiables) sur le snapshot telles que son format (SQL Server natif ? Caractère ?), son dossier et chemin d’accès, des scripts supplémentaires pouvant l’accompagner.
  • Instantané FTP et Internet : fournit des informations (modifiables), quand elles existent, sur l’accès aux snapshot via FTP ou synchronisation Web.
  • Options d’abonnement : donne des informations (modifiables) sur les options d’abonnement. Il peut s’agir de la réplication de modifications de schémas, création d’abonnements avec attachement d’une copie d’une base, extraction d’abonnements anonymes, optimisation de la synchronisation (via stockage de davantage de métadonnées sur l’éditeur), autorisation d’abonnés non-MSSQL (cas de la réplication transactionnelle), etc…
  • Liste d’accès à la publication : liste les logins autorisés à créer et à synchroniser des abonnements au sein de la publication concernée.
  • Sécurité de l’agent : fournit des informations sur les paramètres de sécurité (mode de connexion, login, mot-de-passe…) des agents utilisés.
Remarque :

  • Au sein de la section Options d’abonnement d’une publication transactionnelle, il est possible d’indiquer si l’on souhaite une réplication peer-to-peer ou non.
  • Si vous accédez aux propriétés d’un abonné (par exemple, via clic-droit sur l’abonné en question sous Abonnements locaux si vous êtes sur le serveur de l’abonné ; via clic-droit sur l’abonné sous <Nom_de_la_publication> du dossier Publications locales sous Réplication, si vous êtes sur le serveur de publication) vous ne pourrez consulter que des informations générales non-modifiables relatives à l’abonné, hormis les comptes d’exécution et le niveau de priorité de résolution de conflits (réplication de fusion, seulement).

Réinitialisation/resynchronisation d’un abonné

Outre l’utilisation de jobs d’exécution d’agents d’initialisation/synchronisation (Snapshot Agent, Distribution Agent, Merge Agent), il est possible de lancer une réinitialisation/resynchronisation manuelle via SSMS autrement.

Exemple : clic-droit sur une des publications (sous Publications locales, au sein de Réplication, dans l’explorateur d’objets de SSMS), puis sélection de Réinitialiser tous les abonnements… :


Réinitialiser un abonné spécifique plutôt que tous les abonnés d’une publication est également possible :

  • Soit, sur l’instance de publication, en allant dans Réplication>Publications locales, puis en dépilant la publication souhaitée pour ensuite faire un clic-droit sur l’abonné ciblé afin d’accéder au menu contextuel Réinitialiser.
  • Soit, sur l’instance où se trouve l’abonné, en allant dans Réplication>Abonnements locaux, pour ensuite faire un clic-droit sur l’abonné souhaité afin de sélectionner Réinitialiser dans le menu contextuel.

On rappelle que la réinitialisation consiste à générer un nouveau snapshot de la base de publication via le Snapshot Agent, et que la resynchronisation consiste à appliquer le snapshot sur les abonnés (via le Distribution Agent ou le Merge Agent, selon le type de réplication utilisé).

Manipulations via T-SQL

La mise-en-place et/ou manipulation d’une réplication est possible en T-SQL, et même parfois plus efficace que via SSMS.


Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s