阿里云MySQL物理备份文件恢复到自建数据库

2021年4月27日10:23:58 发表评论
摘要

【心语】面子是一个人最难放下的,又是最没用的东西。当你越是在意它,它就会越发沉重,越发让你寸步难行,一个人最大的体面,是放下面子。

简介
开源软件Percona Xtrabackup可以用于对数据库进行备份恢复,可以使用该软件将云数据Mysql的备份文件恢复到自建数据库中,本文将介绍详细操作步骤
。按照时间点的区间范围恢复-----恢复单条数据
。将INSERT INTO语句改为 REPLACE  INTO导入数据---如果存在相同的值则不会插入数据
一、前提条件

  • Mysql8.0高可用版(本地SSD盘)
  • Mysql5.7高可用版(本地SSD盘)
  • Mysql5.6
  • Mysql5.5
    说明:阿里云基础版实例仅提供快照备份,无法下载

二、注意事项

  • 自建Mysql数据库安装在64位的Linux中,且与阿里云数据库Mysql版本相同
  • 由于软件限制,目前只支持将云数据库Mysql的备份文件恢复到安装在linux系统中的自建Mysql数据库中

三、准备工作

  • 安装数据库恢复工具Percona XtraBackup 2.4
    。Mysql5.6及之前的版本需要安装Percona XtraBackup 2.3
    。Mysql5.7版本需要安装Percona XtraBackup 2.4
    。Mysql8.0版本需要安装Percona XtraBackup 8.0
  • 说明:本文实际操作为Mysql5.7,并省略了Mysql自建数据库安装,有需要安装可以查看本站Mysql数据库搭建
  • 安装解压工具qpress
    1、下载安装包
    [root@localhost ~]# wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar"
    [root@localhost ~]# tar xf qpress-11-linux-x64.tar -C /usr/local
    [root@localhost ~]# chmod 755 /usr/local/qpress
    [root@localhost ~]# cp /usr/local/qpress /usr/bin/
  • 安装Percona XtraBackup 2.4工具
    2、从github上获取源代码
    git clone https://github.com/percona/percona-xtrabackup.git
    cd percona-xtrabackup
    git checkout 2 .4
    3、Percona XtraBackup需要GCC 5.3或更高版本。如果系统上安装的GCC版本较低,则可能需要在基于RPM的发行版上安装并启用Developer toolset7,以确保使用最新的GCC编译器和开发工具。然后,安装cmake和其他依赖项:
    yum install cmake openssl-devel libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel zlib-devel vim-common –y
    [root@localhost ~]#cd percona-xtrabackup/
    [root@localhost percona-xtrabackup]# mkdir build
    [root@localhost percona-xtrabackup]# cd build/
    [root@localhost build]# cmake -DWITH_BOOST=PATH-TO-BOOST-LIBRARY -DDOWNLOAD_BOOST=ON -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF -B ..
    阿里云MySQL物理备份文件恢复到自建数据库
    [root@localhost ~]#make && make install
    阿里云MySQL物理备份文件恢复到自建数据库
    安装完成
    root@localhost bin]# ln -s /usr/local/xtrabackup/bin/* /usr/bin/ \\ 创建软链接
  • 恢复操作步骤
    。登录阿里云找到RDS实例
    。在鼠标备份列表中找到要下载的数据备份,并下载
    。复制外网下载链接直接使用浏览器下载即可
    。浏览器下载完成之后直接RZ上传到服务器
    。也可以使用wget –c 下载也行
    阿里云MySQL物理备份文件恢复到自建数据库。已上传至服务器阿里云MySQL物理备份文件恢复到自建数据库
  • 说明
    本文以自定义路径/data/soft/mysql/,你可以根据实际情况将其替换成实际路径
    [root@localhost soft]# mkdir -p /data/soft/mysql/
  • 目前物理备份集文件有几种格式:
    。tar 压缩包(.tar.gz后缀)
    。xbstream 压缩包(.xb.gz后缀)
    。xbstream 文件包(_qp.xb 后缀)
    。xbstream qpress 压缩包 (_xb.qp后缀)
  • 本文只介绍xbstream 文件包(_qp.xb 后缀)
    。解包
    [root@localhost ~]# cat hins16187786_data_20210424183010_qp.xb |xbstream -x -v -C /data/soft/mysql/
    阿里云MySQL物理备份文件恢复到自建数据库
  • 解包之后会生成如下文件
    。MySQL 5.6/5.7解压
    [root@localhost mysql]# innobackupex --decompress --remove-original /data/soft/mysql/
    阿里云MySQL物理备份文件恢复到自建数据库。解压后的文件跟解包的文件对比阿里云MySQL物理备份文件恢复到自建数据库
  • 执行如下命令,恢复解压好的备份文件
    。Mysql5.6/5.7执行如下命令
    [root@localhost mysql]# innobackupex --defaults-file=/data/soft/mysql/backup-my.cnf --apply-log /data/soft/mysql/
    。返回如下结果说明成功! 阿里云MySQL物理备份文件恢复到自建数据库完成
  • 为避免版本问题,需要修改backup-my.cnf参数,具体操作步骤如下
    [root@localhost mysql]# vim /data/soft/mysql/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阿里云MySQL物理备份文件恢复到自建数据库说明:如果自建数据库使用的是MyISAM引擎,和阿里云的lnnoDB 不兼容,需要多注释掉如下参数并增加skip-grant-tables
    #innodb_log_checksum_algorithm=strict_crc32
    #redo_log_version=1
    skip-grant-tables
    。如果自建数据库使用的是MyIAM引擎,且对系统表进行操作时报错(存储引擎相关),请按如下操作进行存储引擎的转换:
    alter table <表名> engine=myisam;
    。执行如下命令,修改文件属性,并确定文件所属为Mysql用户
    [root@localhost mysql]# chown -R mysql.mysql /data/soft/mysql/
    。执行如下命令启动Mysql 进程
    [root@localhost mysql]# mysqld --defaults-file=/data/soft/mysql/backup-my.cnf --user=mysql --datadir=/data/soft/mysql &阿里云MySQL物理备份文件恢复到自建数据库说明:启动是有报错,但是不影响数据恢复成功!阿里云MySQL物理备份文件恢复到自建数据库数据库能正常链接。检查数据都在 完成!
  • 微信公众号
  • 这是我的微信公众号扫一扫
  • weinxin
  • 我的QQ技术群
  • 我的QQ技术群扫一扫
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: