设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 安全 > 正文

解锁MySQL备份恢复的4种正确姿势(4)

发布时间:2021-01-21 03:46 所属栏目:53 来源:网络整理
导读:检测并应用日志: mysqlbackup backup-dir=/data/backup/2017-04-29_11-53-20 apply-log step 3:应用增量 mysqlbackup backup-dir=/data/backup/2017-04-29_11-53-20 incremental-backup-dir=/data/backup/increme

检测并应用日志:

mysqlbackup –backup-dir=/data/backup/2017-04-29_11-53-20 apply-log

step 3:应用增量

mysqlbackup –backup-dir=/data/backup/2017-04-29_11-53-20 –incremental-backup-dir=/data/backup/incremental/2017-04-29_11-55-54 apply-incremental-backup

step 4:物理文件复制还原

mysqlbackup –backup-dir=/data/backup/2017-04-29_11-53-20 copy-back

数据恢复到备份的时候:

dbadmin@test 12:09:49>select * from t;
+——-+
| ?id ?|
+——-+
| ?1 ?|
| ?2 ?|
+——-+
2 rows in set (0.00 sec)

恢复完成之后,data目录下会生成backup_variables.txt的文件(其实在备份的时候就已经有这些文件的),找到备份的时候的log position,然后从binlog恢复无备份的数据.

binlog_position=mysql-bin.000001:1076 mysqlbinlog mysql-bin.000001 –start-position=1076 –stop-position=1333 -vv >increment.sql
dbadmin@test 12:14:07>source /u01/my3307/log/increment.sql dbadmin@test 12:14:16>select * from t;
+——-+
| ?id ?|
+——-+
| ?1 ?|
| ?2 ?|
| ?3 ?|
+——-+
3 rows in set (0.00 sec)

至此数据恢复.

大致梳理一下操作步骤,来了解一下恢复的原理:

首先检测并应用全备事务日志文件(这里是因为我备份的时候用的是backup而不是backup-and-apply-log),然后基于全备去应用增量的log.这个时候如果有多次增量备份也可以(基于LSN点向后应用). 所有的都应用完成之后就是一个可以直接cp的数据库了.

个人感觉这个工具比xtrabackup好用,但是xtrabackup是开源的,所以市场占有量才会大,才会更有名,更多人用吧.

三、mysqlhotcopy

?mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和ARCHIVE引擎,并且是一个服务器命令,只能运行在数据库目录所在的机器上.与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句.使用mysqlhotcopy命令前需要要安装相应的软件依赖包. 因为这个功能很弱,我们只简单的介绍一个怎么用:

备份一个库

mysqlhotcopy db_name [/path/to/new_directory]

备份一张表

mysqlhotcopy db_name./table_name/ /path/to/new_directory

更详细的使用可以使用perldoc mysqlhotcopy查看.

四、xtrabackup/innobackupex

Percona XtraBackup是一款基于MySQL的热备份的开源实用程序,它可以备份5.1到5.7版本上InnoDB,XtraDB,MyISAM存储引擎的表,Xtrabackup有两个主要的工具:xtrabackup、innobackupex .

(1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表

(2)innobackupex则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁.

首先我们先来简单的了解一下xtrabackup是怎么工作的.xtrabackup基于innodb的crash-recovery(实例恢复)功能,先copy innodb的物理文件(这个时候数据的一致性是无法满足的),然后进行基于redo log进行恢复,达到数据的一致性.

详细的信息可以参数https://www.percona.com/doc/percona-xtrabackup/LATEST/how_xtrabackup_works.html?我就不翻译了.

我们还是简单来看一下日常工作中具体的使用:

全备:

xtrabackup –backup –target-dir=/data/backup/base

可以先看到

解锁MySQL备份恢复的4种正确姿势

在备份过程中,可以看到很多输出显示数据文件被复制,以及日志文件线程反复扫描日志文件和复制.

解锁MySQL备份恢复的4种正确姿势

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读