Database
 sql >> Base de données >  >> RDS >> Database

Comment créer une réplication transactionnelle

Dans cet article, je vais montrer comment créer une réplication transactionnelle.

La réplication transactionnelle a généré un instantané des objets de la base de données de publication et des données qu'il contient. Une fois l'instantané généré, toutes les modifications de données et de schéma qui se sont produites sur la base de données de l'éditeur sont transmises aux bases de données des abonnés. Dans la réplication transactionnelle, les modifications de données et de schémas sont presque en temps réel. Par conséquent, la réplication transactionnelle peut être utilisée pour décharger des rapports et peut parfois être utilisée comme site DR.

Lorsque nous créons une réplication transactionnelle, SQL Server crée les tâches SQL suivantes

  1. Tâche d'agent d'instantané : Le travail de l'agent d'instantané génère un instantané des objets de la base de données de publication. L'instantané est stocké soit à l'emplacement réseau, soit sur le disque
  2. Tâche de lecteur de journal : Log Reader Job surveille en permanence les publications. Il détecte les modifications de schéma et les requêtes d'insertion, de mise à jour et de suppression et les marque pour la réplication. Le lecteur de journal utilise "Sp_Replcmds ” pour appliquer les commandes marquées pour la réplication.

Configuration de la démo :

Pour cette démo, j'ai créé deux instances SQL Server sur le même serveur de base de données. Les noms et les détails de l'instance sont les suivants :

Lors de la configuration de la démo, je n'ai pas créé de distributeur, donc l'instance d'éditeur agira également en tant que distributeur. J'ai créé le "Client ” table dans la base de données AdventureWorks2014. Je vais répliquer les données de la table Customer. Par conséquent, il sera appelé un article par l'éditeur.

Configurer l'éditeur

Pour configurer l'éditeur, ouvrez SQL Server Management Studio, développez l'instance de base de données, développez Réplication nœud et cliquez avec le bouton droit sur Publication locale et sélectionnez Nouvelle publication .

L'assistant de nouvelle publication démarre. Dans la boîte de dialogue, un bref résumé de l'assistant est fourni. Vous pouvez ignorer l'apparition de cette boîte de dialogue en cochant la case Ne plus afficher cette page de démarrage case à cocher. Cliquez sur Suivant pour passer à la boîte de dialogue suivante.

Dans la boîte de dialogue suivante, sélectionnez la base de données qui agit en tant qu'éditeur. Dans cette démo, j'utilise AdventureWorks2014 base de données, sélectionnez donc AdventureWorks2014 dans la liste de la base de données et cliquez sur Suivant .

Dans la boîte de dialogue suivante, sélectionnez le type de publication dans la liste des types de publication, et leurs descriptions sont également fournies dans les Descriptions des types de publication zone de texte. Sélectionnez Publication transactionnelle et cliquez sur Suivant .

Dans la boîte de dialogue suivante, sélectionnez le type de publication dans la liste des types de publication, et leurs descriptions sont également fournies dans les Descriptions des types de publication zone de texte. Sélectionnez Publication transactionnelle et cliquez sur Suivant .

Si vous souhaitez filtrer les données du tableau, vous pouvez spécifier la condition dans la boîte de dialogue Filtrer les lignes du tableau. Pour ajouter le filtre, cliquez sur Ajouter bouton. Une autre boîte de dialogue Ajouter un filtre s'ouvre. Dans cette boîte de dialogue, vous pouvez spécifier l'instruction de filtre souhaitée dans l'Instruction de filtre zone de texte.

Pour cette démo, nous ne filtrons pas les données du client table, alors ignorez cette boîte de dialogue et cliquez sur Suivant .

Pour initialiser la réplication transactionnelle, nous devons générer le snapshot. Dans la boîte de dialogue Agent d'instantané, configurez l'intervalle de génération d'instantané. Vous pouvez générer immédiatement l'instantané ou vous pouvez programmer l'heure spécifique pour générer l'instantané de la base de données. Par défaut, l'instantané est généré toutes les heures, mais nous pouvons le modifier. Pour générer l'instantané dans un intervalle spécifique, cliquez sur Modifier. La boîte de dialogue Nouvelle planification de tâche s'ouvre. Configurez le calendrier souhaité et cliquez sur OK .

Dans cette démo, je vais générer l'instantané immédiatement, alors cochez la case Créer un instantané et conserver l'instantané disponible pour initialiser l'abonnement et cliquez sur Suivant .

Dans la boîte de dialogue suivante, configurez la sécurité de l'Agent SQL. Pour configurer la sécurité de l'agent, cliquez sur Paramètres de sécurité bouton. La sécurité de l'agent d'instantané » la boîte de dialogue s'ouvre. Dans la boîte de dialogue, indiquez le compte sous lequel l'abonné se connecte à l'éditeur. De plus, spécifiez les informations de compte sous lesquelles le travail de l'agent SQL Server sera exécuté. Pour cette démonstration, les travaux SQL Server s'exécutent sous le compte de service de l'Agent SQL Server. Sélectionnez donc Exécuter sous le compte de service de l'Agent SQL Server. option. Les abonnés seront connectés à l'éditeur à l'aide de la connexion SQL. Sélectionnez donc Utiliser la connexion SQL Server suivante option et spécifiez le login et le mot de passe SQL. Dans cette démo, connectez-vous en utilisant le "sa " connexion. Cliquez sur OK pour fermer la boîte de dialogue et cliquez sur Suivant .

