mysql binlog 恢复

萝らか妹 提交于 2019-12-01 04:02:28

开始先执行每天自动备份的数据库

show master status;

再使用binlog恢复

 binlog直接恢复数据库,不建议直接使用

mysqlbinlog --start-datetime="2018-8-11 02:00:00" C:\Users\donald\Desktop\mysql.000243 | mysql -uroot -p sakila

优先使用下面的,把binlog导出sql文件,看下没有问题再重新导入

mysqlbinlog --start-datetime="2018-8-11 02:00:00"  --database=sakila C:\Users\donald\Desktop\mysql.000243 >C:\Users\donald\Desktop\binlog.sql

恢复的数据不包含视图,视图需要另外使用工具导出导入

mysqldump -E -R -u ursername-ppassword --databases db> C:\Users\Administrator\Desktop\db.dump

使用mysqldump ,系统不会区分视图和表,因此有视图的时候dump一定会报错

 

另外恢复的数据库,某些视图或者function是使用非root 账号创建的,对应的数据也要有同样的账号,否则会有   execute command denied to user 'admin'@'%' for routine.......的报错

 

另外,mysqldump 是不会区分视图和表 ,把视图和表混一起,就会报错 Couldn't execute 'show create table 'bs_purchase(视图名)''....

 

 

基于linux 恢复数据

-- 查看所有binlog日志列表
SHOW MASTER LOGS ;
-- 查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
SHOW MASTER STATUS;
-- 查询第一个(最早)的binlog日志:
show binlog events
-- 指定查询 mysql-bin.000013 这个文件限制10行
show binlog events in 'mysql-bin.000013' from 1574 LIMIT 10 ;
-- 查看binlog
mysqlbinlog --start-datetime='2019-03-25 00:00:00' --stop-datetime='2019-03-25 00:00:10' -d zita_wms /var/lib/mysql/binlog/mysql-bin.000013 -vv 


-- 备份最后一个binlog日志文件
cp -v /var/lib/mysql/binlog/mysql-bin.000013 /root/

-- 执行一次刷新日志索引操作,重新开始新的binlog日志记录文件
flush logs;
SHOW MASTER LOGS ;

-- 备份dump文件恢复  基于windows 语句, 
mysql -uroot -p < C:\Users\username\Desktop\zita_wms-20190325_013001.dump

-- 导出binlog的sql 文件
mysqlbinlog --start-datetime="2019-03-25 01:30:00" --database=zita_wms /var/lib/mysql/binlog/mysql-bin.000013 > /var/lib/mysql/binlog/mysql_20190325.sql

-- binlog 可视化输出

mysqlbinlog --start-datetime="2019-04-04 13:17:20"  --stop-datetime="2019-04-04 13:22:15" --base64-output=decode-rows -v --database=zita_wms /var/lib/mysql/binlog/mysql-bin.000014 > /var/lib/mysql/binlog/mysql_20190404.sql
 

检查binlog 是否包含改时间段

不好含就需要就需要两份binlog的恢复

 

-- 导入binlog 的sql 文件 基于windows的语句
mysql -uroot -p zita_wms < C:\Users\donald\Desktop\mysql_20190325.sql

 

导入dump 文件报错

mysql -uroot -p --default-character-set=utf8mb4 zita_wms < C:\Users\donald\Desktop\zita_wms-20190408_013001.dump

原因:导入数据时的默认编码(utf8)与导出文件的默认编码(utf8mb4)不一致。

 

ERROR 1231 (42000) at line 5383: Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

8.0以上已经取消了NO_AUTO_CREATE_USER这个关键字,删掉sql语句中的这个关键字即可

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!