0
点赞
收藏
分享

微信扫一扫

使用xtrabackup不停机完成T级生产数据库的迁移。

   在Centos宣布Centos7将在2024年6月停止维护的大背景下,很多企业特别是国企、事业单位要求进行操作系统的国产化改造,在生产环境中,这种改造最稳妥的方式无异于数据迁移重做主从,但是数据量一旦过大,操作的风险就会更高,如果操作不当,很有可能造成数据的损失,在此情况下,数据库物理备份工具xtrabackup无疑是第一选择。

1、xtrabackup的安装

这里采用二进制安装的方式,节省更多的时间、提高效率:

Ⅰ、wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/tarball/percona-xtrabackup-2.4.9-Linux-x86_64.tar.gz #下载二进制文件

Ⅱ、通过ftp工具或者scp方式上传二进制包。

Ⅲ、tar -xvf percona-xtrabackup-2.4.9-Linux-x86_64.tar.gz -C /usr/local

      cd /usr/local;mv percona-xtrabackup-2.4.9-Linux-x86_64 xtraback解压二进制包、更改包名

     ps:在这里遇到一个小问题,下载的过程因网络不稳定造成包不完整(UDP传输),如果存在这种情况,会出现解压过程异常,请注意输出。

Ⅳ、在/etc/profile中添加环境变量并source

export PHP_HOME=/usr/local/php
PATH=$PATH:$PHP_HOME/bin:/usr/local/xtrabackup/bin
export PATH

Ⅴ、验证安装结果

2、开始备份生产数据库,虽然是热备,但是也应在业务少时操作,因为备份会占用大量cpu与io资源,特别是输出在nfs中特别明显。

 innobackupex --defaults-file=/etc/my.cnf --user=root -H 192.168.0.2 --password="yourpasswd" /data1/data192.168.0.2

#这里的data1是nfs,在生产环境中可采用这种方式,省去一步传输与cp的步骤。

3、备份完之后合并数据与事务文件

 innobackupex --defaults-file=/etc/my.cnf --apply-log /data1/data192.168.0.2/time

4、停止从库、删除从库数据文件

service stop mysqld;cd /var/lib/mysql/;rm -rf ./*;

5、开始恢复文件

innobackupex --copy-back /data1/data192.168.0.2/time/

6、更改文件属主

chown -R mysql;mysql /var/lib/mysql

7、启动数据库

systemctl start mysqld ;#启动数据库

8、重建主从、验证主从状态。

mysql -uroot -p 

reset slave

change master to master_host='ipv4/ipv6',master_user='repl',master_password='passwd',master_log_file='mysql-bin.012917',master_log_pos=212170112;

show slave status;

9、当应用需要切换数据库时,将一台从库的binlog开启,停止slave进程并reset slave,关闭只读,另一台即可同步本台数据库数据。

在这里做了一个测试,我们生产一个数据库大小约为1T,备份时长单线程约1个半小时,恢复时长约3个半小时。还有一套数据库大小约300G,备份时长约半小时,恢复时长约1小时,这里可以做个参考。


举报

相关推荐

0 条评论