编辑: LinDa_学友 | 2018-04-30 |
157 111 6F o 53.
060 48
30 0
160 112
70 p 54.
061 49
31 1
161 113
71 q 55.
062 50
32 2
162 114
72 r 56.
063 51
33 3
163 115
73 s 57.
064 52
34 4
164 116
74 t 58.
065 53
35 5
165 117
75 u 59.
066 54
36 6
166 118
76 v 60.
067 55
37 7
167 119
77 w 61.
070 56
38 8
170 120
78 x 62.
071 57
39 9
171 121
79 y 63.
072 58 3A :
172 122 7A z 64.
073 59 3B ;
173 123 7B { 65.
074 60 3C <
174 124 7C | 66.
075 61 3D =
175 125 7D } 67.
076 62 3E >
176 126 7E ~ 68.
077 63 3F ?
177 127 7F DEL 四种方法解决这个问题: 1. 采用 BINLOG_DUMP 协议源生获取 binlog 内容,跳过对特殊字符解析的过程. 优点:源生解析等于 slave binlog 回放,准确率高 缺点:速度较慢 可能恢复时间较长 2. Restore 备份,通过 binlog 恢复到指定时间 优点:能恢复到任意指定时间点,相对安全 不会对线上系统产生影响 缺点:速度慢,需要 binlog 保存完整 3. 采用 mysqlbinlog 工具解析导入再通过 replace 函数全局替换 优点:方便,采用源生 mysqlbinlog 解析 缺点:错误率高,可能遗漏部分特殊字符,需要业务端检查 4. 采用自研工具在解析阶段直接解析出相关字符串 优点:灵活,可以自定义解析维度 缺点:成本较高,需要完整的开发测试资源 推荐两个 GITHUB 上的项目: https://github.com/danfengcao/binlog2sql -- 基于 binlog dump 协议开发 https://github.com/58daojia-dba/mysqlbinlog_flashback 试用 可以解决上述需求