使用XtraBackUp innobackupex备份数据库

xtrabackup version 2.4.28场景:

  • 备份命令:

该命令压缩成一个压缩文件

#  /usr/bin/innobackupex -> xtrabackup
# innobackupex 是xtrabackup的一个软连接,其实是一个命令

innobackupex  --no-lock   --socket=/xxx/mysql_3306.sock  --datadir=/xxx/    --user='数据库账号' --password='密码'  --stream=xbstream   --compress   /目的目录/ |gzip > /目的目录/my_test_back.xb.gz

(没必要再gzip压缩了,直接下面这样就行)
压缩到xb文件:
innobackupex  --no-lock   --socket=/xxx/mysql_3306.sock  --datadir=/xxx/    --user='数据库账号' --password='密码'  --stream=xbstream   --compress   /目的目录/  > /目的目录/my_test_back.xb
  • 恢复备份文件命令:

解压

gzip -d  my_test_back.xb.gz

解包

 xbstream -x < ./my_test_back.xb    -C /xxx/xxx/ 

解压(这一步需要有qpress)

xtrabackup --decompress --remove-original --target-dir=/xxx/xxx/

prepare:

xtrabackup --prepare --target-dir=/xxx/xxx/
  • 遇到问题:
问题:
innobackupex备份数据库,因为打开文件太多报错。
InnoDB: Error number 24 means 'Too many open files'
InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
InnoDB: File ./test_db/test_table.ibd: 'open' returned OS error 124. Cannot continue operation
InnoDB: Cannot continue operation.

参考链接:
https://zhuanlan.zhihu.com/p/554742192


解决方案:
增加系统允许的最大打开文件数。在Linux系统中,可以通过修改/etc/security/limits.conf文件来实现。例如,将以下内容添加到文件中:
你的系统用户名 soft nofile 65535
你的系统用户名 hard nofile 65535

修改/etc/security/limits.conf文件后,要使更改生效,好像要重启会话。

  • 具体从备份文件恢复mysql过程:

https://blog.csdn.net/qq_44821149/article/details/131174709


xtrabackup version8.0.34场景:

参考文档:https://docs.percona.com/percona-xtrabackup/8.0/create-compressed-backup.html#version-updates

  • 压缩备份

压缩到一个目录:

xtrabackup   --user='数据库账号'   --password='数据库密码'   --no-lock  --socket=/xxx/mysql_3306.sock    --datadir=/mysql数据路径/     --backup --compress   --compress-threads=4  --target-dir=/目的路径/

压缩到一个xb压缩包里:

xtrabackup  --user='数据库账号'   --password='数据库密码'   --no-lock  --socket=/xxx/mysql_3306.sock    --datadir=/mysql数据路径/     --backup --compress   --compress-threads=4 --target-dir=/目的路径/ --stream=xbstream   >test.xb

安装zstd(解压zst的时候需要)

用epel国内源:
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

然后就可以:
yum install zstd

解包

 xbstream -x < ./my_test_back.xb    -C /xxx/xxx/ 

解压

xtrabackup --decompress --remove-original --target-dir=/xxx/xxx/

prepare:

xtrabackup --prepare --target-dir=/xxx/xxx/

  • 报错说明:

如果报这个错误,可能就是没有执行prepare那一步导致的。

Neither found #innodb_redo subdirectory, nor ib_logfile* files in ./

2023-11-02T12:46:21.115604Z 1 [ERROR] [MY-013862] [InnoDB] Neither found #innodb_redo subdirectory, nor ib_logfile* files in ./
2023-11-02T12:46:21.115657Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2023-11-02T12:46:21.598001Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2023-11-02T12:46:21.598183Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2023-11-02T12:46:21.598248Z 0 [ERROR] [MY-010119] [Server] Aborting
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

confined.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值