MySQL 二进制文件恢复

先不说话  先来一段代码块

  1 mysql> show variables like ‘autocommit‘;
  2 +---------------+-------+
  3 | Variable_name | Value |
  4 +---------------+-------+
  5 | autocommit    | ON    |
  6 +---------------+-------+
  7 1 row in set (0.00 sec)
  8
  9 mysql> set autocommit=0;
 10 Query OK, 0 rows affected (0.00 sec)
 11
 12 mysql> show variables like ‘autocommit‘;
 13 +---------------+-------+
 14 | Variable_name | Value |
 15 +---------------+-------+
 16 | autocommit    | OFF   |
 17 +---------------+-------+
 18 1 row in set (0.00 sec)
 19
 20
 21 mysql> show master status;
 22 +------------------+----------+--------------+------------------+-------------------+
 23 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 24 +------------------+----------+--------------+------------------+-------------------+
 25 | mysql-bin.000034 |      120 |              |                  |                   |
 26 +------------------+----------+--------------+------------------+-------------------+
 27 1 row in set (0.00 sec)
 28
 29
 30 #第二个
 31 mysql> create database luna;
 32 Query OK, 1 row affected (0.00 sec)
 33
 34 mysql> show master status;
 35 +------------------+----------+--------------+------------------+-------------------+
 36 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 37 +------------------+----------+--------------+------------------+-------------------+
 38 | mysql-bin.000034 |      214 |              |                  |                   |
 39 +------------------+----------+--------------+------------------+-------------------+
 40 1 row in set (0.00 sec)
 41
 42 mysql> use luna;
 43 Database changed
 44 mysql> create table t1(id int);
 45 Query OK, 0 rows affected (0.08 sec)
 46
 47 mysql> show master status;
 48 +------------------+----------+--------------+------------------+-------------------+
 49 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 50 +------------------+----------+--------------+------------------+-------------------+
 51 | mysql-bin.000034 |      311 |              |                  |                   |
 52 +------------------+----------+--------------+------------------+-------------------+
 53 1 row in set (0.00 sec)
 54
 55
 56 mysql> insert into t1 values(1);
 57 Query OK, 1 row affected (0.00 sec)
 58
 59 mysql> show master status;
 60 +------------------+----------+--------------+------------------+-------------------+
 61 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 62 +------------------+----------+--------------+------------------+-------------------+
 63 | mysql-bin.000034 |      311 |              |                  |                   |
 64 +------------------+----------+--------------+------------------+-------------------+
 65 1 row in set (0.00 sec)
 66
 67 mysql> commit;
 68 Query OK, 0 rows affected (0.33 sec)
 69
 70 mysql> show master status;
 71 +------------------+----------+--------------+------------------+-------------------+
 72 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 73 +------------------+----------+--------------+------------------+-------------------+
 74 | mysql-bin.000034 |      499 |              |                  |                   |
 75 +------------------+----------+--------------+------------------+-------------------+
 76 1 row in set (0.00 sec)
 77
 78 #update
 79 mysql> update t1 set id=11 where id=1;
 80 Query OK, 1 row affected (0.00 sec)
 81 Rows matched: 1  Changed: 1  Warnings: 0
 82
 83 mysql> show master status;
 84 +------------------+----------+--------------+------------------+-------------------+
 85 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 86 +------------------+----------+--------------+------------------+-------------------+
 87 | mysql-bin.000034 |      857 |              |                  |                   |
 88 +------------------+----------+--------------+------------------+-------------------+
 89 1 row in set (0.00 sec)
 90
 91 mysql> show master status;
 92 +------------------+----------+--------------+------------------+-------------------+
 93 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 94 +------------------+----------+--------------+------------------+-------------------+
 95 | mysql-bin.000034 |     1051 |              |                  |                   |
 96 +------------------+----------+--------------+------------------+-------------------+
 97 1 row in set (0.00 sec)
 98
 99
