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文件后,要使更改生效,好像要重启会话。
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