{"id":2042,"date":"2018-08-22T05:31:56","date_gmt":"2018-08-22T05:31:56","guid":{"rendered":"http:\/\/dbtut.com\/?p=2042"},"modified":"2018-11-11T21:13:01","modified_gmt":"2018-11-11T21:13:01","slug":"best-practice-to-avoid-duplicate-entry-errors-on-the-slave","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/","title":{"rendered":"Best practice to avoid duplicate entry errors on the slave"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>In a Master\/Slave replication data consistency is a biggest concern and is very easy\u00a0 to break your replication with\u00a0 issues such as\u00a0duplicate keys, missing rows , accidental writes from application connected to the slave or even by a DBA connected to the slave \ud83d\ude41 &#8220;yes things happen&#8221; .<\/p>\n<p><strong>1. read_only<\/strong><\/p>\n<p><strong>When the\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.5\/en\/server-system-variables.html#sysvar_read_only\">read_only<\/a>\u00a0system variable is enabled, the server permits no client updates except from users who have the<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.5\/en\/privileges-provided.html#priv_super\">SUPER<\/a>\u00a0privilege. This variable is disabled by default.<\/strong><\/p>\n<p>It\u2019s a good practice then to set <code><span id=\"crayon-5b7ce98ce71e0717114837\" class=\"crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco\"><span class=\"crayon-pre crayon-code\"><span class=\"crayon-v\">read_only<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-cn\">1<\/span><\/span><\/span><\/code>\u00a0on slave servers to prevent any (accidental) writes.<\/p>\n<p>Unfortunately\u00a0users with the SUPER privilege can\u00a0override the setting and could\u00a0still run DML queries.<\/p>\n<p><strong>\u00a0 2. super_read_only<\/strong><\/p>\n<p>However, since <strong>Percona Server 5.6.21<\/strong> and <strong>MySQL 5.7.8<\/strong>, you can use the\u00a0<strong><span id=\"crayon-5b7ce98ce71e8334263148\" class=\"crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco\"><span class=\"crayon-pre crayon-code\"><span class=\"crayon-v\">super_read_only<\/span><\/span><\/span>\u00a0<\/strong>feature to\u00a0extend the\u00a0<strong><span id=\"crayon-5b7ce98ce71e9348452873\" class=\"crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco\"><span class=\"crayon-pre crayon-code\"><span class=\"crayon-v\">read_only<\/span><\/span><\/span>\u00a0<\/strong> option and\u00a0apply it to users with SUPER privileges.\u00a0If the\u00a0 \u00a0<a class=\"link\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variables.html#sysvar_super_read_only\"><code class=\"literal\">super_read_only=1<\/code><\/a>\u00a0the server prohibits client updates even from users who have\u00a0<a class=\"link\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/privileges-provided.html#priv_super\"><code class=\"literal\">SUPER<\/code><\/a>.<\/p>\n<p><strong>3. temporary use of\u00a0slave-skip-errors<\/strong><\/p>\n<p><span class=\"system\">With slave-skip-errors<\/span>\u00a0you can make the replication slave ignore certain error codes (you can find the list of MySQL error codes here:\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/error-messages-server.html\" target=\"_blank\" rel=\"noopener\">Server Error Codes and Messages<\/a>)<\/p>\n<p>Example : the purpose of the example below is to temporary skip error<\/p>\n<ul>\n<li>1062 :\u00a0Duplicate entry &#8216;%s&#8217; for key %d<\/li>\n<li>1054 :\u00a0Unknown column &#8216;%s&#8217; in &#8216;%s&#8217;<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true \">[mysqld]\r\nslave-skip-errors=1062,1054<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Caution<\/strong> :\u00a0Do not use this option unless you fully understand why you are getting errors. If there are no bugs in your replication setup and client programs, and no bugs in MySQL itself, an error that stops replication should never occur. Indiscriminate use of this option results in slaves becoming hopelessly out of sync with the master, with you having no idea why this has occurred.<\/p>\n<p>&nbsp;<\/p>\n<p>Here are a couple bugs to consider on Percona Server 5.6:<\/p>\n<ul>\n<li>set \u2013read_only on when \u2013super_read_only is used as a command line option<br \/>\n<a href=\"https:\/\/bugs.launchpad.net\/percona-server\/+bug\/1389935\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/bugs.launchpad.net\/percona-server\/+bug\/1389935<\/a><br \/>\nFixed on Percona Server 5.6.26-74.0<\/li>\n<li>MySQL aborts\u00a0when you enable super_read_only with read_only<br \/>\n<a href=\"https:\/\/bugs.launchpad.net\/percona-xtradb-cluster\/+bug\/1483956\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/bugs.launchpad.net\/percona-xtradb-cluster\/+bug\/1483956<\/a><br \/>\nFixed on Percona Server 5.6.26-74.0<\/li>\n<li>super_read_only mode breaks replication with some queries<br \/>\n<a href=\"https:\/\/bugs.launchpad.net\/percona-server\/+bug\/1441259\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/bugs.launchpad.net\/percona-server\/+bug\/1441259<\/a><br \/>\nFixed on Percona Server 5.6.28-76.1<\/li>\n<\/ul>\n<p>For more information, please check following links:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.percona.com\/doc\/percona-server\/5.6\/management\/super_read_only.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.percona.com\/doc\/percona-server\/5.6\/management\/super_read_only.html<\/a><\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variables.html#sysvar_super_read_only\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/server-system-variables.html#sysvar_super_read_only<\/a><\/li>\n<\/ul>\n\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_2042\" class=\"pvc_stats all  \" data-element-id=\"2042\" 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>&nbsp; In a Master\/Slave replication data consistency is a biggest concern and is very easy\u00a0 to break your replication with\u00a0 issues such as\u00a0duplicate keys, missing rows , accidental writes from application connected to the slave or even by a DBA connected to the slave \ud83d\ude41 &#8220;yes things happen&#8221; . 1. read_only When the\u00a0read_only\u00a0system variable is &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_2042\" class=\"pvc_stats all  \" data-element-id=\"2042\" 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":4,"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":[7],"tags":[1421,1420,1423,1422],"class_list":["post-2042","post","type-post","status-publish","format-standard","","category-mysql","tag-read_only","tag-slave-consistency","tag-slave-skip-errors","tag-super_read_only"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Best practice to avoid duplicate entry errors on the slave - Database Tutorials<\/title>\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\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Best practice to avoid duplicate entry errors on the slave - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"&nbsp; In a Master\/Slave replication data consistency is a biggest concern and is very easy\u00a0 to break your replication with\u00a0 issues such as\u00a0duplicate keys, missing rows , accidental writes from application connected to the slave or even by a DBA connected to the slave \ud83d\ude41 &#8220;yes things happen&#8221; . 1. read_only When the\u00a0read_only\u00a0system variable is &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-22T05:31:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-11-11T21:13:01+00:00\" \/>\n<meta name=\"author\" content=\"Mikael HOUNDEGNON\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@HOUNDEGNON_MIKE\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mikael HOUNDEGNON\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 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\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\"},\"author\":{\"name\":\"Mikael HOUNDEGNON\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/86e2eaec293d22fa7a83c539631e106f\"},\"headline\":\"Best practice to avoid duplicate entry errors on the slave\",\"datePublished\":\"2018-08-22T05:31:56+00:00\",\"dateModified\":\"2018-11-11T21:13:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\"},\"wordCount\":399,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"keywords\":[\"read_only\",\"Slave Consistency\",\"slave-skip-errors\",\"super_read_only\"],\"articleSection\":[\"MySQL-MariaDB\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\",\"name\":\"Best practice to avoid duplicate entry errors on the slave - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"datePublished\":\"2018-08-22T05:31:56+00:00\",\"dateModified\":\"2018-11-11T21:13:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Best practice to avoid duplicate entry errors on the slave\"}]},{\"@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\/86e2eaec293d22fa7a83c539631e106f\",\"name\":\"Mikael HOUNDEGNON\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a7eeb4be963109ed74e93e6afeaead434866af33be2b30acb0a38a42d30cadb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a7eeb4be963109ed74e93e6afeaead434866af33be2b30acb0a38a42d30cadb6?s=96&d=mm&r=g\",\"caption\":\"Mikael HOUNDEGNON\"},\"description\":\"My name is Mikael HOUNDEGNON. I am an experienced MySQL DBA\/Developer based in the greater Chicago area. You can find out more about me here. I blog here mostly about things I don\u2019t want to forget ? most likely, MySQL Tips. My specialties : MySQL Replication (Master Slave, MultiMaster, Fail over, etc) MySQL Backups MySQL Query Optimization MySQL Performance Tuning MySQL Stored Procedures Storage Engine Tuning Do you have an interesting project idea? Or you just want to chat? Get in touch!\",\"sameAs\":[\"https:\/\/mikaelhoundegnon.wordpress.com\/\",\"https:\/\/x.com\/@HOUNDEGNON_MIKE\"],\"url\":\"https:\/\/dbtut.com\/index.php\/author\/mikaelhoundegnon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Best practice to avoid duplicate entry errors on the slave - Database Tutorials","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\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/","og_locale":"en_US","og_type":"article","og_title":"Best practice to avoid duplicate entry errors on the slave - Database Tutorials","og_description":"&nbsp; In a Master\/Slave replication data consistency is a biggest concern and is very easy\u00a0 to break your replication with\u00a0 issues such as\u00a0duplicate keys, missing rows , accidental writes from application connected to the slave or even by a DBA connected to the slave \ud83d\ude41 &#8220;yes things happen&#8221; . 1. read_only When the\u00a0read_only\u00a0system variable is &hellip;","og_url":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/","og_site_name":"Database Tutorials","article_published_time":"2018-08-22T05:31:56+00:00","article_modified_time":"2018-11-11T21:13:01+00:00","author":"Mikael HOUNDEGNON","twitter_card":"summary_large_image","twitter_creator":"@HOUNDEGNON_MIKE","twitter_misc":{"Written by":"Mikael HOUNDEGNON","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/"},"author":{"name":"Mikael HOUNDEGNON","@id":"https:\/\/dbtut.com\/#\/schema\/person\/86e2eaec293d22fa7a83c539631e106f"},"headline":"Best practice to avoid duplicate entry errors on the slave","datePublished":"2018-08-22T05:31:56+00:00","dateModified":"2018-11-11T21:13:01+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/"},"wordCount":399,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"keywords":["read_only","Slave Consistency","slave-skip-errors","super_read_only"],"articleSection":["MySQL-MariaDB"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/","url":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/","name":"Best practice to avoid duplicate entry errors on the slave - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"datePublished":"2018-08-22T05:31:56+00:00","dateModified":"2018-11-11T21:13:01+00:00","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/22\/best-practice-to-avoid-duplicate-entry-errors-on-the-slave\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"Best practice to avoid duplicate entry errors on the slave"}]},{"@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\/86e2eaec293d22fa7a83c539631e106f","name":"Mikael HOUNDEGNON","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a7eeb4be963109ed74e93e6afeaead434866af33be2b30acb0a38a42d30cadb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a7eeb4be963109ed74e93e6afeaead434866af33be2b30acb0a38a42d30cadb6?s=96&d=mm&r=g","caption":"Mikael HOUNDEGNON"},"description":"My name is Mikael HOUNDEGNON. I am an experienced MySQL DBA\/Developer based in the greater Chicago area. You can find out more about me here. I blog here mostly about things I don\u2019t want to forget ? most likely, MySQL Tips. My specialties : MySQL Replication (Master Slave, MultiMaster, Fail over, etc) MySQL Backups MySQL Query Optimization MySQL Performance Tuning MySQL Stored Procedures Storage Engine Tuning Do you have an interesting project idea? Or you just want to chat? Get in touch!","sameAs":["https:\/\/mikaelhoundegnon.wordpress.com\/","https:\/\/x.com\/@HOUNDEGNON_MIKE"],"url":"https:\/\/dbtut.com\/index.php\/author\/mikaelhoundegnon\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/2042","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=2042"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/2042\/revisions"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=2042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=2042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=2042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}