100 #delete
101 mysql> delete from t1 where id=2;
102 Query OK, 1 row affected (0.00 sec)
103
104 mysql> show master status;
105 +------------------+----------+--------------+------------------+-------------------+
106 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
107 +------------------+----------+--------------+------------------+-------------------+
108 | mysql-bin.000034 |     1051 |              |                  |                   |
109 +------------------+----------+--------------+------------------+-------------------+
110 1 row in set (0.00 sec)
111
112 mysql> commit;
113 Query OK, 0 rows affected (0.01 sec)
114
115 mysql> show master status;
116 +------------------+----------+--------------+------------------+-------------------+
117 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
118 +------------------+----------+--------------+------------------+-------------------+
119 | mysql-bin.000034 |     1239 |              |                  |                   |
120 +------------------+----------+--------------+------------------+-------------------+
121 1 row in set (0.00 sec)
122
123
124 #drop
125 mysql> select * from t1;
126 +------+
127 | id   |
128 +------+
129 |   11 |
130 |    3 |
131 |    4 |
132 +------+
133 3 rows in set (0.00 sec)
134
135 mysql> update t1 set id=44 where id=4;
136 Query OK, 1 row affected (0.00 sec)
137 Rows matched: 1  Changed: 1  Warnings: 0
138
139 mysql> drop table t1;
140 Query OK, 0 rows affected (0.04 sec)
141
142 mysql> drop database luna;
143 Query OK, 0 rows affected (0.08 sec)
144
145 mysql> show master status;
146 +------------------+----------+--------------+------------------+-------------------+
147 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
148 +------------------+----------+--------------+------------------+-------------------+
149 | mysql-bin.000034 |     1633 |              |                  |                   |
150 +------------------+----------+--------------+------------------+-------------------+
151 1 row in set (0.00 sec)
152
153
154
155
156 #工具查看
157 mysql> show binlog events in ‘mysql-bin.000034‘;
158
159
160 #在命令行查看
161
162 [[email protected] mysql]# mysqlbinlog --base64-output=decode-rows -vvv /data/mysql/mysql-bin.000034
163
164
165
166 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
167 /*!40019 SET @@session.max_insert_delayed_threads=0*/;
168 /*!50003 SET @[email protected]@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
169 DELIMITER /*!*/;
170 # at 4
171 #180627 17:49:07 server id 6  end_log_pos 120 CRC32 0x75f5723b     Start: binlog v 4, server v 5.6.38-log created 180627 17:49:07 at startup
172 # Warning: this binlog is either in use or was not closed properly.
173 ROLLBACK/*!*/;
174 # at 120
175 #180627 18:21:12 server id 6  end_log_pos 214 CRC32 0x0a1b14fc     Query    thread_id=2    exec_time=0    error_code=0
176 SET TIMESTAMP=1530094872/*!*/;
177 SET @@session.pseudo_thread_id=2/*!*/;
178 SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
179 SET @@session.sql_mode=1075838976/*!*/;
180 SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
181 /*!\C utf8 *//*!*/;
182 SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
183 SET @@session.lc_time_names=0/*!*/;
184 SET @@session.collation_database=DEFAULT/*!*/;
185 create database luna
186 /*!*/;
187 # at 214
188 #180627 18:22:16 server id 6  end_log_pos 311 CRC32 0x9fe876dc     Query    thread_id=2    exec_time=0    error_code=0
189 use `luna`/*!*/;
190 SET TIMESTAMP=1530094936/*!*/;
191 create table t1(id int)
192 /*!*/;
193 # at 311
194 #180627 18:23:02 server id 6  end_log_pos 383 CRC32 0xa66c8e7d     Query    thread_id=2    exec_time=0    error_code=0
195 SET TIMESTAMP=1530094982/*!*/;
196 BEGIN
197 /*!*/;
198 # at 383
199 #180627 18:23:02 server id 6  end_log_pos 428 CRC32 0xf0097518     Table_map: `luna`.`t1` mapped to number 70
200 # at 428
201 #180627 18:23:02 server id 6  end_log_pos 468 CRC32 0x2b1aa647     Write_rows: table id 70 flags: STMT_END_F
202 ### INSERT INTO `luna`.`t1`
203 ### SET
204 ###   @1=1 /* INT meta=0 nullable=1 is_null=0 */
205 # at 468
206 #180627 18:23:28 server id 6  end_log_pos 499 CRC32 0x62719421     Xid = 37
207 COMMIT/*!*/;
208 # at 499
209 #180627 18:25:06 server id 6  end_log_pos 571 CRC32 0x84c9efe6     Query    thread_id=2    exec_time=0    error_code=0
210 SET TIMESTAMP=1530095106/*!*/;
211 BEGIN
212 /*!*/;
213 # at 571
214 #180627 18:25:06 server id 6  end_log_pos 616 CRC32 0x74d151e2     Table_map: `luna`.`t1` mapped to number 70
215 # at 616
216 #180627 18:25:06 server id 6  end_log_pos 656 CRC32 0xd10d7120     Write_rows: table id 70 flags: STMT_END_F
217 ### INSERT INTO `luna`.`t1`
218 ### SET
219 ###   @1=2 /* INT meta=0 nullable=1 is_null=0 */
220 # at 656
221 #180627 18:27:16 server id 6  end_log_pos 701 CRC32 0x7895e39d     Table_map: `luna`.`t1` mapped to number 70
222 # at 701
223 #180627 18:27:16 server id 6  end_log_pos 741 CRC32 0x5acc32fe     Write_rows: table id 70 flags: STMT_END_F
224 ### INSERT INTO `luna`.`t1`
225 ### SET
226 ###   @1=3 /* INT meta=0 nullable=1 is_null=0 */
227 # at 741
228 #180627 18:27:30 server id 6  end_log_pos 786 CRC32 0xb4ed9f5a     Table_map: `luna`.`t1` mapped to number 70
229 # at 786
230 #180627 18:27:30 server id 6  end_log_pos 826 CRC32 0x819e8db3     Write_rows: table id 70 flags: STMT_END_F
231 ### INSERT INTO `luna`.`t1`
232 ### SET
233 ###   @1=4 /* INT meta=0 nullable=1 is_null=0 */
234 # at 826
235 #180627 18:27:58 server id 6  end_log_pos 857 CRC32 0x452e1f31     Xid = 41
236 COMMIT/*!*/;
237 # at 857
238 #180627 18:29:56 server id 6  end_log_pos 929 CRC32 0x5e68dff7     Query    thread_id=2    exec_time=0    error_code=0
239 SET TIMESTAMP=1530095396/*!*/;
240 BEGIN
241 /*!*/;
242 # at 929
243 #180627 18:29:56 server id 6  end_log_pos 974 CRC32 0xf4e4e2bf     Table_map: `luna`.`t1` mapped to number 70
244 # at 974
245 #180627 18:29:56 server id 6  end_log_pos 1020 CRC32 0x2d809738     Update_rows: table id 70 flags: STMT_END_F
246 ### UPDATE `luna`.`t1`
247 ### WHERE
248 ###   @1=1 /* INT meta=0 nullable=1 is_null=0 */
249 ### SET
250 ###   @1=11 /* INT meta=0 nullable=1 is_null=0 */
251 # at 1020
252 #180627 18:30:25 server id 6  end_log_pos 1051 CRC32 0x08029580     Xid = 52
253 COMMIT/*!*/;
254 # at 1051
255 #180627 18:31:25 server id 6  end_log_pos 1123 CRC32 0xcf1b6980     Query    thread_id=2    exec_time=0  error_code=0
256 SET TIMESTAMP=1530095485/*!*/;
257 BEGIN
258 /*!*/;
259 # at 1123
260 #180627 18:31:25 server id 6  end_log_pos 1168 CRC32 0x7729069b     Table_map: `luna`.`t1` mapped to number 70
261 # at 1168
262 #180627 18:31:25 server id 6  end_log_pos 1208 CRC32 0x04cb5496     Delete_rows: table id 70 flags: STMT_END_F
263 ### DELETE FROM `luna`.`t1`
264 ### WHERE
265 ###   @1=2 /* INT meta=0 nullable=1 is_null=0 */
266 # at 1208
267 #180627 18:31:36 server id 6  end_log_pos 1239 CRC32 0x27093f44     Xid = 56
268 COMMIT/*!*/;
269 # at 1239
270 #180627 18:33:45 server id 6  end_log_pos 1311 CRC32 0x8be80fc2     Query    thread_id=2    exec_time=0  error_code=0
271 SET TIMESTAMP=1530095625/*!*/;
272 BEGIN
273 /*!*/;
274 # at 1311
275 #180627 18:33:45 server id 6  end_log_pos 1356 CRC32 0x77578bf1     Table_map: `luna`.`t1` mapped to number 70
276 # at 1356
277 #180627 18:33:45 server id 6  end_log_pos 1402 CRC32 0x9c7bf8df     Update_rows: table id 70 flags: STMT_END_F
278 ### UPDATE `luna`.`t1`
279 ### WHERE
280 ###   @1=4 /* INT meta=0 nullable=1 is_null=0 */
281 ### SET
282 ###   @1=44 /* INT meta=0 nullable=1 is_null=0 */
283 # at 1402
284 #180627 18:34:17 server id 6  end_log_pos 1433 CRC32 0x354e0150     Xid = 60
285 COMMIT/*!*/;
286 # at 1433
287 #180627 18:34:17 server id 6  end_log_pos 1548 CRC32 0x52b3dc50     Query    thread_id=2    exec_time=0  error_code=0
288 SET TIMESTAMP=1530095657/*!*/;
289 DROP TABLE `t1` /* generated by server */
290 /*!*/;
291 # at 1548
292 #180627 18:34:26 server id 6  end_log_pos 1633 CRC32 0x2e40af97     Query    thread_id=2    exec_time=0  error_code=0
293 SET TIMESTAMP=1530095666/*!*/;
294 drop database luna
295 /*!*/;
296 DELIMITER ;
297 # End of log file
298 ROLLBACK /* added by mysqlbinlog */;
299 /*!50003 SET [email protected]_COMPLETION_TYPE*/;
300 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
301
302
303
304 #截取
305 [[email protected] mysql]# mysqlbinlog --start-position=120 --stop-position=857 /data/mysql/mysql-bin.000034 >/tmp/luna2.sql
306 WARNING: The range of printed events ends with a row event or a table map event that does not have the STMT_END_F flag
307 set. This might be because the last statement was not fully written to the log, or because you are using a
308 --stop-position or --stop-datetime that refers to an event in the middle of a statement. The event(s) from
309 the partial statement have not been written to output.
310
311 警告:打印事件的范围以行或表映射事件结束,没有设置了STMT_END_F标志。这可能是因为过去的声明没有完全写入日志,或者因为您使
312 用的是——停止位置,stop-datetime指一个事件在一份声明中。部分语句中的事件尚未写入输出。
313
314 #产生以上报错就是因为截取的时候 一定要注意begin  begin是一个语句的开始 一定要从begin之前开始截断
315 之前的语句mysqlbinlog --start-position=120 --stop-position=974 /data/mysql/mysql-bin.000034 >/tmp/luna.sql 当中的974要改成857
316
317  mysql> set sql_log_bin=0;
318 Query OK, 0 rows affected (0.00 sec)
319
320 mysql> source /tmp/luna.sql;
321 Query OK, 0 rows affected (0.00 sec)
322
323 Query OK, 0 rows affected, 1 warning (0.00 sec)
324
325 Query OK, 0 rows affected (0.00 sec)
326
327 Query OK, 0 rows affected (0.00 sec)
328
329 Query OK, 0 rows affected (0.00 sec)
330
331 Query OK, 0 rows affected (0.00 sec)
332
333 Query OK, 0 rows affected (0.00 sec)
334
335 Query OK, 0 rows affected (0.00 sec)
336
337 Query OK, 0 rows affected (0.00 sec)
338
339 Query OK, 0 rows affected (0.00 sec)
340
341 Charset changed
342 Query OK, 0 rows affected (0.00 sec)
343
344 Query OK, 0 rows affected (0.00 sec)
345
346 Query OK, 0 rows affected (0.00 sec)
347
348 Query OK, 0 rows affected (0.00 sec)
349
350 Query OK, 1 row affected (0.00 sec)
351
352 Database changed
353 Query OK, 0 rows affected (0.00 sec)
354
355 Query OK, 0 rows affected (0.36 sec)
356
357 Query OK, 0 rows affected (0.00 sec)
358
359 Query OK, 0 rows affected (0.00 sec)
360
361 Query OK, 0 rows affected (0.01 sec)
362
363 Query OK, 0 rows affected (0.00 sec)
364
365 Query OK, 0 rows affected (0.01 sec)
366
367 Query OK, 0 rows affected (0.00 sec)
368
369 Query OK, 0 rows affected (0.00 sec)
370
371 Query OK, 0 rows affected (0.03 sec)
372
373 Query OK, 0 rows affected (0.00 sec)
374
375 Query OK, 0 rows affected (0.01 sec)
376
377 Query OK, 0 rows affected (0.00 sec)
378
379 Query OK, 0 rows affected (0.00 sec)
380
381 Query OK, 0 rows affected (0.00 sec)
382
383 Query OK, 0 rows affected (0.00 sec)
384
385 Query OK, 0 rows affected (0.00 sec)
386
387 mysql> show database;
388 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘database‘ at line 1
389 mysql> show databases;
390 +--------------------+
391 | Database           |
392 +--------------------+
393 | information_schema |
394 | binlog             |
395 | luna               |
396 | mysql              |
397 | nod01              |
398 | oldboy             |
399 | performance_schema |
400 | test               |
401 | world              |
402 +--------------------+
403 9 rows in set (0.00 sec)
404
405 mysql> use luna
406 Database changed
407 mysql>
408 mysql>
409 mysql> show table;
410 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘ at line 1
411 mysql> show tables;
412 +----------------+
413 | Tables_in_luna |
414 +----------------+
415 | t1             |
416 +----------------+
417 1 row in set (0.00 sec)
418
419 mysql> select * from t1;
420 +------+
421 | id   |
422 +------+
423 |    1 |
424 |    2 |
425 |    3 |
426 |    4 |
427 +------+
428 4 rows in set (0.00 sec)
429
430 mysql> show master status;
431 +------------------+----------+--------------+------------------+-------------------+
432 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
433 +------------------+----------+--------------+------------------+-------------------+
434 | mysql-bin.000034 |     1633 |              |                  |                   |
435 +------------------+----------+--------------+------------------+-------------------+
436 1 row in set (0.00 sec)

