编辑: LinDa_学友 2018-04-30
故障回顾: 1.

开发误操作全表更新了配置表的信息,将Content 字段全部更新成了一个值 2. Content 字段包含很多特殊字符,例如换行回车制表符等等. 思路: 将开发操作时间段 binlog 解析成 text 文本,使用回滚脚本生成回滚语句,回滚数据库的表 数据. 发现问题: 1. 使用 mysqlbinlog 解析出来的 text 文件对于特殊字符的处理存在缺陷,不能正常显示特 殊符号. 2. 业务 content 包含特殊字符过于复杂,不能全面准确的替换 如下图,包含诸如此类的 windows 端存储的十六进制符 mysqlbinlog 本身对于这种字符的处理存在缺陷, 导致无法生成正确的结果, 从而使得回滚语 句生成出现问题. 对于MYSQL回滚来说 \x0[x]格式的字符串 将被当做转义插入从而变成一个非法字符 (x0[x]) 存在于表中 而mysqldump 对于这种问题的处理是没有问题的如下图 可以看到 mysqldump 出来的 SQL 文件对于这种字符的处理完全是按照 linux 端的形式展示的 下面放一张 ascii 码对照表 Linux ascii 对照表 1. C program '\X' escapes are noted. 2. 3. Oct Dec Hex Char Oct Dec Hex Char 4. -- 5.

000 0

00 NUL '\0'

100 64

40 @ 6.

001 1

01 SOH (start of heading)

101 65

41 A 7.

002 2

02 STX (start of text)

102 66

42 B 8.

003 3

03 ETX (end of text)

103 67

43 C 9.

004 4

04 EOT (end of transmission)

104 68

44 D 10.

005 5

05 ENQ (enquiry)

105 69

45 E 11.

006 6

06 ACK (acknowledge)

106 70

46 F 12.

007 7

07 BEL '\a' (bell)

107 71

47 G 13.

010 8

08 BS '\b' (backspace)

110 72

48 H 14.

011 9

09 HT '\t' (horizontal tab)

111 73

49 I 15.

012 10 0A LF '\n' (new line)

112 74 4A J 16.

013 11 0B VT '\v' (vertical tab)

113 75 4B K 17.

014 12 0C FF '\f' (form feed)

114 76 4C L 18.

015 13 0D CR '\r' (carriage ret)

115 77 4D M 19.

016 14 0E SO (shift out)

116 78 4E N 20.

017 15 0F SI (shift in)

117 79 4F O 21.

020 16

10 DLE (data link escape)

120 80

50 P 22.

021 17

11 DC1 (device control 1)

121 81

51 Q 23.

022 18

12 DC2 (device control 2)

122 82

52 R 24.

023 19

13 DC3 (device control 3)

123 83

53 S 25.

024 20

14 DC4 (device control 4)

124 84

54 T 26.

025 21

15 NAK (negative ack.)

125 85

55 U 27.

026 22

16 SYN (synchronous idle)

126 86

56 V 28.

027 23

17 ETB (end of trans. blk)

127 87

57 W 29.

030 24

18 CAN (cancel)

130 88

58 X 30.

031 25

19 EM (end of medium)

131 89

59 Y 31.

032 26 1A SUB (substitute)

132 90 5A Z 32.

033 27 1B ESC (escape)

133 91 5B [ 33.

034 28 1C FS (file separator)

134 92 5C \ '\\ ' 34.

035 29 1D GS (group separator)

135 93 5D ] 35.

036 30 1E RS (record separator)

136 94 5E ^ 36.

037 31 1F US (unit separator)

137 95 5F _ 37.

040 32

20 SPACE

140 96

60 ` 38.

041 33

21 !

141 97

61 a 39.

042 34

22 "

142 98

62 b 40.

043 35

23 #

143 99

63 c 41.

044 36

24 $

144 100

64 d 42.

045 37

25 %

145 101

65 e 43.

046 38

26 &

146 102

66 f 44.

047 39

27 ?

147 103

67 g 45.

050 40

28 (

150 104

68 h 46.

051 41

29 )

151 105

69 i 47.

052 42 2A *

152 106 6A j 48.

053 43 2B +

153 107 6B k 49.

054 44 2C ,

154 108 6C l 50.

055 45 2D -

155 109 6D m 51.

056 46 2E .

156 110 6E n 52.

057 47 2F /

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题