您的位置:首页 > 其它

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

2016-09-07 15:10 239 查看
二进制很重要,建议设置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还有 根据时间等等条件 都比较简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: