mysql备份工具innobackupex迁移恢复数据

您所在的位置:网站首页 mysql恢复备份文件 mysql备份工具innobackupex迁移恢复数据

mysql备份工具innobackupex迁移恢复数据

2023-05-17 02:48| 来源: 网络整理| 查看: 265

--redo-only 不回滚未提交事务

--copy-back 恢复备份目录

一些常用的其他可选参数:

--lock-wait-query-type 该参数允许用户指定,哪类的SQL语句是需要Flush table with read lock等待的

--lock-wait-threshold 运行超过这个时间的查询才算长查询

--lock-wait-timeout 等待长查询多少时间后再尝试FTWRL,一旦Flush table with read lock被阻塞超过预定时间,则XtraBackup出错返回退出,参数允许用户指定了超过该阈值时间的查询会被Kill,同时也允许用户指定Kill

全量备份:

innobackupex --user=root --password=xxxx --datadir=/var/lib/mysql /mysql_bkup/

#datadir是mysql数据data存储路径,可以到my.cnf里面查看。mysql_bkup备份存放路径。默认会以时间命名备份目录。

#合并数据,使数据文件处于一致性的状态:

innobackupex --apply-log /mysql_bkup/2022-08-03_21-14-37/

异机恢复准备:

1、使用scp命令将/mysql_bkup/2022-08-03_21-14-37/转移到目标新服务器数据库。

2、新服务器mysql服务关停。将datadir数据存储目录下的数据删除。这里建议改名,然后再新建一个(datadir路径可从my.cnf配置文件里面查看)。

恢复数据:

按上面做好了恢复准备,使用命令恢复。

innobackupex --copy-back /mysql_bkup/2022-08-03_21-14-37/

或者:

innobackupex --copy-back --datadir=/var/lib/mysql /mysql_bkup/2022-08-03_21-14-37/

恢复以后注意使用chown重置目录权限,然后将mysql服务重新启动。

如果数据库迁移过程是在运行的,数据有更新,就需要增量备份。

增量备份:

--incremental 创建增量备份

--incremental-basedir 指定包含完全备份的目录

--incremental-dir 指定包含增量备份的目录

#合并全备数据目录,确保数据的一致性

innobackupex --apply-log --redo-only /mysql_bkup/2022-08-03_21-14-37/

#创建增量备份

innobackupex --user=root --password=xxx --incremental /mysql_bkup_add/ --incremental-basedir=/mysql_bkup/2022-08-03_21-14-37/

#将增量备份数据合并到全备数据目录当中

innobackupex --apply-log /mysql_bkup/2022-08-03_21-14-37/ --incremental-dir=/mysql_bkup_add/增量备份/

#数据一致性

innobackupex --apply-log /mysql_bkup/2022-08-03_21-14-37

#恢复数据:

innobackupex --copy-back /mysql_bkup/2022-08-03_21-14-37

#恢复到异地也是需要scp迁移到新服务器,按上面说明先停止服务,删除data数据再操作。

增量备份可以是多次,以下是多次增量备份示例:

#进行第一次全备

[root@ebs~]#innobackupex --datadir=/var/lib/mysql --user=root --password=xxx ./bkup

#进行第一次增备,基于上次的全备

[root@ebs ~]#innobackupex --datadir=/var/lib/mysql --user=root --password=xxx --incremental ./bkup/incer1 --incremental-basedir=./bkup/2022-04-23_11-39-31

#进行第二次全备,基于第一次增备

[root@ebs ~]#innobackupex --datadir=/var/lib/mysql --user=root --password=xxx --incremental ./bkup/incer2 --incremental-basedir=./bkup/incer1/2022-04-23_11-47-10

--incremental 创建增量备份

--incremental-basedir 指定包含完全备份的目录

--incremental-dir 指定包含增量备份的目录

##########################恢复时进行数据整合####################################################

#对整合的开始备份集——全备集应用日志,并指定"--redo-only"表示开始进入日志追加

innobackupex --apply-log --redo-only ./bkup/2022-04-23_11-39-31/

#对第一个增备集进行"准备",将其追加到全备集中

innobackupex --apply-log --redo-only ./bkup/2022-04-23_11-39-31/ --incremental-dir=./bkup/incer1/2022-04-23_11-47-10/

#对第二个增备集进行"准备",将其追加到全备集中,但是不再应用"--redo-only",表示整合的结束点

innobackupex --apply-log ./bkup/2022-04-23_11-39-31/ --incremental-dir=./bkup/incer2/2022-04-23_11-53-19/

#对整合完成的全备集进行一次整体的"准备"

innobackupex --apply-log ./bkup/2022-04-23_11-39-31/

###################进行数据的恢复#############################

innobackupex --copy-back --datadir=/var/lib/mysql ./bkup/2022-04-23_11-39-31/

#如果是异地恢复,需要scp迁移过去再执行。

###############修改目录权限并启动mysql###########

chown mysql:mysql -R /usr/local/mysql/data && systemctl start mysqld

官方文档给出的恢复步骤:

innobackupex --apply-log --redo-only BASE-DIR

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

innobackupex --apply-log BASE-DIR

innobackupex --copy-back BASE-DIR返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3