Passer au contenu principal

Mise en Place de la Réplication Transactionnelle sous SQL Server 2019 Standard

Prérequis

  1. Environnement requis :

    • SQL Server 2019 Standard Edition ou supérieur.
    • Une instance SQL Server pour le Publisher (source) et une pour le Subscriber (destination).
    • Les bases de données doivent être en mode de récupération Full ou Bulk-Logged.
  2. Comptes et permissions :

    • Compte SQL Server Agent actif.
    • Compte disposant des autorisations nécessaires pour configurer la réplication :
      • Rôle sysadmin ou accès à la base de données en tant que db_owner pour le Publisher et le Subscriber.
  3. Connectivité :

    • Les instances doivent pouvoir communiquer via le réseau (pare-feu ouvert sur les ports SQL Server, généralement 1433).
    • Activez les connexions distantes si nécessaire.

Étapes de Mise en Place

1. Activer la Réplication

  1. Connectez-vous à l'instance SQL Server via SQL Server Management Studio (SSMS).
  2. Dans l’Explorateur d’objets :
    • Faites un clic droit sur Replication > Configure Distribution....
    • Sélectionnez "This server will act as its own Distributor" ou configurez un autre serveur comme Distributor.
    • Définissez un dossier réseau partagé pour stocker les snapshots (ex. \\Serveur\Replication).
    • Terminez la configuration en suivant l’assistant.

2. Configurer le Publisher

  1. Identifiez la base de données source pour la réplication.

  2. Dans SSMS :

    • Faites un clic droit sur Replication > Local Publications > New Publication.
    • Suivez l’assistant :
      • Sélectionnez la base de données source.
      • Choisissez Transactional Publication.
      • Sélectionnez les tables et objets à répliquer.
        • Assurez-vous que chaque table possède une clé primaire (requis pour la réplication transactionnelle).
      • Configurez les options de filtre (facultatif, pour limiter les colonnes ou les lignes à répliquer).
      • Spécifiez l’emplacement du Snapshot Agent.
    • Complétez la configuration et créez la publication.
  3. Vérifiez que la publication est créée dans Replication > Local Publications.

3. Configurer le Subscriber

  1. Identifiez ou créez la base de données cible sur l’instance du Subscriber.

  2. Dans SSMS :

    • Faites un clic droit sur Replication > Local Subscriptions > New Subscription.
    • Suivez l’assistant :
      • Sélectionnez la publication créée précédemment.
      • Choisissez l'instance et la base de données cible pour le Subscriber.
      • Configurez le mode de synchronisation (Push ou Pull) :
        • Push: Le Publisher envoie les données au Subscriber.
        • Pull: Le Subscriber extrait les données du Publisher.
      • Configurez le Distribution Agent (utilisez un compte avec les permissions nécessaires).
    • Complétez la configuration.
  3. Vérifiez que la souscription apparaît sous Replication > Local Subscriptions.

4. Vérification et Test

  1. Assurez-vous que les agents (Snapshot Agent, Log Reader Agent, et Distribution Agent) fonctionnent correctement :

    • Dans SSMS, allez à Replication > Distributor > Agents et vérifiez leur statut.
    • Vous pouvez démarrer les agents manuellement si nécessaire.
  2. Testez la réplication :

    • Insérez, mettez à jour, ou supprimez des données dans une table répliquée sur le Publisher.
    • Vérifiez que les modifications apparaissent sur le Subscriber.

Maintenance et Monitoring

Surveillance :

  • Utilisez le Replication Monitor pour surveiller l'état des publications et des souscriptions :
    • Accédez au Replication Monitor via un clic droit sur Replication > Launch Replication Monitor.
    • Vérifiez les latences et les éventuelles erreurs.

Gestion des erreurs :

  • Si une erreur survient, consultez les journaux des agents dans SSMS ou via les fichiers de logs configurés.

Planification de l’agent Snapshot :

  • Si les données initiales sont volumineuses, programmez la génération des snapshots à des moments où la charge est faible.

Nettoyage des historiques :

  • Configurez la période de rétention pour le nettoyage automatique via l'option Replication Maintenance Jobs.

Bonnes Pratiques

  1. Sécurité :

    • Limitez l'accès au partage réseau du Snapshot.
    • Utilisez des comptes avec le moins de privilèges nécessaires pour les agents.
    • Configurez des connexions sécurisées (SSL/TLS) si possible.
  2. Optimisation :

    • Réduisez la taille des snapshots en filtrant les colonnes et lignes non nécessaires.
    • Surveillez les performances des agents et ajustez leur fréquence si besoin.
  3. Planification des sauvegardes :

    • Sauvegardez les bases de données Publisher et Subscriber avant de configurer la réplication.

Résolution des Problèmes

  1. Erreur "Cannot drop the table because it is used for replication" :

    • Désactivez la réplication pour la table concernée avant toute suppression.
  2. Latence élevée :

    • Vérifiez la performance des agents.
    • Réduisez la charge sur le Publisher ou optimisez les transactions.
  3. Données manquantes :

    • Assurez-vous que les tables ont une clé primaire.
    • Vérifiez les filtres de réplication.