一、准备
1.安装mysql5.7 注意:需要跟rds云数据库版本对应
2.安装Percona XtraBackup
工具,将解压后的备份文件恢复到自建数据库的数据目录中
3.下载需要还原的物理备份文件 我的是.qp类型
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O ins24382148_data_20240117022004_xb.qp
路径前后需要用'',否则会路径解析错误
4.创建备份解压路径(/data/mysqldatabak),用于存放解压后的备份文件。
sudo mkdir /data/mysqldatabak
5.创建自建数据库mysql 数据存储文件夹
sudo mkdir /data/mysql
二、解压文件
1.解压
qpress -do ins24382148_data_20240117022004_xb.qp | xbstream -x -v -C /var/mysql_bkdata/
三、恢复数据
1.innobackupex --defaults-file=/data/mysqldatabak/backup-my.cnf --apply-log /data/mysqldatabak/
--defaults-file 通过传入配置文件设置MySQL默认选项。RDS MySQL备份文件中,提供名为backup-my.cnf
的配置文件,该文件位于备份解压目录,即/data/mysqldatabak/。
--apply-log XtraBackup工具的准备命令。该命令后配置存放备份文件的目录,即备份解压目录/data/mysqldatabak/。
出现 completed OK 即为成功
2.修改自建数据库配置文件my.cnf
。
找到自己数据库的配置文件修改datadir为自己定义的数据库data文件夹 我的是/data/mysql
3.在my.cnf
中添加如下内容
innodb_undo_tablespaces=0
innodb_undo_directory=/data/mysql
**注意 参数innodb_undo_tablespaces的取值需要与/data/mysqldatabak/backup-my.cnf
中的取值相同,您可以使用cat /data/mysqldatabak/backup-my.cnf | grep innodb_undo_tablespaces
查询。
4.恢复数据
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysqldatabak/
--defaults-file |
自建数据库的 |
--copy-back |
XtraBackup工具的恢复命令。 该命令后配置存放备份文件的目录,即备份解压目录/data/mysqldatabak/,XtraBackup工具将此目录数据恢复到自建数据库的数据目录中。 |
5.启动数据库
1.首先要为新的数据库文件夹授权
sudo chown -R mysql:mysql /data/mysql
2.编辑配置文件
lower_case_table_names=1
3. 启动mysql即可