Dans la boîte de dialogue suivante, vous pouvez choisir de créer une publication ou de générer des scripts pour créer la publication. Sélectionnez Générer un fichier de script pour créer la publication option pour générer les scripts des étapes de réplication. Nous allons créer la publication, alors sélectionnez Créer la publication et cliquez sur Suivant .

Dans la boîte de dialogue suivante, indiquez le nom de la publication, passez en revue le résumé des tâches à effectuer pour créer la réplication et cliquez sur Terminer pour créer la publication et fermer Nouvelle publication Assistant .

Comme je l'ai mentionné au début de l'article, lorsque nous créons une réplication transactionnelle, elle crée le travail d'agent de lecture du journal, le travail d'agent d'instantané et le travail de nettoyage pour les abonnements expirés.

Pour les afficher, développez SQL Server Agent , puis développez Emplois .

Une fois la publication configurée, configurez les abonnés.

Configurer l'abonné

Pour configurer l'abonné, connectez-vous d'abord à une autre instance SQL. Après vous être connecté à l'instance, développez Réplication et cliquez avec le bouton droit sur Abonnement local .

L'assistant de nouvel abonnement s'ouvre. Dans la boîte de dialogue, un bref résumé de l'assistant est fourni. Vous pouvez ignorer l'apparition de cet écran en cochant la case Ne plus afficher cette page de démarrage case à cocher. Cliquez sur Suivant pour passer à la boîte de dialogue suivante.

Dans la boîte de dialogue suivante, choisissez le serveur de publication. Cliquez sur Éditeur liste déroulante et cliquez sur Rechercher SQL Server Publisher . Une boîte de dialogue de connexion à l'éditeur s'ouvre. Dans le nom du serveur zone de texte, spécifiez le nom d'hôte du serveur de l'éditeur et cliquez sur Se connecter .

Une fois la connexion établie avec l'éditeur, Customer_Publication et AdventureWorks2014 seront affichés dans les Bases de données et publication zone de texte. Sélectionnez Customer_Publication et cliquez sur Suivant .

Dans la boîte de dialogue suivante, choisissez l'emplacement de l'agent de distribution. Pour cette démo, j'utiliserai Pull Subscription , sélectionnez donc Exécuter chaque agent sur son abonné et cliquez sur Suivant :

Dans la boîte de dialogue suivante, sélectionnez une base de données d'abonnement. J'ai créé une base de données nommée Customer_DB , qui agit comme une base de données d'abonnés. Dans la base de données des abonnements liste déroulante, sélectionnez Customer_DB base de données de la liste. Après avoir sélectionné la base de données d'abonnement, cliquez sur Suivant .

Dans la boîte de dialogue suivante, configurez la sécurité de l'agent de distribution. Pour configurer la sécurité, cliquez sur le bouton […]. La sécurité de l'agent de distribution boîte de dialogue s'ouvre. Dans la première section, spécifiez le compte de domaine sous lequel le processus de l'Agent de distribution s'exécutera. L'Agent de distribution s'exécutera sous le service SQL Server Agent, sélectionnez donc Exécuter sous le compte de service de l'agent SQL Server option.

Ici, je n'ai pas configuré le serveur de distribution, donc l'éditeur agit comme un distributeur. L'abonné se connectera à Publisher/Distributor à l'aide d'une connexion SQL. Pour connecter le distributeur, utilisez le "sa" login et mot de passe.

Cliquez sur OK pour fermer la boîte de dialogue. Dans la boîte de dialogue Sécurité de l'agent de distribution, cliquez sur Suivant .

Dans la boîte de dialogue suivante, configurez la planification de la synchronisation des abonnements. Vous pouvez choisir de l'exécuter en continu ou de configurer l'exécution planifiée. Sélectionnez Exécuter en continu dans le horaire de l'agent boîte déroulante. Cliquez sur Suivant .

Dans la boîte de dialogue suivante, choisissez d'initialiser l'abonnement immédiatement avec l'instantané des données de publication et du schéma ou après la première synchronisation. Nous allons initialiser l'abonnement immédiatement, alors choisissez Immédiatement à partir de Initialiser quand boîte déroulante. Cliquez sur Suivant .

Dans la boîte de dialogue suivante, vous pouvez choisir de créer un abonnement immédiatement ou de générer les scripts pour créer un abonnement. Sélectionnez Générer un fichier de script pour créer l'abonnement option pour générer les scripts des étapes de réplication. Nous allons créer une publication, alors sélectionnez Créer l'abonnement et cliquez sur Suivant .

Dans la boîte de dialogue suivante, une liste des tâches effectuées pour créer l'abonnement est donnée. Vous pouvez les examiner et cliquer sur Terminer .

Une fois l'abonnement créé, vous pouvez voir l'abonnement sous Abonnement local nœud.

Afficher l'état de la réplication

Vous pouvez utiliser Replication Monitor pour afficher l'état de la réplication. Pour ouvrir le moniteur de réplication, développez Réplication , puis développez Publications locales. Cliquez avec le bouton droit sur Customer_Publication et sélectionnez Lancer le moniteur de réplication.

Résumé :

Dans cet article, j'ai expliqué :

  1. Un résumé de haut niveau de la réplication transactionnelle.
  2. Configuration de la démo.
  3. Comment configurer la publication de la réplication.
  4. Comment configurer les abonnés de réplication.

Outils utiles :

dbForge Data Compare for SQL Server – puissant outil de comparaison SQL capable de travailler avec le Big Data.

dbForge Schema Compare for SQL Server – outil fiable qui vous fait gagner du temps et des efforts lors de la comparaison et de la synchronisation des bases de données sur SQL Server.