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

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

开源软件Percona Xtrabackup可以用于对数据库进行备份恢复;

前提条件:

			数据库:MySQL 5.6
			系统:Linux7.6的操作系统

开源软件Percona Xtrabackup可以用于对数据库进行备份恢复,操作系统中已安装数据恢复工具Percona XtraBackup。
MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3,安装指导请参见官方文档Percona XtraBackup 2.3。
安装xtrabackup
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-22
yum install qpress

检测是否安装成功
xtrabackup --version
innobackupex --version

MySQL 5.7版本需要安装 Percona XtraBackup 2.4,安装指导请参见官方文档Percona XtraBackup 2.4。
MySQL 8.0版本需要安装 Percona XtraBackup 8.0,安装指导请参见官方文档Percona XtraBackup 8.0。
数据备份文件的格式为xbstream文件包 (_qp.xb 后缀),本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同

备份恢复操作步骤

1.登录RDS管理控制台。
2.在页面左上角,选择实例所在地域。
3.找到目标实例,单击实例ID。
4.在左侧导航栏中单击备份恢复。
5.选择数据备份标签页。
6.选择查询的时间范围,然后单击查询。
7.在数据备份列表中,找到要下载的数据备份,并单击其右侧的下载。

阿里云rds物理备份文件恢复到自建数据库_第1张图片

8.在实例备份文件下载窗口,单击复制外网地址,获取数据备份文件外网下载地址。

阿里云rds物理备份文件恢复到自建数据库_第2张图片

9.登录云服务器ECS。
10.执行如下命令,下载数据备份文件。

wget -c ‘<数据备份文件外网下载地址>’ -O <自定义文件名>.tar.gz
阿里云rds物理备份文件恢复到自建数据库_第3张图片

举例:

阿里云rds物理备份文件恢复到自建数据库_第4张图片
在这里插入图片描述

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

因为生成的文件是xbstream,对于xbstream 文件包 (_qp.xb 后缀),使用命令:
我本地MySQL安装路径:/usr/local/mysql

解包

cat <数据备份文件名>_qp.xb | xbstream -x -v -C /usr/local/mysql/data
在这里插入图片描述

解压

innobackupex --decompress /usr/local/mysql/data

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

ls -l /usr/local/mysql/data
命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时RDS实例所包含的数据库
阿里云rds物理备份文件恢复到自建数据库_第5张图片

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

innobackupex --defaults-file=/usr/local/mysql/data/backup-my.cnf --apply-log /usr/local/mysql/data
阿里云rds物理备份文件恢复到自建数据库_第6张图片

14.为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。
(1).执行如下命令,以文本方式编辑backup-my.cnf文件。
	vi /usr/local/mysql/data/backup-my.cnf
(2).自建数据库不支持如下参数,需要注释掉。

阿里云rds物理备份文件恢复到自建数据库_第7张图片

15.执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /usr/local/mysql/data

15.1增加配置文件。

在/etc目录下创建mysql的配置文件my.cnf,内容如下:
vim /etc/my.cnf

[mysqld]

datadir = /usr/local/mysql/data/
port = 3306
server_id = 1
socket = /usr/local/mysql/data/mysqld.sock
max_allowed_packet=32M
log-error = /usr/local/mysql/data/error.log
default-storage-engine=INNODB
lower_case_table_names=1
group_concat_max_len = 102400
max_allowed_packet = 8M
key_buffer_size = 12M
sort_buffer_size = 1M
read_buffer = 1M

16.启动mysql

my.cnf文件创建完毕后,我们现在来启动mysql。注意:RDS备份数据库中只有root这一个用户且没有密码,所以无需输入密码直接按回车进入。
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
mysql -h127.0.0.1 -uroot -p

重置mysql数据库密码 参考 https://www.cnblogs.com/itor/p/6339505.html

17.修改所有root密码、设置允许远程登陆

创建root用户密码,并赋予其他主机其连接权限。这样操作完毕后,可以使用其他客户端连接mysql了。
use mysql;
update user set password=password(‘123456’) where user=‘root’;
update user set host=’%’ where user=‘root’ && host=‘127.0.0.1’;
flush privileges;

你可能感兴趣的:(阿里云rds物理备份文件恢复到自建数据库)