mysql时点还原全备+binlog的快速方法

适合mysql版本:4.1~5.7

所有数据库机器损坏,只有全备和binlog情况下恢复数据库到某个时间点

方法1:全备+binlog server
准备两台机器:binlog server机器,恢复机器

1、构造binlog server
把所有的binlog文件拷贝到一台机器,这个机器叫master binlog server
这个机器安装好mysql空实例,然后设置好Server-id ,auto.cnf(server-uuid)
master binlog server:
Server-id 从binlog文件里获取
mysql-bin.xxxx
mysql-bin.index 根据目前有多少个binlog文件构造出mysql-bin.index
server-uuid 从binlog文件里获取

2、
恢复机器上需要把全备恢复出来
mysqldump --single-stranaction --master-data=2

3、
根据binlog点把恢复出来的数据change 到master binlog server上

4、
start slave UNTIL master_log_file=‘binlog.000002‘,master_log_pos=829090187

MySQL启动异步复制SLAVE端的UNTIL语法
START SLAVE UNTIL master_log_file=‘binlog.000002‘,master_log_pos=829090187

START SLAVE [thread_type [, thread_type] ... ]
START SLAVE [SQL_THREAD] UNTIL
MASTER_LOG_FILE = ‘log_name‘, MASTER_LOG_POS = log_pos
START SLAVE [SQL_THREAD] UNTIL
RELAY_LOG_FILE = ‘log_name‘, RELAY_LOG_POS = log_pos

UNTIL语法不可以用在IO_THREAD上



方法2:重做relay-log
1. 把主库上的binlog cp到目标库上,改成relay-log的名字
2. 利用change master to语句,让恢复的库知道自已是一个从库

官方文档
The next example shows an operation that is less frequently employed.
It is used when the slave has relay log files that you want it to
execute again for some reason. To do this, the master need not be
reachable. You need only use CHANGE MASTER TO and start the SQL thread
(START SLAVE SQL_THREAD):
CHANGE MASTER TO
RELAY_LOG_FILE=‘slave-relay-bin.006‘,
RELAY_LOG_POS=4025;

1. 全备恢复,得到要change的binlog点位置
file:mysql-bin.006
pos:4025

2. 把主库上的binlog cp到恢复到目标库上,改成relay-log的名字
ls mysql-bin.0*|awk -F. ‘{print "cp "$0" relay-bin."$2}‘|sh

3. 利用change master to语句,让恢复的库知道自已是一个从库
change master to master_host=‘xxx‘; xxx随便一个ip都行,即使不存在的ip也行,这句主要是让mysql知道自己是一个从库
执行之后会自动生成
relay-log.info
relay-bin.index

4. 如果第二步出错,把 relay-log.info和relay-bin.index 删掉一次 ,再执行多次change master to

5. 构造relay-bin.index
ls relay-bin.0*|awk ‘{print "./"$0}‘>relay-bin.index

6. 滚动relay-log
flush logs;

7. CHANGE MASTER TO
RELAY_LOG_FILE=‘relay-bin.006‘,
RELAY_LOG_POS=4025;

8. start slave sql_thread;

9. show slave status;

时间: 2024-10-27 05:42:34

mysql时点还原全备+binlog的快速方法的相关文章

【转】【MySQL】mysql 通过bin-log恢复数据方法详解

mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这个指令来完成的 /mysql/bin/mysqlbinlog --database=fox --start-date="2013-01-22 5:00:00" --stop-date="2013-01-22 9:00:00" /mysql/data/mysql-bin.

mysql的备份: Xtrabackup的使用方法

Xtrabackup: Xtrabackup的优点:1.快速 ,支持并行备份.--parallel=8 2.在线备份备份,不阻塞读写(INNODB),对MYISAM添加全局锁3.支持在线搭建主从复制 Xtrabackup的基本实用方法: -- 全备innobackupex --defaults-file=/etc/my.cnf --user=root  --socket=/var/lib/mysql/mysql.sock --parallel=8 /home/backup/ /home/back

MySQL 数据还原

1.1还原使用mysqldump命令备份的数据库的语法如下: mysql -u root -p [dbname] < backup.sq 示例: mysql -u root -p < C:\backup.sql 1.2还原直接复制目录的备份 通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的.MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制 2.还原增量binlog的方法   2.1 时间点的恢复建立在一下规则的基础上:    1 my

MySQL复制异常大扫盲:快速溯源与排查错误全解

MySQL复制异常大扫盲:快速溯源与排查错误全解https://mp.weixin.qq.com/s/0Ic8BnUokyOj7m1YOrk1tA 作者介绍王松磊,现任职于UCloud,从事MySQL数据库内核研发工作,主要负责UCloud云数据库UDB的内核故障排查工作以及数据库新特性的研发工作. 复制作为MySQL原生的数据同步功能,在MySQL高可用架构中起着至关重要的作用.本文梳理了MySQL高可用产品UDB在日常运维中遇到的复制问题,并总结了当复制发生异常时,排查复制异常的方法. 一.

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump、LV’s snapshot、xtrabackup)

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump.LV's snapshot.xtrabackup) 一.相关概念 备份:副本,mysql-database备份不同于RAID(RAID是保证硬件损坏而不会业务终止) 备份内容:数据.配置文件.二进制日志.事务日志 1.备份类型: >热备份.温备份.冷备份 热备份:读写不受影响,复杂度高,InnoDB(xtrabackup,mysqldump),lvm快照功能可实现几乎热备: 温备份:仅可执行读操作,MyISA

mysql迁移之巨大数据量快速迁移方案

mysql迁移之巨大数据量快速迁移方案-增量备份及恢复 --chenjianwen 一.前言: 当mysql库的大小达到几十个G或者上百G,迁移起来是一件非常费事的事情,业务中断,导出导入耗费大量的时间:所以,需要考虑怎么去节省时间的问题. 二.方案: 1.制定维护时间,中断业务,登录 mysql,刷新日志 2.全备数据,备份后得到 binlog 日志文件 mysql-bin.000001 3.迁移走之前的 binlog 日志文件,只留下 mysql-bin.000001 4.恢复业务 5.将全

使用全备+binlog日志恢复数据库

1.binlog日志类型 Statement 只记录执行的sql语句,磁盘占用少,但是恢复的时候容易出问题.InodeDB不能使用Statement . Row 记录修改后的具体数据,磁盘占用较多 Mixed 上面两种混合,mysqlsql根据具体情形,选择较好的方案 查看当前的类型: show variables like 'binlog_format' /etc/my.cnf 里面的binlog_format参数 2. 恢复方式 全备+恢复部分binlog日志 3.恢复方法 1. 全备 my

完全备份+增量备份完成即时点还原

完全备份+增量备份完成及时点还原 首先是一些感念 备份类型: 热备份,温备份,冷备份 热备份;读写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读,写操作均终止: 物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件中. 完全备份,增量备份和差异备份: 完全备份:备份全部数据 增量备份:仅备份上次完全备份或者增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份策略:每周完全+每日增量 完全备份;mysqldump 增量备份;备份二进制日志

MySQL数据库的备份与恢复的三种方法

MySQL数据库的备份与恢复的三种方法 1.利用mysqldump实现从逻辑角度完全备份mysql,配合二进制日志备份实现增量备份 2.利用lvs快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份 3.利用percona公司的xrabackup实现完全热备份与增量热备份 实验环境:RHEL5.8 ,SElinux关闭,MySQL是tar包初始化安装版本5.5.28 一.测试环境准备 1.1 mysql的安装就不说了,见http://laoguang.blog.51cto.com