Mise en Place de la Réplication Transactionnelle sous SQL Server 2019 Standard
Prérequis
-
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.
-
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.
-
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
- Connectez-vous à l'instance SQL Server via SQL Server Management Studio (SSMS).
- 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
-
Identifiez la base de données source pour la réplication.
-
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.
-
Vérifiez que la publication est créée dans Replication > Local Publications.
3. Configurer le Subscriber
-
Identifiez ou créez la base de données cible sur l’instance du Subscriber.
-
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.
-
Vérifiez que la souscription apparaît sous Replication > Local Subscriptions.
4. Vérification et Test
-
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.
-
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
-
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.
-
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.
-
Planification des sauvegardes :
- Sauvegardez les bases de données Publisher et Subscriber avant de configurer la réplication.
Résolution des Problèmes
-
Erreur "Cannot drop the table because it is used for replication" :
- Désactivez la réplication pour la table concernée avant toute suppression.
-
Latence élevée :
- Vérifiez la performance des agents.
- Réduisez la charge sur le Publisher ou optimisez les transactions.
-
Données manquantes :
- Assurez-vous que les tables ont une clé primaire.
- Vérifiez les filtres de réplication.