• 使用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
  • 相关阅读:
    基于WPF技术的换热站智能监控系统16--动态数据绑定
    C# 使用AForge调用摄像头
    【Python】自定义函数、lambda函数与内置函数
    技术分享 | ClickHouse 冷热存储分离方案线上实践
    小程序源码:新款最火表情包壁纸独立后台美化二开版本新增加喝酒神器功能-多玩法安装简单
    ARP协议详解
    Dynamic CRM一对多关系的数据删除时设置自动删除关联的数据
    java毕业设计基于javaweb+mysql数据库实现的在线学习网站|在线课堂含论文+开题报告
    java Locale类使用
    PHP代码示例 - 创建、读取、增加、删除、修改 xml
  • 原文地址:https://blog.csdn.net/qq_44821149/article/details/134063547