From 8b8bd4f6ff172cf4bcafab85e99e84ec2b5375c8 Mon Sep 17 00:00:00 2001 From: danfengcao Date: Tue, 6 Dec 2016 13:01:14 +0800 Subject: [PATCH] add realtime option, fix position filter, add fixOldMasterExtraData --- README.md | 4 +- example/.DS_Store | Bin 0 -> 6148 bytes example/FixOldMasterExtraData.md | 53 +++++++++++++++++++++++++ example/master-slave-inconsistency.jpg | Bin 0 -> 35077 bytes 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 example/.DS_Store create mode 100644 example/FixOldMasterExtraData.md create mode 100644 example/master-slave-inconsistency.jpg diff --git a/README.md b/README.md index 7f8ff73..480dfd5 100644 --- a/README.md +++ b/README.md @@ -60,9 +60,9 @@ python binlog2sql.py --flashback --host='127.0.0.1' -P3306 -uadmin -p'admin' --s max_binlog_size = 1000M binlog-format = row -#### 如果使用flashback模式,一次性处理的binlog不宜过大,不能超过内存大小。 +#### 如果使用flashback模式,一次性处理的binlog不宜过大,不能超过内存大小。恢复操作有风险,请在备库操作或是在经验丰富的同学指导下进行。 -#### 目前只支持INSERT,UPDATE,DELETE的解析,暂不支持DDL解析。 +#### flashback模式只用于恢复DML语句引起的误操作,不支持DDL语句。 diff --git a/example/.DS_Store b/example/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 oldMaster.sql + +python binlog2sql.py --flashback --host='10.1.1.1' -P3306 -uadmin -p'admin' --start-file='mysql-bin.000002' --start-pos=1240 | mysql -h10.1.1.1 -P3306 -uadmin -p'admin' + +mysql -h10.1.1.2 -P3306 -uadmin -p'admin' < oldMaster.sql +``` + +**优点** + +数据丢失最少,操作简单快捷。 + +**注意** + +修完数据后,表数据可能会与业务逻辑预想的有区别。需要与业务方沟通后再做修复操作。 + + + + + + diff --git a/example/master-slave-inconsistency.jpg b/example/master-slave-inconsistency.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c7d3c0df8231fd82a1b63b3ad7ba32000aef1f19 GIT binary patch literal 35077 zcmeFZc|26_`#*l{m1R>-3ugi0v;7THO%71@n7 z`;27_#?0@i*ZZ}7-jCn=_4)nref-{!$M=kL=9>Fl*YjN0b)R!D*L5GH@1!Z<_%$_6 zHGqta4A1~S00|9vt0Elj06<$CI0pd05rC461E2yaGH_QSY{}%^&?{kXZX|6+7(kgIK&%xc>-OIuKE{~MhdEnv|O>N3U zL~#2_pZQ51|9UEVI1VVGTnsw;bOnDUkTgwGrKzF<*E7&n)4Z+<8Ug?`ukPHv>q5>0 z0IqJ{o(Aeycua4a@z4wd7K*_g#>tIkcb26I2kS&mYqE zzv!!nwAC-#^e4{^0~L_xP*(4`}nxjT=1Dc{v+uf!{)hwmW!g82m;*x4xrl2-5su zdB98=ode^!aau@CLqlMmfJXbYu@;+{GOYYjxI=p zvgFy$?plX9hddqDUMiq30bY=vaIn=ptYc6g3c$wpswzl}fHb#*kH&BK6xY0b4G+tI z;@opkIlOy8912gTJJ<9;nggUCdAb`MUJKNjBHPwQ{qR~KK1JJIZ@u4ip!nhDqH}mH z&|XRgTd$usf|wLPyd7>FJ^`RCrHr@djo)M`&Fmc2G=Jkq-gWtTFM_&JzV!4lIMfZq zr|iAssj3drAP(h*t((!I-$0s*&F0S4L*I&lv=U%Ub_cKp+yN`_Xbrdl2LKOX0H_03 z!0)?&CwRsVa0Fby5?k=BEm-16Mh`fHW&fT}?C%#Qjzi^2XTJ47}VMQ&mI80Ko9)OI?+G-sU2Cz z_WK#0Z0ARiFN0|`V zCNgIMK$VQOkEic1Jh0>K1^_QRDaoI|$>^?tZPNsavIeFPYfkaLmuQjqZimRN!dja6s}eWO52hDr%Y|M~~5h4CTiG zaxw}Ea!Lv+s>1;SSpXS1IGSLjIⓈnfj#u9U5K_Cdmi!FOKkCdEdxv(1+odvhoZ* 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 literal 0 HcmV?d00001