最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL两种不完全恢复的方法

来源:动视网 责编:小采 时间:2020-11-09 15:14:47
文档

MySQL两种不完全恢复的方法

MySQL两种不完全恢复的方法:MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb的内容是mysql-bin.006946 3784607) MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb
推荐度:
导读MySQL两种不完全恢复的方法:MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb的内容是mysql-bin.006946 3784607) MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb


MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb的内容是mysql-bin.006946 3784607)

MySQL 5.6.14
生产环境凌晨3点的备份,不完全恢复到中午12点.
(xtrabackup_binlog_pos_innodb的内容是mysql-bin.006946 3784607)

第一种方式:mysqlbinlog
1.找到需要恢复的binlog
进入binlog目录,执行
ll | awk '{print $9}' > /tmp/binlog.index

然后修改/tmp/binlog.index文件,删除不需要恢复的文件名.

2.解析binlog
time mysqlbinlog $(cat /tmp/binlog.index) --start-position=3784607 --stop-datetime='2015-07-13 12:00:00' > /tmp/binlog
real 2m32.399s
user 1m24.514s
sys 1m5.803s

3.设置MySQL服务器参数
max_allowed_packet=100M
innodb_flush_log_at_trx_commit=0

4.执行
time mysql -uroot -p -S mysql.sock --force < /tmp/binlog

real 50m24.341s
user 5m1.426s
sys 3m32.348s

执行3.4G的文件,用时50分钟.

第二种方式:复制,使用SQL线程执行
1.找到需要恢复的binlog
进入binlog目录,执行
ll | awk '{print $9}' > /tmp/binlog.index

然后修改/tmp/binlog.index文件,删除不需要恢复的文件名.

2.拷贝需要的binlog至一个新的目录
mkdir /tmp/testlog
cp $(cat /tmp/binlog.index) /tmp/testlog/

3.修改服务器参数
max_allowed_packet=100M
innodb_flush_log_at_trx_commit=0
server_id=111
relay_log=/tmp/testlog/mysql-bin
relay_log_index=/tmp/testlog/mysql-bin.index
skip_slave_start = 1

其中
server_id一定要修改为一个不同的值,否则binlog被直接丢弃.
skip_slave_start防止自动启动复制

4.启动实例,生成复制的相关文件
change master to
master_host='localhost',
master_port=3306,
master_user='repl',
master_password='repl',
master_log_file='dummy.binlog',
master_log_pos=777;

master是一个随便的值,主要是生成master.info,relay-log.info等相关文件

5.关闭实例,修改文件
修改relay-log.info

修改/tmp/testlog/mysql-bin.index 为
awk '{print "/tmp/testlog/"$1'} /tmp/binlog.index > /tmp/testlog/mysql-bin.index

6.启动实例,启动复制
start slave sql_thread UNTIL RELAY_LOG_FILE = 'mysql-bin.006982', RELAY_LOG_POS = 37300415;

恢复用时43分钟.

mysqlbinlog方式更简单,但是一旦出错,容易前功尽弃
复制的方式,前期配置比较复杂,但是出现错误,更容易修正.
从效率上看,相差不大
如果有大量的binlog需要恢复,建议使用复制的方式.
如果只有少量的binlog需要恢复,还是使用mysqlbinlog更简洁一些.

本文永久更新链接地址:

文档

MySQL两种不完全恢复的方法

MySQL两种不完全恢复的方法:MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb的内容是mysql-bin.006946 3784607) MySQL 5.6.14生产环境凌晨3点的备份,不完全恢复到中午12点.(xtrabackup_binlog_pos_innodb
推荐度:
标签: 恢复 恢复的 方法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top