设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
mysql备份工具innobackupex迁移恢复数据
返回列表
发新帖
mysql备份工具innobackupex迁移恢复数据
[复制链接]
|
主动推送
29
|
0
|
2024-9-11 14:58:10
|
显示全部楼层
|
阅读模式
适用场景:数据量比较大,通常以G计算,常规sql导入导出数据庞大容易出错。要将其他地方的mysql迁移到我司弹性云服务器,这时候就可以考虑使用innobackupex来备份迁移。先决条件:linux系统服务器,原数据库服务器支持ssh登陆,拥有控制管理权限。原数据库服务器和现在服务器都需要安装innobackupex。注意:以下示例来源于网上,路径均为示例,具体以实际路径为准,请充分了解并有相关备份再操作。
安装:wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.21/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL #安装依赖包 rpm -ivh percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm --nodeps --force
innobackupex常用选项: --host 指定主机 --user 指定用户名 --password 指定密码 --port 指定端口 --databases 指定数据库 --incremental 创建增量备份 --incremental-basedir 指定包含完全备份的目录 --incremental-dir 指定包含增量备份的目录,增量备份目录 --apply-log 对备份进行预处理操作,一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。 --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
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
素色流年783
102
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装