原文地址:https://www.cnblogs.com/nodchen/p/9235632.html

时间: 2024-10-16 00:33:59

MySQL 二进制文件恢复的相关文章

MySQL 二进制文件恢复数据基础版本

先来一段 自行体会 1 #---------------------------------------------------------------------------------- 2 #模拟通过binlog进行数据恢复 3 #---------------------------------------------------------------------------------- 4 5 #开启新的二进制日志 便于记录 6 mysql> flush logs; 7 Query

MySQL数据库恢复(使用mysqlbinlog命令)

MySQL数据库恢复(使用mysqlbinlog命令) 1:开启binlog日志记录 修改mysql配置文件mysql.ini,在[mysqld]节点下添加 复制代码代码如下: # log-bin log-bin = E:/log/logbin.log 路径中不要包含中文和空格.重启mysql服务.通过命令行停止和启动mysql服务 复制代码代码如下: c:\>net stop mysql; c:\>net start mysql; 进入命令行进入mysql并查看二进制日志是否已经启动 Sql

mysql增量恢复

mysql增量恢复过程 创建一张用于测试的表 mysql> create table user (name char(10),age int(3)); Query OK, 0 rows affected (0.07 sec) mysql> desc user; +-------+----------+------+-----+---------+-------+ | Field | Type     | Null | Key | Default | Extra | +-------+-----

