Mysql之binlog日志恢复操作记录
来源:互联网 发布:液晶电视机主板刷软件 编辑:程序博客网 时间:2024/05/01 09:59
MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
开启binlog日志
[root@xlc ~]# vim /etc/my.cnf
在[mysqld] 区块添加
log-bin=mysql-bin //如果已经存在去掉#号
查询是否支持binlog
如下OFF代表不支持,ON代表支持
mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+ 1 row in set (0.00 sec)
查看当前日志文件名称
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000005 | 120 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) #关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。 mysql> flush logs; Query OK, 0 rows affected (0.02 sec)
恢复测试
创建测试表数据
mysql> select * from t1;+----+-------+-----+---------+| id | name | sex | address |+----+-------+-----+---------+| 7 | daiiy | m | aaa || 8 | tom | f | bbb || 9 | liany | m | ccc || 10 | lilu | m | ddd |+----+-------+-----+---------+4 rows in set (0.00 sec)
误删除测试表数据
mysql> delete from t1;Query OK, 4 rows affected (0.00 sec)mysql> select * from t1;Empty set (0.00 sec)
重新生成log文件
mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000005 | 1609 | | | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> flush logs;Query OK, 0 rows affected (0.01 sec)
查看指定时间段内的日志数据
[root@iZwz97cbcapiyem3o09u09Z bin]# ./mysqlbinlog --no-defaults --database=test --start-datetime='2017-08-13 23:10:00' --stop-datetime='2017-08-13 23:12:13' ../data/mysql-bin.000005 | more/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!40019 SET @@session.max_insert_delayed_threads=0*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 4#170813 23:07:06 server id 1 end_log_pos 120 CRC32 0x02ab0045 Start: binlog v 4, server v 5.6.33-log created 170813 23:07:06BINLOG 'GmuQWQ8BAAAAdAAAAHgAAAAAAAQANS42LjMzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAUUAqwI='/*!*/;# at 120#170813 23:10:57 server id 1 end_log_pos 199 CRC32 0xb6a73a78 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637057/*!*/;SET @@session.pseudo_thread_id=486/*!*/;SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;SET @@session.sql_mode=1075838976/*!*/;SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8 *//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN/*!*/;# at 199#170813 23:10:57 server id 1 end_log_pos 287 CRC32 0x0ac79c04 Query thread_id=486 exec_time=0 error_code=0use `test`/*!*/;SET TIMESTAMP=1502637057/*!*/;delete from t1/*!*/;# at 287#170813 23:10:57 server id 1 end_log_pos 318 CRC32 0xb0b4da63 Xid = 102852COMMIT/*!*/;# at 318#170813 23:11:20 server id 1 end_log_pos 397 CRC32 0xfeca9fb6 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;BEGIN/*!*/;# at 397# at 429#170813 23:11:20 server id 1 end_log_pos 429 CRC32 0x6f803988 IntvarSET INSERT_ID=7/*!*/;#170813 23:11:20 server id 1 end_log_pos 561 CRC32 0x2208be50 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;insert into t1 (name,sex,address)values('daiiy','m','aaa')/*!*/;# at 561#170813 23:11:20 server id 1 end_log_pos 592 CRC32 0x74e80a04 Xid = 102853COMMIT/*!*/;# at 592#170813 23:11:20 server id 1 end_log_pos 671 CRC32 0x75baa899 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;BEGIN/*!*/;# at 671# at 703#170813 23:11:20 server id 1 end_log_pos 703 CRC32 0x26252021 IntvarSET INSERT_ID=8/*!*/;#170813 23:11:20 server id 1 end_log_pos 833 CRC32 0x82810296 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;insert into t1 (name,sex,address)values('tom','f','bbb')/*!*/;# at 833#170813 23:11:20 server id 1 end_log_pos 864 CRC32 0x8c2790d6 Xid = 102854COMMIT/*!*/;# at 864#170813 23:11:20 server id 1 end_log_pos 943 CRC32 0x1da588b6 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;BEGIN/*!*/;# at 943# at 975#170813 23:11:20 server id 1 end_log_pos 975 CRC32 0x71dc1b65 IntvarSET INSERT_ID=9/*!*/;#170813 23:11:20 server id 1 end_log_pos 1107 CRC32 0x870f4947 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637080/*!*/;insert into t1 (name,sex,address)values('liany','m','ccc')/*!*/;# at 1107#170813 23:11:20 server id 1 end_log_pos 1138 CRC32 0xba226ed1 Xid = 102855COMMIT/*!*/;# at 1138#170813 23:11:22 server id 1 end_log_pos 1217 CRC32 0x0dec63f4 Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637082/*!*/;BEGIN/*!*/;# at 1217# at 1249#170813 23:11:22 server id 1 end_log_pos 1249 CRC32 0xfc436a97 IntvarSET INSERT_ID=10/*!*/;#170813 23:11:22 server id 1 end_log_pos 1380 CRC32 0x6a004a4e Query thread_id=486 exec_time=0 error_code=0SET TIMESTAMP=1502637082/*!*/;insert into t1 (name,sex,address)values('lilu','m','ddd')/*!*/;# at 1380#170813 23:11:22 server id 1 end_log_pos 1411 CRC32 0x979f2eab Xid = 102856COMMIT/*!*/;DELIMITER ;# End of log fileROLLBACK /* added by mysqlbinlog */;/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
还原指定时间段数据
[root@iZwz97cbcapiyem3o09u09Z bin]# ./mysqlbinlog --no-defaults --database=test --start-datetime='2017-08-13 23:10:00' --stop-datetime='2017-08-13 23:12:13' ../data/mysql-bin.000005 | /usr/local/mysql/bin/mysql -uroot -p123456 testWarning: Using a password on the command line interface can be insecure.
查看恢复后数据
mysql> select * from t1;+----+-------+-----+---------+| id | name | sex | address |+----+-------+-----+---------+| 7 | daiiy | m | aaa || 8 | tom | f | bbb || 9 | liany | m | ccc || 10 | lilu | m | ddd |+----+-------+-----+---------+4 rows in set (0.00 sec)
mysqlbinlog常见的选项有:
–start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
–stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
–start-position:从二进制日志中读取指定position 事件位置作为开始。
–stop-position:从二进制日志中读取指定position 事件位置作为事件截至
测试以后发现,如果想恢复delete了的数据,必须要找到这条数居insert的语句才成,例如某张表中不太确认是什么时候插入的数据,但在今天被误删除了,好像没有办法在被删除的指定时间区间来恢复数据,日志回滚只是把在某一时间段执行的语句重新执行了一次。
阅读全文
0 0
- Mysql之binlog日志恢复操作记录
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
- MySQL--binlog日志恢复数据
- MySQL binlog日志恢复数据
- mysql 查看binlog 操作日志及恢复数据
- 解说mysql之binlog日志以及利用binlog日志恢复数据
- MySQL 日志之binlog日志
- MySQL--binlog二进制日志恢复数据
- MySQL利用binlog恢复误操作数据
- mysql恢复数据库方法binlog日志来恢复数据库
- mysql删除binlog日志及日志恢复数据的方法
- mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)
- MySQL 二进制日志操作(Binlog)
- mysql binlog日志及mysqlbinlog操作详解
- MySql的binlog日志操作(一)
- mysql binlog日志及mysqlbinlog操作详解
- mysql binlog日志简介及操作详解
- php+redis+lua实现分布式锁
- 简单查找
- Java_11 字符串生成器 StringBuilder
- OP-TEE初探
- 一个用PHP写的严格验证身份证号码的方法
- Mysql之binlog日志恢复操作记录
- tomcat在windows下把日志输出到文件中
- CV界的明星人物们(-2013)
- 提高WordPress访问速度的十种方法
- Mybatis的介绍
- Parkway项目Java操作word模版
- 虚拟币开发专题(山寨币客户端数据包路径到D盘)
- MySQL 死锁与日志二三事
- 注册域名与域名解析步骤