{"id":2334,"date":"2015-12-04T07:40:19","date_gmt":"2015-12-04T07:40:19","guid":{"rendered":"http:\/\/kedar.nitty-witty.com\/?p=2334"},"modified":"2024-01-27T17:29:19","modified_gmt":"2024-01-27T17:29:19","slug":"fixing-inconsistency-on-mysql-slave-of-galera-cluster","status":"publish","type":"post","link":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster","title":{"rendered":"Fixing inconsistency on MySQL Slave of Galera Cluster"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Checksum is a standard practice among DBAs to verify the data consistency across replicated nodes. In this post we&#8217;re going to review the syncing options for an inconsistent MySQL slave of Galera cluster node.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"http:\/\/kedar.nitty-witty.com\/wp-content\/uploads\/2015\/12\/PXC-slave-checksum.png\" alt=\"PXC-slave-checksum\" class=\"wp-image-82503\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Here we&#8217;re assuming a setup of regular replication to a MySQL instance from one of the Galera cluster nodes.<br><\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\"><br>In the usual MySQL replication setup, standard practice involves the usage of the pt-table-checksum tool to identify the discrepancies and usage of pt-table-sync to bring them in sync. The checksum tool, pt-table-checksum, can run across Galera cluster node to verify the data consistency and confirm if the MySQL slave is consistent with a chosen primary node.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What happens if this Galera cluster&#8217;s regular MySQL slave sees data inconsistency on it? Will pt-table-sync work there? The answer to this depends&#8230;<br>pt-table-sync when used with &#8211;sync-to-master causes it to take locks on master but Galera doesn&#8217;t like those lock attempts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You may ask, why locks on a master?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coz&#8217; pt-table-sync will treat the master as the source and the slave as the destination. It will lock the table (&#8211;lock=1) on master, apply changes on master which will eventually be replicated to slave and thus causing the sync.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Respective snippet of code from pt-table-sync script V.2.2.15:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\tlock_server(src =&gt; $src, dst =&gt; $dst, %args);\n\t...\n\t$exit_status |= sync_a_table(\n               src   =&gt; $src,\n               dst   =&gt; $dst,\n               where =&gt; 1,  # prevents --where from being used\n               diff  =&gt; $diff,\n               %args,\n            );\n\t ...\n         unlock_server(src =&gt; $src, dst =&gt; $dst, %args);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Again&#8230; coming back to our point, pt-table-sync wouldn&#8217;t work well on Galera with &#8211;sync-to-master. Let&#8217;s do an attempt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">PTDEBUG=1 .\/pt-table-sync --verbose --execute --replicate=pyth.checksum --sync-to-master --tables slave_repl.tmp h=localhost,u=root,p=$pw &gt; slave_repl.tmp.sql\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you run the above command (on slave) with debug you will note following error:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\t# TableSyncer:6114 4650 Committing DBI::db=HASH(0x177cf18)\n\tDeadlock found when trying to get lock; try restarting transaction at line 6115 while doing slave_repl.tmp on localhost\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(without PTDEBUG you won&#8217;t see much on slave except it will report nothing changed!)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Great, so why the error? Let&#8217;s again check the code snippet (pt-table-sync V.2.2.15):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\tsub lock_table {\n\t   my ( $self, $dbh, $where, $db_tbl, $mode ) = @_;\n\t   my $query = \"LOCK TABLES $db_tbl $mode\";\n\t   PTDEBUG &amp;&amp; _d($query);\n\t...\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As you see, it&#8217;s calling up for LOCK TABLES and Galera, which as we know, doesn&#8217;t support explicite locking because of the conflict with multi-master replication. That&#8217;s the reason for the error above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Okay, let continue&#8230; Upon executing pt-table-sync on slave, the &#8220;master&#8221;&#8216;s (Galera node&#8217;s) error-log will show the following error:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\t2015-08-27 14:45:07 6988 [Warning] WSREP: SQL statement was ineffective, THD: 17, buf: 1399\n\tQUERY: commit\n\t =&gt; Skipping replication\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We already have a <a href=\"https:\/\/bugs.launchpad.net\/percona-toolkit\/+bug\/1250450\" target=\"_blank\" rel=\"noopener\">bug report<\/a> in place and if it affects you, go ahead and mark it so.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So how would you fix this?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Easy Answer: Do a complete rebuild of slave from a fresh data backup of the cluster node.<br>Desync the cluster node, take the backup and restore it on a slave machine and setup replication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But let&#8217;s think about an alternate method other than a complete restore&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;fixing using pt-slave-restart?&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>But pt-table-sync is &#8220;not Galera Ready&#8221; as they say!!<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even then, pt-table-sync can help us understand the differences and that&#8217;s the long answer \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It can still work and prepare SQL for you using &#8211;print &#8211;verbose options.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">.\/pt-table-sync --verbose --print --replicate=pyth.checksum --sync-to-master --tables slave_repl.tmp h=localhost,u=root,p=$pw &gt; slave_repl.tmp.sql\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So, all you need to do is run the SQL against a slave to fix the discrepancies. You may choose to desync the node and run the pt-table-sync to generate differential sql. You&#8217;ll still need to confirm if slave got synced by re-running the pt-table-checksum and the discrepancies are resolved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our steps to resync a PX Cluster&#8217;s slave using pt-table-sync are as follows:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Note: It&#8217;s advisable to stop writes on cluster to fix the discrepancies on slave. &#8220;Why?&#8221; &#8220;Explained later.&#8221;)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Desync master node:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">set global wsrep_desync=ON;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Generate differential SQL:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">.\/pt-table-sync --verbose --print --replicate=pyth.checksum --sync-to-master --tables slave_repl.tmp h=localhost,u=root,p=$pw &gt; slave_repl.tmp.sql\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Review the sql generated and execute them on slave.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Once slave is synced, you can:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">set global wsrep_desync=OFF;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Finally rerun the pt-table-checksum to verify the discrepancies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That concludes our solution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Wait, but why desync?&#8221;<\/em><br>hmm&#8230; Well wsrep_desync is a dynamic variable which controls whether the node can participate in Flow Control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;hold on!! Flow control??&#8221;<\/em><br>Galera has synchronous replication where in node provides the feedback to rest in the group &#8211; fellas-I&#8217;m-late-hold-on OR okay-let&#8217;s-continue-the-job. So this communication feedback is flow control. (You should read <a href=\"http:\/\/galeracluster.com\/documentation-webpages\/nodestates.html\" target=\"_blank\" rel=\"nofollow noopener\">galera-documentation<\/a> &amp; <a href=\"https:\/\/www.percona.com\/blog\/2013\/05\/02\/galera-flow-control-in-percona-xtradb-cluster-for-mysql\/\" target=\"_blank\" rel=\"nofollow noopener\">Jay&#8217;s post<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When we will set <em>wsrep_desync=ON<\/em> on master, it will continue to replicate in and out the writesets as usual; but flow control will no longer take care of the desynced node. So, other nodes of the group won&#8217;t bother about the deynced node lagging behind. Thus by desyncing we&#8217;re making sure that our operations on one node are not affecting the whole cluster. This should answer why writes need to be stopped before starting to sync.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hope this helps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>PS:<\/b> This blog was published on Pythian Blog.<\/p>\n","protected":false},"excerpt":{"rendered":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync\n","protected":false},"author":1,"featured_media":2335,"comment_status":"open","ping_status":"closed","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,"footnotes":""},"categories":[864,8,377,865],"tags":[382,855,414,427,417,415,856,100,857,416],"class_list":["post-2334","post","type-post","status-publish","format-standard","has-post-thumbnail","category-mysql-galera-cluster","category-mysql","category-mysql-articles","category-percona-xtradb-cluster","tag-galera-cluster","tag-galera-replication-slave","tag-inconsistency","tag-mysql","tag-pt-table-sync","tag-pxc","tag-pxc-to-mysql-replication","tag-replication","tag-replication-issues","tag-slave"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kedar\"\/>\n\t<meta name=\"google-site-verification\" content=\"_Bu1h5r0PxIC0D2jBVdmYN45RTeG9ogcX85XLkbG1qA\" \/>\n\t<meta name=\"msvalidate.01\" content=\"116B62074CBCA1BA99B8CCE09CCF2FB8\" \/>\n\t<meta name=\"keywords\" content=\"inconsistency,galera cluster,pxc,mysql,slave,pt-table-sync,replication,galera replication slave,pxc to mysql replication,replication issues\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Change Is Inevitable | Kedar Vaijanapurkar&#039;s Blog for MySQL, technology and various subjects\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable\" \/>\n\t\t<meta property=\"og:description\" content=\"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2015-12-04T07:40:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-01-27T17:29:19+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable\" \/>\n\t\t<meta name=\"twitter:description\" content=\"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#article\",\"name\":\"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable\",\"headline\":\"Fixing inconsistency on MySQL Slave of Galera Cluster\",\"author\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/author\\\/admin#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/PXC-slave-checksum.png\",\"width\":740,\"height\":450},\"datePublished\":\"2015-12-04T07:40:19+00:00\",\"dateModified\":\"2024-01-27T17:29:19+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage\"},\"articleSection\":\"Galera Cluster, MySQL, MySQL-Articles, Percona Xtradb Cluster, Galera Cluster, Galera Replication Slave, inconsistency, MySQL, pt-table-sync, PXC, PXC to MySQL replication, replication, Replication issues, slave\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql#listItem\",\"name\":\"MySQL\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql#listItem\",\"position\":2,\"name\":\"MySQL\",\"item\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql\\\/mysql-articles#listItem\",\"name\":\"MySQL-Articles\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql\\\/mysql-articles#listItem\",\"position\":3,\"name\":\"MySQL-Articles\",\"item\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql\\\/mysql-articles\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#listItem\",\"name\":\"Fixing inconsistency on MySQL Slave of Galera Cluster\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql#listItem\",\"name\":\"MySQL\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#listItem\",\"position\":4,\"name\":\"Fixing inconsistency on MySQL Slave of Galera Cluster\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/category\\\/mysql\\\/mysql-articles#listItem\",\"name\":\"MySQL-Articles\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/#person\",\"name\":\"Kedar\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/be1f7021485c325d92cc4c5d961accb9c1af72b1b11281a790f7f4f066ef10d3?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kedar\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/author\\\/admin#author\",\"url\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/author\\\/admin\",\"name\":\"Kedar\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/be1f7021485c325d92cc4c5d961accb9c1af72b1b11281a790f7f4f066ef10d3?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kedar\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage\",\"url\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster\",\"name\":\"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable\",\"description\":\"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/author\\\/admin#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/author\\\/admin#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/PXC-slave-checksum.png\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster\\\/#mainImage\",\"width\":740,\"height\":450},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#mainImage\"},\"datePublished\":\"2015-12-04T07:40:19+00:00\",\"dateModified\":\"2024-01-27T17:29:19+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/\",\"name\":\"..::CHANGE is INEVITABLE::..\",\"description\":\"Kedar Vaijanapurkar's Blog for MySQL, technology and various subjects\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/kedar.nitty-witty.com\\\/blog\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable","description":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.","canonical_url":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster","robots":"max-image-preview:large","keywords":"inconsistency,galera cluster,pxc,mysql,slave,pt-table-sync,replication,galera replication slave,pxc to mysql replication,replication issues","webmasterTools":{"google-site-verification":"_Bu1h5r0PxIC0D2jBVdmYN45RTeG9ogcX85XLkbG1qA","msvalidate.01":"116B62074CBCA1BA99B8CCE09CCF2FB8","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#article","name":"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable","headline":"Fixing inconsistency on MySQL Slave of Galera Cluster","author":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/author\/admin#author"},"publisher":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/kedar.nitty-witty.com\/blog\/wp-content\/uploads\/2015\/12\/PXC-slave-checksum.png","width":740,"height":450},"datePublished":"2015-12-04T07:40:19+00:00","dateModified":"2024-01-27T17:29:19+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage"},"isPartOf":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage"},"articleSection":"Galera Cluster, MySQL, MySQL-Articles, Percona Xtradb Cluster, Galera Cluster, Galera Replication Slave, inconsistency, MySQL, pt-table-sync, PXC, PXC to MySQL replication, replication, Replication issues, slave"},{"@type":"BreadcrumbList","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/kedar.nitty-witty.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql#listItem","name":"MySQL"}},{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql#listItem","position":2,"name":"MySQL","item":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql","nextItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles#listItem","name":"MySQL-Articles"},"previousItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles#listItem","position":3,"name":"MySQL-Articles","item":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles","nextItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#listItem","name":"Fixing inconsistency on MySQL Slave of Galera Cluster"},"previousItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql#listItem","name":"MySQL"}},{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#listItem","position":4,"name":"Fixing inconsistency on MySQL Slave of Galera Cluster","previousItem":{"@type":"ListItem","@id":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles#listItem","name":"MySQL-Articles"}}]},{"@type":"Person","@id":"https:\/\/kedar.nitty-witty.com\/blog\/#person","name":"Kedar","image":{"@type":"ImageObject","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/be1f7021485c325d92cc4c5d961accb9c1af72b1b11281a790f7f4f066ef10d3?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kedar"}},{"@type":"Person","@id":"https:\/\/kedar.nitty-witty.com\/blog\/author\/admin#author","url":"https:\/\/kedar.nitty-witty.com\/blog\/author\/admin","name":"Kedar","image":{"@type":"ImageObject","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/be1f7021485c325d92cc4c5d961accb9c1af72b1b11281a790f7f4f066ef10d3?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kedar"}},{"@type":"WebPage","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#webpage","url":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster","name":"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable","description":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#breadcrumblist"},"author":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/author\/admin#author"},"creator":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/author\/admin#author"},"image":{"@type":"ImageObject","url":"https:\/\/kedar.nitty-witty.com\/blog\/wp-content\/uploads\/2015\/12\/PXC-slave-checksum.png","@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster\/#mainImage","width":740,"height":450},"primaryImageOfPage":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster#mainImage"},"datePublished":"2015-12-04T07:40:19+00:00","dateModified":"2024-01-27T17:29:19+00:00"},{"@type":"WebSite","@id":"https:\/\/kedar.nitty-witty.com\/blog\/#website","url":"https:\/\/kedar.nitty-witty.com\/blog\/","name":"..::CHANGE is INEVITABLE::..","description":"Kedar Vaijanapurkar's Blog for MySQL, technology and various subjects","inLanguage":"en-US","publisher":{"@id":"https:\/\/kedar.nitty-witty.com\/blog\/#person"}}]},"og:locale":"en_US","og:site_name":"Change Is Inevitable | Kedar Vaijanapurkar's Blog for MySQL, technology and various subjects","og:type":"article","og:title":"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable","og:description":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.","og:url":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster","article:published_time":"2015-12-04T07:40:19+00:00","article:modified_time":"2024-01-27T17:29:19+00:00","twitter:card":"summary","twitter:title":"Fixing inconsistency on MySQL Slave of Galera Cluster | Change Is Inevitable","twitter:description":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync."},"aioseo_meta_data":{"post_id":"2334","title":"Fixing inconsistency on MySQL Slave of Galera Cluster | #site_title","description":"This blog post explores the syncing options for an inconsistent MySQL slave of Galera cluster node using pt-table-sync.","keywords":[{"label":"inconsistency","value":"inconsistency"},{"label":"Galera Cluster","value":"Galera Cluster"},{"label":"PXC","value":"PXC"},{"label":"mysql","value":"mysql"},{"label":"slave","value":"slave"},{"label":"pt-table-sync","value":"pt-table-sync"},{"label":"replication","value":"replication"}],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-24 17:40:44","updated":"2025-08-16 19:16:14","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/kedar.nitty-witty.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\" title=\"MySQL\">MySQL<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles\" title=\"MySQL-Articles\">MySQL-Articles<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tFixing inconsistency on MySQL Slave of Galera Cluster\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/kedar.nitty-witty.com\/blog"},{"label":"MySQL","link":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql"},{"label":"MySQL-Articles","link":"https:\/\/kedar.nitty-witty.com\/blog\/category\/mysql\/mysql-articles"},{"label":"Fixing inconsistency on MySQL Slave of Galera Cluster","link":"https:\/\/kedar.nitty-witty.com\/blog\/fixing-inconsistency-on-mysql-slave-of-galera-cluster"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/2334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/comments?post=2334"}],"version-history":[{"count":4,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/2334\/revisions"}],"predecessor-version":[{"id":2871,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/2334\/revisions\/2871"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/media\/2335"}],"wp:attachment":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/media?parent=2334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/categories?post=2334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/tags?post=2334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}