• 使用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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 恢复备份文件命令:

    解压

    gzip -d  my_test_back.xb.gz
    
    • 1

    解包

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

    解压(这一步需要有qpress)

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

    prepare:

    xtrabackup --prepare --target-dir=/xxx/xxx/
    
    • 1
    • 遇到问题:
    问题:
    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文件后,要使更改生效,好像要重启会话。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 具体从备份文件恢复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=/目的路径/
    
    • 1

    压缩到一个xb压缩包里:

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

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

    用epel国内源:
    wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    然后就可以:
    yum install zstd
    
    • 1
    • 2
    • 3
    • 4
    • 5

    解包

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

    解压

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

    prepare:

    xtrabackup --prepare --target-dir=/xxx/xxx/
    
    
    • 1
    • 2
    • 报错说明:

    如果报这个错误,可能就是没有执行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
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    学习react 笔记一
    桌面版Teams,打开后一直卡在“正在加载Microsoft Teams”界面
    动态代理原理和设计模式详解
    第六章、Python 装饰函数
    利用 Python PyPDF2库轻松提取PDF文本(及其他高级操作)
    ZZNUOJ_用C语言编写程序实现1559:打印一颗树(附完整源码)
    CentOS7 安装K8S 单节点
    mysql基础 --函数
    2023.10.17
    [BSidesCF 2019]Kookie 1 , cookie伪造
  • 原文地址:https://blog.csdn.net/qq_44821149/article/details/134063547