目录

8.2 PXB备份恢复

Percona Xtrabackup 8.0版本只能备份8.0版本的MySQL,使用xtrabackup命令

2.4版本支持MySQL 5.11 , 5.5, 5.6和5.7的版本。

8.2.1 全量备份

【备份】

[root@jeames ~]# mkdir -p /bk/

[root@jeames ~]# xtrabackup -uroot -proot -S/var/lib/mysql/mysql.sock \

--backup --target-dir=/bk/full

备份解读:

(1) xtrabackup_binlog_info:服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置

(2)xtrabackup_checkpoints:备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)的范围信息;

每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN,LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

(3)xtrabackup_info:备份软件的信息

(4)backup-my.cnf:备份命令用到的配置选项信息

8.2.12 全量恢复

恢复方法采用prepare + copy-back

[root@jeames ~]# xtrabackup --prepare --target-dir=/bk/full

此时关闭数据库systemctl stop mysqld

[root@jeames ~]# xtrabackup --copy-back --target-dir=/bk/full --datadir=/var/lib/mysql

[root@jeames ~]# chown -R mysql:mysql /var/lib/mysql

恢复解读:

(1)prepare的作用 一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。 因此,此时数据文件仍处于不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。在实现“准备”的过程中,xtrabackup通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。

(2)xtrabackup命令的--copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR(数据文件)目录中来执行恢复过程。

(3)当数据恢复至DATADIR目录以后,还需要确保所有数据文件的属主和属组均为正确的用户,如mysql, 否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。