最近更新时间:2023.07.14 19:28:31
首次发布时间:2022.12.14 21:15:41
本文介绍如何将云数据库 MySQL 版的物理备份文件恢复到自建数据库。支持使用以下备份文件或备份文件的组合进行恢复:
对于 MySQL 5.7 版本实例,需安装 Percona XtraBackup 2.4。
对于 MySQL 8.0 版本实例,需安装 Percona XtraBackup 8.0。
如果您当前的自建数据库正在运行其他业务,恢复云数据库 MySQL 版的物理备份到此数据库后,原有业务将不可用。
本文介绍的恢复方案是将数据恢复到自建数据库的一个新建的数据库数据目录中,对自建数据库中原数据无影响。
在自建库服务器上,为备份文件创建数据目录。此处以 /home/mysql/data
为例。
说明
如果有多个备份文件,则需要为每个备份文件创建数据目录。
mkdir /home/mysql/data
解压备份文件。此处,备份文件的本地路径以 /data/backup.xbstream
为例。
说明
如果有多个备份文件,则需要多次执行此命令,将每个备份文件解压到不同的数据目录中。
xbstream -x --parallel=4 -C /home/mysql/data < /data/backup.xbstream
Prepare 备份数据。
xtrabackup --prepare --target-dir=/home/mysql/data
当显示如下日志时,prepare 成功。
如果有多个增量备份文件,则需要按照从早到晚的顺序,对每份增量备份执行 prepare 操作。
xtrabackup --prepare --target-dir=/home/mysql/data --incremental-dir=<增量备份解压的目录>
注意
如果存在增量备份,除最后一个增量备份以外,其他备份文件的 --prepare
都需要加上 --apply-log-only
参数。
修改数据文件属性。
chown -R mysql:mysql /home/mysql/data
启动 MySQL。
mysqld --defaults-file=/home/mysql/data/my.cnf --user=mysql --datadir=/home/mysql/data &
说明
my.cnf 为自建数据库的配置文件。
登录数据库。
使用在源数据库实例设置的账号的密码进行登录。
mysql -u<源 RDS 实例账号> -p<对应密码>
--skip-grant-tables
参数重新启动 mysqld 以跳过鉴权,在该模式下修改 root 用户密码。修改后,重新启动 mysqld,即可使用 root 用户身份登录。