{"id":4668,"date":"2018-11-06T06:40:10","date_gmt":"2018-11-06T06:40:10","guid":{"rendered":"https:\/\/dbtut.com\/?p=4668"},"modified":"2018-11-06T06:40:10","modified_gmt":"2018-11-06T06:40:10","slug":"peer-to-peer-transactional-replication-on-sql-server","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/","title":{"rendered":"Peer to Peer Transactional Replication On SQL Server"},"content":{"rendered":"<p>It uses the technology of Transactional Replication. As a difference, every subscriber is also publisher. You can read my article &#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/11\/02\/transactional-replication-on-sql-server\/\" target=\"_blank\" rel=\"noopener\">Transactional Replication On SQL Server<\/a>&#8220;.<\/p>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s try to understand the logic by installing step by step.<\/p>\n<p>&nbsp;<\/p>\n<p>We will do a very similar installation with the Transactional Replication installation. One of the most important differences in installation is that it should be a distributer in every subscriber.<\/p>\n<p>&nbsp;<\/p>\n<p>In the article &#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/11\/02\/transactional-replication-on-sql-server\/\" target=\"_blank\" rel=\"noopener\">Transactional Replication On SQL Server<\/a>&#8220;, we have configured the Distributor on the first server. We don&#8217;t need to do the same thing again. You can do this by following the steps in the article &#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/11\/02\/transactional-replication-on-sql-server\/\" target=\"_blank\" rel=\"noopener\">Transactional Replication On SQL Server<\/a>&#8220;.<\/p>\n<p>&nbsp;<\/p>\n<p>On the second server, let&#8217;s configure the distributor as follows. If you did not configure the distributor on the first server, you can do this on both servers, as described below.<\/p>\n<p>&nbsp;<\/p>\n<p>First, in the AdventureWorks2014 database, let&#8217;s create a table that we will replicate with the help of the following script.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">USE [AdventureWorks2014]\r\nGO\r\nCREATE TABLE [dbo].[PeerToPeer](\r\n[ID] [int] IDENTITY(1,1) NOT NULL,\r\n[Ad] [varchar](200) NULL,\r\n\u00a0CONSTRAINT [PK_PeerToPeer] PRIMARY KEY CLUSTERED\r\n(\r\n[ID] ASC\r\n)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, \r\nALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]\r\n) ON [PRIMARY]\r\nGO<\/pre>\n<p>&nbsp;<\/p>\n<p>Click on Configure Distribution as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\" width=\"328\" height=\"96\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, select Do not show this page again and\u00a0 click Next.<\/p>\n<p>On the next screen, we create the Distributor by selecting the following option. This way the distribution database will be created. We&#8217;re moving forward.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/704.png\" width=\"497\" height=\"443\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen It wants a share to hold snapshot files. I explained how to create a shared folder in the article named &#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/10\/13\/how-to-define-a-share-and-map-this-share-to-windows\/\" target=\"_blank\" rel=\"noopener\">How To Define a Share and Map This Share To Windows<\/a>&#8220;.<\/p>\n<p>&nbsp;<\/p>\n<p>On the shared folder, you must authorize the SQL Server service account and the SQL Server Agent service account that is used by two instances, and the user you are installing.<\/p>\n<p>&nbsp;<\/p>\n<p>I created a folder named Replication on Sunucu1 and gave the necessary privileges and I wrote the share address as Snapshot folder. We&#8217;re moving forward by clicking Next.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/842.png\" width=\"483\" height=\"442\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, we write the path information for the data and log files of the distribution database as follows and we click next.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/669.png\" width=\"500\" height=\"454\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen we specify Publisher that this distribution database will use. We will install Publisher and distributor on the same instance, so we select the same instance and click Next.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/672.png\" width=\"492\" height=\"441\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, click Next and Finish to complete the distributor configuration when Configure Distribution is selected.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/595.png\" width=\"493\" height=\"444\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>After the installation is complete, you should see the distribution database in the system databases as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/937-1.png\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>After our Distributor configuration is complete, we click New Publication on the same server (because we&#8217;ve created Publisher and Distributor on the same server) by right-clicking Local Publications.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/117.png\" width=\"372\" height=\"101\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>We select the database that we will replicate as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/430.png\" width=\"439\" height=\"142\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Select Peer-to-Peer Publication as follows and click Next.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/567-1.png\" width=\"489\" height=\"443\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Since we are going to transfer only the PeerTpPeer table, we select the following and click next.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/135.png\" width=\"484\" height=\"440\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>The next screen aks the user accounts that the Log Reader Agent will use. Click Security Settings to set related users.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/695-1.png\" width=\"477\" height=\"426\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>In my own test environment, two sql server instances and two sql server agent instances use the same windows sql server service account and have the necessary privileges. I have previously authorized this user on the snapshot share. So I&#8217;m going to set it as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/815.png\" width=\"443\" height=\"373\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">The minimum rights of the user you set for the Log Reader Agent:<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\u2022 Must be db_owner in the Distribution database.<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\u2022 Must be db_owner in publication database.<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">Microsoft recommends that you use a Windows Account for this account.<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">Then we are proceeding by Clicking Next while &#8220;Create the publication&#8221; is selected.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/276.png\" width=\"476\" height=\"427\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, we give Publication the name of PeerToPeerPublication, and we click finish to complete the publication installation.<\/p>\n<p>Unlike Transactional Replication, we did not configure Snapshot Agent and did not filter.<\/p>\n<p>Filtering is not supported in Peer To Peer Transactional Replication.<\/p>\n<p>We transfer the database with backup and restore method to the seconds server.<\/p>\n<p>You must delete the tables that you would not replicate after the Restore from the 2nd server.<\/p>\n<p>We installed Publication. Then we performed the restore operation.<\/p>\n<p>Sometimes you may want to delete the database in subscriber and reconfigure replication. In such a case, the error occurs as follows.<\/p>\n<p>Cannot drop the database X because it is being used for replication.<\/p>\n<p>If you get a new backup from the first server and restore it by overwrite, the problem will be solved.<\/p>\n<p>Right-click on the publication as follows and select &#8220;Configure Peer-To-Peer Topology&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/413.png\" width=\"486\" height=\"141\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>We select the first instance as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/809.png\" width=\"459\" height=\"420\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Click Add Node as below.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/737.png\" width=\"467\" height=\"380\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>We make the following selections on the below screen. We chose Push Subcriptions. You can find details about Pull and Push Subscriptions in our article &#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/10\/03\/sql-server-replication-types\/\" target=\"_blank\" rel=\"noopener\">SQL Server Replication Types<\/a>&#8220;. We&#8217;re moving forward.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/189.png\" width=\"463\" height=\"424\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>The next screen asks the Log Reader Agent&#8217;s user accounts in the second instance.<\/p>\n<p>The second instance is normally subscriber, but in Peer-To-Peer Replication every subscriber is also a publisher, so we&#8217;re filling this information.<\/p>\n<p>The minimum rights of the user account we enter here should be as follows. In the following screen, we click on &#8220;&#8230;&#8230;&#8221;<\/p>\n<p style=\"margin: 0in; font-family: Calibri; font-size: 11.0pt;\">\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\u2022 Must be db_owner in the Distribution database.<\/p>\n<p style=\"margin: 0in; font-family: Georgia; font-size: 12.0pt;\">\u2022 Must be db_owner in publication database.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/668-1.png\" width=\"602\" height=\"387\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>We use the same windows account on both instances and we have given the necessary privileges to this account before. So we are making a choice as follows.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/994.png\" width=\"606\" height=\"513\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>After clicking OK, a screen will appear as below. To use the same security setting for all replicated nodes, we select &#8220;Use the first peer&#8217;s security settings for all others peers&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/675.png\" width=\"631\" height=\"405\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, we need to make the necessary security settings for the subscriptions on both instances. By clicking on &#8220;&#8230;.&#8221; on the right side as described above, we select &#8220;Run under the SQL Server agent service account ..&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/336.png\" width=\"628\" height=\"405\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>After making the necessary selections, a screen should appear as below.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/467.png\" width=\"639\" height=\"421\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>On the next screen, I select the part that starts with &#8220;I restore a backup of the original publication database&#8221;, and I find the database&#8217;s backup by clicking Browse.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/809-1.png\" width=\"647\" height=\"418\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Installation has completed.<\/p>\n<p>When you add a record to the table on the first server, you will be able to see it on the second server.<\/p>\n<p>When you update this record on the second server, you will notice that the changes are reflected in the table on the first server.<\/p>\n<p>If the first server and the second server try to update the same row at the same time, there will be a conflict.<\/p>\n<p>You can see the conflicts as follows.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/378.png\" width=\"531\" height=\"294\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>You can use two-phase commit to avoid conflict, but the performance will not be very good.<\/p>\n<p>There are several ways to solve Conflicts. The distribution agent will stop when Conflict occurs.<\/p>\n<p>&nbsp;<\/p>\n<p>You can restore the backup of your database to the node conflicted node.<\/p>\n<p>Or,<\/p>\n<p>You can re-enable Distrubition Agent again. In this way Distribution Agent may be attempted to implement changes to the conflicted node.<\/p>\n<p>&nbsp;<\/p>\n<p>Merge replication is more successful in detecting and correcting Conflicts. You may want to read my article &#8220;Merge Replication On SQL Server&#8221;.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_4668\" class=\"pvc_stats all  \" data-element-id=\"4668\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It uses the technology of Transactional Replication. As a difference, every subscriber is also publisher. You can read my article &#8220;Transactional Replication On SQL Server&#8220;. &nbsp; Let&#8217;s try to understand the logic by installing step by step. &nbsp; We will do a very similar installation with the Transactional Replication installation. One of the most important &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_4668\" class=\"pvc_stats all  \" data-element-id=\"4668\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-4668","post","type-post","status-publish","format-standard","","category-mssql"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Peer to Peer Transactional Replication On SQL Server - Database Tutorials<\/title>\n<meta name=\"description\" content=\"Peer to Peer Transactional Replication On SQL Server\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Peer to Peer Transactional Replication On SQL Server - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"Peer to Peer Transactional Replication On SQL Server\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-06T06:40:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\" \/>\n<meta name=\"author\" content=\"dbtut\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dbtut\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\"},\"author\":{\"name\":\"dbtut\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408\"},\"headline\":\"Peer to Peer Transactional Replication On SQL Server\",\"datePublished\":\"2018-11-06T06:40:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\"},\"wordCount\":1206,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\",\"articleSection\":[\"MSSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\",\"name\":\"Peer to Peer Transactional Replication On SQL Server - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\",\"datePublished\":\"2018-11-06T06:40:10+00:00\",\"description\":\"Peer to Peer Transactional Replication On SQL Server\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png\",\"width\":379,\"height\":111},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Peer to Peer Transactional Replication On SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbtut.com\/#website\",\"url\":\"https:\/\/dbtut.com\/\",\"name\":\"Database Tutorials\",\"description\":\"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux\",\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbtut.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dbtut.com\/#organization\",\"name\":\"dbtut\",\"url\":\"https:\/\/dbtut.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"width\":223,\"height\":36,\"caption\":\"dbtut\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408\",\"name\":\"dbtut\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g\",\"caption\":\"dbtut\"},\"description\":\"We are a team with over 10 years of database management and BI experience. Our Expertises: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.\",\"sameAs\":[\"http:\/\/NurullahCAKIR\"],\"url\":\"https:\/\/dbtut.com\/index.php\/author\/dbtut\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Peer to Peer Transactional Replication On SQL Server - Database Tutorials","description":"Peer to Peer Transactional Replication On SQL Server","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Peer to Peer Transactional Replication On SQL Server - Database Tutorials","og_description":"Peer to Peer Transactional Replication On SQL Server","og_url":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/","og_site_name":"Database Tutorials","article_published_time":"2018-11-06T06:40:10+00:00","og_image":[{"url":"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png","type":"","width":"","height":""}],"author":"dbtut","twitter_card":"summary_large_image","twitter_misc":{"Written by":"dbtut","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/"},"author":{"name":"dbtut","@id":"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408"},"headline":"Peer to Peer Transactional Replication On SQL Server","datePublished":"2018-11-06T06:40:10+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/"},"wordCount":1206,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png","articleSection":["MSSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/","url":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/","name":"Peer to Peer Transactional Replication On SQL Server - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png","datePublished":"2018-11-06T06:40:10+00:00","description":"Peer to Peer Transactional Replication On SQL Server","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#primaryimage","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2018\/11\/465.png","width":379,"height":111},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2018\/11\/06\/peer-to-peer-transactional-replication-on-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"Peer to Peer Transactional Replication On SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/dbtut.com\/#website","url":"https:\/\/dbtut.com\/","name":"Database Tutorials","description":"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux","publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbtut.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dbtut.com\/#organization","name":"dbtut","url":"https:\/\/dbtut.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","width":223,"height":36,"caption":"dbtut"},"image":{"@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408","name":"dbtut","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g","caption":"dbtut"},"description":"We are a team with over 10 years of database management and BI experience. Our Expertises: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.","sameAs":["http:\/\/NurullahCAKIR"],"url":"https:\/\/dbtut.com\/index.php\/author\/dbtut\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/4668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=4668"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/4668\/revisions"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=4668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=4668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=4668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}