zoukankan      html  css  js  c++  java
  • 阿里云 RDS MySQL物理备份文件恢复到自建数据库

    MySQL 5.7高可用版

    恢复前的准备工作包括如下几项:

    • 安装数据恢复工具Percona XtraBackup 2.4
      • MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3,安装指导请参见官方文档Percona XtraBackup 2.3
      • MySQL 5.7版本需要安装 Percona XtraBackup 2.4,安装指导请参见官方文档Percona XtraBackup 2.4
      • MySQL 8.0版本需要安装 Percona XtraBackup 8.0,安装指导请参见官方文档Percona XtraBackup 8.0
    • 安装解压工具qpress

      innobackupex解压命令需要安装qpress,使用如下命令安装:

      wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar"
      tar xvf qpress-11-linux-x64.tar
      chmod 775 qpress
      cp qpress /usr/bin

      执行如下命令,解压已下载的数据备份文件。

      目前物理备份集文件有几种格式:

      • tar 压缩包 (.tar.gz 后缀)
      • xbstream 压缩包 (.xb.gz 后缀)
      • xbstream 文件包(_qp.xb 后缀)
      • xbstream qpress压缩包(_xb.qp后缀)
      • 对于tar 压缩包 (.tar.gz 后缀),使用命令:
        tar -izxvf <数据备份文件名> -C /home/mysql/data

        对于xbstream 压缩包 (.xb.gz 后缀),使用命令:

        gzip -d -c <数据备份文件名> | xbstream -x -v -C /home/mysql/data

        对于xbstream 文件包(_qp.xb 后缀),使用命令:

        ## 解包
        cat <数据备份文件名> | xbstream -x -v -C /home/mysql/data
        
        ## MySQL 5.6/5.7解压
        innobackupex --decompress --remove-original /home/mysql/data
        ## MySQL 8.0解压
        xtrabackup --decompress --remove-original --target-dir=/home/mysql/data
                            

        对于xbstream qpress压缩包(_xb.qp后缀),使用命令:

        qpress -do  <数据备份文件名>  | xbstream -x -v -C /home/mysql/data

        执行如下命令,查询解压后生成的文件

        ls -l /home/mysql/data

        执行如下命令,恢复解压好的备份文件

        ## MySQL 5.6/5.7
        innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
        
        ## MySQL 8.0
        xtrabackup --prepare --target-dir=/home/mysql/data
        xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/home/mysql/data

        恢复时请耐心等待,若系统返回如下类似结果,则说明备份文件已成功恢复到自建数据库

      • 若系统返回如下报错,可以用rm -rf /var/lib/mysql命令清空文件夹内文件,然后用chown -R mysql:mysql /var/lib/mysql修改权限。

      •  请确保您的Percona XtraBackup版本正确:

        • MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3,安装指导请参见官方文档Percona XtraBackup 2.3
        • MySQL 5.7版本需要安装 Percona XtraBackup 2.4,安装指导请参见官方文档Percona XtraBackup 2.4
          $ wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/
          binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
          $ yum localinstall percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
        • MySQL 8.0版本需要安装 Percona XtraBackup 8.0,安装指导请参见官方文档Percona XtraBackup 8.0
      • 为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。
        •   执行如下命令,以文本方式编辑backup-my.cnf文件。
          vi /home/mysql/data/backup-my.cnf

          添加如下参数:

          lower_case_table_names=1

          注释掉如下自建数据库不支持的参数:

          #innodb_log_checksum_algorithm
          #innodb_fast_checksum
          #innodb_log_block_size
          #innodb_doublewrite_file
          #innodb_encrypt_algorithm
          #rds_encrypt_data
          #redo_log_version
          #master_key_id
          #server_uuid

          如果自建数据库使用的是MyISAM引擎,和阿里云的InnoDB不兼容,需要多注释掉如下参数并增加skip-grant-tables参数:

          #innodb_log_checksum_algorithm=strict_crc32
          #redo_log_version=1
          skip-grant-tables

          如果自建数据库使用的是MyIAM引擎,且对系统表进行操作时报错(存储引擎相关),请按如下操作进行存储引擎的转换:

          alter table <表名> engine=myisam;

          执行如下命令,修改文件属主,并确定文件所属为MySQL用户

          chown -R mysql:mysql /home/mysql/data

          执行如下命令,启动MySQL进程。

          mysqld --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

          如果Ubuntu操作系统报如下错误,是Ubuntu自带安全程序AppArmor导致的,请使用apt install -y apparmor-utilsaa-complain /usr/sbin/mysqld命令修改AppArmor设置。

        •  执行如下命令,登录MySQL数据库以验证进程启动成功

          mysql -u<源RDS实例账号> -p<对应密码>

  • 相关阅读:
    Dom4j使用Xpath语法读取xml节点
    XML新手入门 创建构造良好的XML(2)
    XML新手入门 创建构造良好的XML(1)
    详解Java解析XML的四种方法
    Java中加载配置文件的集中方式,以及利用ClassLoader加载文件 .
    javaSE读取Properties文件的六种方法
    select
    socket
    socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
    grep 多模式匹配
  • 原文地址:https://www.cnblogs.com/zhujingxiu/p/14338851.html
Copyright © 2011-2022 走看看