MySQL崩溃恢复过程常见错误分析

最近在和一个同事争论MySQL崩溃恢复中的一些常见错误时出现了一些分歧,他认为一些参数的设置会导致MySQL出现崩溃后恢复不起来的问题,但对此,我却不认同,虽然一些参数的设定会导致数据丢失,但应该不会引起数据库崩溃之后无法恢复的情况,因此,就想整理出MySQL崩溃恢复的过程来加深学习! 图一 mysql WAL过程 在正常情况下,数据写入会先写入redo_buffer_pool,然后在写入redo_log_file,这中间如果由于参数设置不当,可能会发生丢失,但不影响主机的崩溃恢复,但有以下两种

MySQL数据库恢复过程

MySQL数据库恢复过程 某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log.之后只好把整个日志的记录拿回来本地进行恢复.之后自己也做了一个简单的测试,对数据进行恢复,具体如下: binlog是什么? binlog日志用于记录所有更新且提交了数据或者已经潜在更新提交了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以"事件"的形式保存,它描述数据更改 1.新建一个表 CREATE TABLE `lynn`

Mysql备份恢复

五.Mysql备份恢复 1.备份方式: ■直接phpmyadmin导出备份.我们用root管理权限进入phpmyadmin,然后把需要备份网站的mysql数据库导出备份,建议用gzip压缩格式 ■ mysqldump命令.我们用登陆SSH,然后用命令备份 ■ LVS快照备份  2.备份策略: ■ 完整备份 ■ 增量备份 ■ 差异备份 3.备份类型: ■ 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行: ■ 温备(warm backup): 服务在线,但仅支持读请

Mysql 备份恢复的简单实践

一.备份: 进行mysql的安装目录: 使用./mysqldump -u root -h 127.0.0.1 -P 3306 -p mysql>trymysql.sql 输入密码,备份成功. 二.恢复 进行mysql. 创建数据库 create database trymysql; 进入数据库 use trymysql ; 恢复 source trymysql.sql Mysql 备份恢复的简单实践

【mysql 备份/恢复】

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 17.0px } 备份库:mysqldump -uroot -p123456 mysql(需要备份的数据库名) > /tem/mysql.sql 恢复库:mysql

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