简要记录使用二进制恢复丢失数据

本文介绍了MySQL数据库的备份与恢复方法,包括使用mysqldump命令进行备份的具体参数设置,利用mysqlbinlog工具进行增量备份及按位置恢复数据的方式。此外还提供了调整binlog大小以方便管理和快速定位的方法。
二进制很重要,建议设置row格式,这个虽然存储比较占地方,但是是最安全的并且使用下面语句可以直观的看到数据
 
mysqlbinlog --base64-output='decode-rows' -v mysql-bin.000001 > text.txt 

 

这样具体的行记录信息在text.txt 就可以找到了
 
-v 显示行记录格式内容
-vv 显示行记录格式内容+字段的数据类型等
 
binlog大小默认是1GB 建议可以改成512M这样可以更加方便的打开搜索定位
使用如下参数
max_binlog_size

 

使用show binary logs;定位当前正在写的二进制日志和具体position
 
mysqldump -h127.0.0.1 -uroot -proot  -v(打印备份冗余信息) -R (备份存储过程和函数) --event (备份事件) --databases database_name (要备份的数据库或者使用 --all-databases) --master-data=2(这个参数会打开lock-all-tables 选项除非使用--single-transaction选项,默认为1 表示直接在备份中生成 change master to master_file='' , master_pos='' ; 信息,2表示以注释形式记录,这样不影响reload恢复,注意1会影响,一般备份不需要使用) > backup.sql
 

 

恢复数据的时候可以使用登录mysql会话,设置sql_log_bin 为0 ,避免大数据恢复写二进制文件
mysql> set sql_log_bin = 0; --  (默认是1) 
mysql> source backup.sql ;
mysql> set sql_log_bin = 1;
 

 

简单使用二进制 position 来恢复数据
 
mysqlbinlog --start-position=191 --stop-position=2324345 --database='database' mysql-bin.00001 mysql-bin.000002 
| mysql -h127.0.0.1 -uroot -proot  (或者 > file.sql 然后再检查file再执行,直接执行是比较危险的)

 
mysqlbinlog还有 根据时间等等条件 都比较简单
 
 
 
 
 
 

转载于:https://www.cnblogs.com/jiangwenju/p/5849574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值