{"id":9478,"date":"2017-04-25T07:41:02","date_gmt":"2017-04-25T05:41:02","guid":{"rendered":"https:\/\/thecamels.org\/odzyskiwanie-skasowanych-danych-mysql-pomoca-binlogow\/"},"modified":"2021-01-12T07:32:25","modified_gmt":"2021-01-12T06:32:25","slug":"recovery-of-deleted-data-from-mysql-using-binlogs","status":"publish","type":"post","link":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/","title":{"rendered":"Recovery of deleted data from MySQL using binlogs"},"content":{"rendered":"\n<p>What to do when we accidentally run a bad query based on MySQL? Is it possible to recover deleted data from MySQL? If we use binlogs, which we use for example in <a href=\"https:\/\/thecamels.org\/en\/what-is-mysql-replication\/\"><span>MySQL replication<\/span><\/a>, we can do something about it.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>To recover data from MySQL we will use bingoes running in ROW mode. If we have deleted a record and we didn&#8217;t have it enabled, it will be impossible to recover the lost data. In <code>\/etc\/my.cnf<\/code>, the following parameters should be set:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>binlog-format = ROW\nlog-bin = \/var\/log\/mysql\/bin-log<\/code><\/pre>\n\n\n\n<p>We will create a test database and complete it with records.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE `undelete`;\nUSE `undelete`;\n\nCREATE TABLE `names` (\n\t`id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n\t`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n\t`name` varchar(20) DEFAULT NULL,\n\tPRIMARY KEY (`id`)\n) ENGINE=InnoDB;\n\nINSERT INTO `names` (name) VALUES (\"Kamil\"), (\"Michal\"), (\"Adam\"), (\"Gerard\"), (\"Bartek\");<\/code><\/pre>\n\n\n\n<p>We have created an undelete database with a names table, which contains five records. To be sure, let&#8217;s check its contents:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; select * from names;\n+----+---------------------+--------+\n| id | date                | name   |\n+----+---------------------+--------+\n|  1 | 2015-02-14 09:12:42 | Kamil  |\n|  2 | 2015-02-14 09:12:42 | Michal |\n|  3 | 2015-02-14 09:12:42 | Adam   |\n|  4 | 2015-02-14 09:12:42 | Gerard |\n|  5 | 2015-02-14 09:12:42 | Bartek |\n+----+---------------------+--------+\n5 rows in set (0.00 sec)<\/code><\/pre>\n\n\n\n<p>We will delete random records from the database and try to recover them.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; DELETE FROM `names` WHERE id &gt;3;\nQuery OK, 2 rows affected (0.00 sec)\n\nmysql&gt; select * from names;\n+----+---------------------+--------+\n| id | date                | name   |\n+----+---------------------+--------+\n|  1 | 2015-02-14 09:12:42 | Kamil  |\n|  2 | 2015-02-14 09:12:42 | Michal |\n|  3 | 2015-02-14 09:12:42 | Adam   |\n+----+---------------------+--------+\n3 rows in set (0.00 sec)<\/code><\/pre>\n\n\n\n<p>As you can see above, we managed to delete two records. This information should be saved in the bingo from which we will retrieve the data. In our case it is a bin-log.000001 file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; show binlog events in 'bin-log.000001';\n+----------------+-----+-------------+-----------+-------------+---------------------------------------+\n| Log_name       | Pos | Event_type  | Server_id | End_log_pos | Info                                  |\n+----------------+-----+-------------+-----------+-------------+---------------------------------------+\n| bin-log.000001 |   4 | Format_desc |         1 |         120 | Server ver: 5.6.22-log, Binlog ver: 4 |\n| bin-log.000001 | 120 | Query       |         1 |         196 | BEGIN                                 |\n| bin-log.000001 | 196 | Table_map   |         1 |         253 | table_id: 73 (undelete.names)         |\n| bin-log.000001 | 253 | Delete_rows |         1 |         320 | table_id: 73 flags: STMT_END_F        |\n| bin-log.000001 | 320 | Xid         |         1 |         351 | COMMIT \/* xid=78 *\/                   |\n+----------------+-----+-------------+-----------+-------------+---------------------------------------+<\/code><\/pre>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/#recovery-with-mysqlbinlog\" >Recovery with mysqlbinlog<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/#recovery-with-myundelete\" >Recovery with MyUndelete<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"recovery-with-mysqlbinlog\"><\/span>Recovery with mysqlbinlog<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Data recovery operation can be performed manually using the mysqlbinlog command. It allows us to suspect the data stored in binary logs.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqlbinlog -v --base64-output=DECODE-ROWS --start-position=196 \/var\/log\/mysql\/bin-log.000001\n\/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*\/;\n\/*!40019 SET @@session.max_insert_delayed_threads=0*\/;\n\/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*\/;\nDELIMITER \/*!*\/;\n# at 196\n#150215  9:36:32 server id 1  end_log_pos 253 CRC32 0x6bedb0e7 \tTable_map: `undelete`.`names` mapped to number 73\n# at 253\n#150215  9:36:32 server id 1  end_log_pos 320 CRC32 0x1bc278f9 \tDelete_rows: table id 73 flags: STMT_END_F\n### DELETE FROM `undelete`.`names`\n### WHERE\n###   @1=4\n###   @2=1423992931\n###   @3='Gerard'\n### DELETE FROM `undelete`.`names`\n### WHERE\n###   @1=5\n###   @2=1423992931\n###   @3='Bartek'\n# at 320\n#150215  9:36:32 server id 1  end_log_pos 351 CRC32 0xee833dd0 \tXid = 78\nCOMMIT\/*!*\/;\nDELIMITER ;\n# End of log file\nROLLBACK \/* added by mysqlbinlog *\/;\n\/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*\/;\n\/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*\/;<\/code><\/pre>\n\n\n\n<p>If there is not much data, we can move them to the database manually. In case of a large amount, we can try to use a script such as <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/lefred\/MyUndelete\"><span>MyUndelete<\/span><\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"recovery-with-myundelete\"><\/span>Recovery with MyUndelete<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We download the script from GitHub using the <code>git clone https:\/\/github.com\/lefred\/MyUndelete.git<\/code>. We also need to complete the file vim ~\/.my.cnf, with data for logging into the database.<\/p>\n\n\n\n<p>In our case, the deletion of data took place between positions in binog 120 and 351. Therefore, we issue an appropriate command in the hope that the data will be recovered:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/MyUndelete.py -b \/var\/log\/mysql\/bin-log.000001 -s 120 -e 351\n\n*** WARNING *** USE WITH CARE ****\n\nBinlog file is  \/var\/log\/mysql\/bin-log.000001\nStart Position file is  120\nEnd Postision file is  351\nEvent type (' ') is a delete v2\nReady to revert the statement ? &#91;y\/n]\ny\nDone... I hope it worked ;)<\/code><\/pre>\n\n\n\n<p>We can now check the results in the database. As you can see below, the data has been restored.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; use undelete;\nDatabase changed\nmysql&gt; select * from names;\n+----+---------------------+--------+\n| id | date                | name   |\n+----+---------------------+--------+\n|  1 | 2015-02-15 09:35:31 | Kamil  |\n|  2 | 2015-02-15 09:35:31 | Michal |\n|  3 | 2015-02-15 09:35:31 | Adam   |\n|  4 | 2015-02-15 09:35:31 | Gerard |\n|  5 | 2015-02-15 09:35:31 | Bartek |\n+----+---------------------+--------+\n5 rows in set (0.00 sec)<\/code><\/pre>\n\n\n\n<p>This script also allows to undo data in case of execution based on erroneous INSERT and UPDATE commands.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What to do when we accidentally run a bad query based on MySQL? Is it possible to recover deleted data from MySQL? If we use binlogs, which we use for example in MySQL replication, we can do something about it.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[150],"tags":[699,707],"class_list":["post-9478","post","type-post","status-publish","format-standard","hentry","category-blog","tag-server-administration","tag-servers"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Recovery of deleted data from MySQL using binlogs - Thecamels.org<\/title>\n<meta name=\"description\" content=\"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recovery of deleted data from MySQL using binlogs - Thecamels.org\" \/>\n<meta property=\"og:description\" content=\"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/?utm_source=dark&amp;utm_medium=social&amp;utm_campaign=open-graph\" \/>\n<meta property=\"og:site_name\" content=\"Thecamels.org\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/thecamels.org\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-25T05:41:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-12T06:32:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecamels.org\/wp-content\/uploads\/2017\/04\/15.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kamil Porembi\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/thecamels.org\/wp-content\/uploads\/2017\/04\/15.png\" \/>\n<meta name=\"twitter:creator\" content=\"@thecamelsorg\" \/>\n<meta name=\"twitter:site\" content=\"@thecamelsorg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil Porembi\u0144ski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/\"},\"author\":{\"name\":\"Kamil Porembi\u0144ski\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#\\\/schema\\\/person\\\/b7bd2aec5f506a68323eb40c86d38a32\"},\"headline\":\"Recovery of deleted data from MySQL using binlogs\",\"datePublished\":\"2017-04-25T05:41:02+00:00\",\"dateModified\":\"2021-01-12T06:32:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/\"},\"wordCount\":317,\"publisher\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#organization\"},\"keywords\":[\"server administration\",\"servers\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/\",\"url\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/\",\"name\":\"Recovery of deleted data from MySQL using binlogs - Thecamels.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#website\"},\"datePublished\":\"2017-04-25T05:41:02+00:00\",\"dateModified\":\"2021-01-12T06:32:25+00:00\",\"description\":\"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/recovery-of-deleted-data-from-mysql-using-binlogs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"[HOME]\",\"item\":\"https:\\\/\\\/thecamels.org\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/thecamels.org\\\/en\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Recovery of deleted data from MySQL using binlogs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/thecamels.org\\\/en\\\/\",\"name\":\"Thecamels.org\",\"description\":\"Hosting SSD NVMe z certyfikatem SSL i HTTP\\\/2. Administracja serwerami, skalowanie infrastruktury. Mamy g\u0142ow\u0119 do serwer\u00f3w i zadbamy o Twoj\u0105 stron\u0119 w sieci.\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecamels.org\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#organization\",\"name\":\"Thecamels\",\"url\":\"https:\\\/\\\/thecamels.org\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecamels.org\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/TC-logo-nowe.png\",\"contentUrl\":\"https:\\\/\\\/thecamels.org\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/TC-logo-nowe.png\",\"width\":826,\"height\":106,\"caption\":\"Thecamels\"},\"image\":{\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/thecamels.org\\\/\",\"https:\\\/\\\/x.com\\\/thecamelsorg\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/the-camels\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC01xYBZbIAApTuPWuqgGE4Q\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecamels.org\\\/en\\\/#\\\/schema\\\/person\\\/b7bd2aec5f506a68323eb40c86d38a32\",\"name\":\"Kamil Porembi\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g\",\"caption\":\"Kamil Porembi\u0144ski\"},\"description\":\"Architekt systemowy, administrator Linux, a czasem Windows. Lubi tematyk\u0119 security. Obecnie w\u0142a\u015bciciel firmy thecamels.org, zajmuj\u0105cej si\u0119 projektowaniem system\u00f3w o wysokiej dost\u0119pno\u015bci. Zajmuje si\u0119 skalowaniem du\u017cych aplikacji internetowych, wspieraniem startup\u00f3w w kwestiach serwerowych. Po godzinach zajmuje si\u0119 \u017ceglowaniem po morzach, lataniem, fotografi\u0105 i podr\u00f3\u017cami.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recovery of deleted data from MySQL using binlogs - Thecamels.org","description":"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.","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:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/","og_locale":"en_US","og_type":"article","og_title":"Recovery of deleted data from MySQL using binlogs - Thecamels.org","og_description":"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.","og_url":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/?utm_source=dark&utm_medium=social&utm_campaign=open-graph","og_site_name":"Thecamels.org","article_publisher":"https:\/\/www.facebook.com\/thecamels.org\/","article_published_time":"2017-04-25T05:41:02+00:00","article_modified_time":"2021-01-12T06:32:25+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/thecamels.org\/wp-content\/uploads\/2017\/04\/15.png","type":"image\/png"}],"author":"Kamil Porembi\u0144ski","twitter_card":"summary_large_image","twitter_image":"https:\/\/thecamels.org\/wp-content\/uploads\/2017\/04\/15.png","twitter_creator":"@thecamelsorg","twitter_site":"@thecamelsorg","twitter_misc":{"Written by":"Kamil Porembi\u0144ski","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/#article","isPartOf":{"@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/"},"author":{"name":"Kamil Porembi\u0144ski","@id":"https:\/\/thecamels.org\/en\/#\/schema\/person\/b7bd2aec5f506a68323eb40c86d38a32"},"headline":"Recovery of deleted data from MySQL using binlogs","datePublished":"2017-04-25T05:41:02+00:00","dateModified":"2021-01-12T06:32:25+00:00","mainEntityOfPage":{"@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/"},"wordCount":317,"publisher":{"@id":"https:\/\/thecamels.org\/en\/#organization"},"keywords":["server administration","servers"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/","url":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/","name":"Recovery of deleted data from MySQL using binlogs - Thecamels.org","isPartOf":{"@id":"https:\/\/thecamels.org\/en\/#website"},"datePublished":"2017-04-25T05:41:02+00:00","dateModified":"2021-01-12T06:32:25+00:00","description":"Learn how you can efficiently recover deleted data from MySQL using bingologs. Check out more on our blog.","breadcrumb":{"@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/thecamels.org\/en\/recovery-of-deleted-data-from-mysql-using-binlogs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"[HOME]","item":"https:\/\/thecamels.org\/en\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/thecamels.org\/en\/blog\/"},{"@type":"ListItem","position":3,"name":"Recovery of deleted data from MySQL using binlogs"}]},{"@type":"WebSite","@id":"https:\/\/thecamels.org\/en\/#website","url":"https:\/\/thecamels.org\/en\/","name":"Thecamels.org","description":"Hosting SSD NVMe z certyfikatem SSL i HTTP\/2. Administracja serwerami, skalowanie infrastruktury. Mamy g\u0142ow\u0119 do serwer\u00f3w i zadbamy o Twoj\u0105 stron\u0119 w sieci.","publisher":{"@id":"https:\/\/thecamels.org\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecamels.org\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/thecamels.org\/en\/#organization","name":"Thecamels","url":"https:\/\/thecamels.org\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thecamels.org\/en\/#\/schema\/logo\/image\/","url":"https:\/\/thecamels.org\/wp-content\/uploads\/2018\/09\/TC-logo-nowe.png","contentUrl":"https:\/\/thecamels.org\/wp-content\/uploads\/2018\/09\/TC-logo-nowe.png","width":826,"height":106,"caption":"Thecamels"},"image":{"@id":"https:\/\/thecamels.org\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thecamels.org\/","https:\/\/x.com\/thecamelsorg","https:\/\/www.linkedin.com\/company\/the-camels","https:\/\/www.youtube.com\/channel\/UC01xYBZbIAApTuPWuqgGE4Q"]},{"@type":"Person","@id":"https:\/\/thecamels.org\/en\/#\/schema\/person\/b7bd2aec5f506a68323eb40c86d38a32","name":"Kamil Porembi\u0144ski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2d40949e6453ecdd7663e9a61fac171f31810a28bdc5be0c4d7eca89f41571?s=96&d=identicon&r=g","caption":"Kamil Porembi\u0144ski"},"description":"Architekt systemowy, administrator Linux, a czasem Windows. Lubi tematyk\u0119 security. Obecnie w\u0142a\u015bciciel firmy thecamels.org, zajmuj\u0105cej si\u0119 projektowaniem system\u00f3w o wysokiej dost\u0119pno\u015bci. Zajmuje si\u0119 skalowaniem du\u017cych aplikacji internetowych, wspieraniem startup\u00f3w w kwestiach serwerowych. Po godzinach zajmuje si\u0119 \u017ceglowaniem po morzach, lataniem, fotografi\u0105 i podr\u00f3\u017cami."}]}},"_links":{"self":[{"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/posts\/9478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/comments?post=9478"}],"version-history":[{"count":4,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/posts\/9478\/revisions"}],"predecessor-version":[{"id":16699,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/posts\/9478\/revisions\/16699"}],"wp:attachment":[{"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/media?parent=9478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/categories?post=9478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecamels.org\/en\/wp-json\/wp\/v2\/tags?post=9478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}