1.准备环境(新实例)
2.下载备份
3.解压和恢复备份
4.启动新实例
一、准备环境
1.确认RDS实例是MySQL 8.0、5.7、5.6、5.5高可用版(本地盘)。
2.确认RDS实例中的表没有通过TDE加密,实例中如果存在加密过的表,会导致恢复过程出错,请先对已加密的表执行解密操作。
3.准备一台Linux 64位系统的电脑或服务器。确认Linux服务器上已安装MySQL服务,且MySQL版本与RDS MySQL版本相同(例如都是5.7)
4.在Linux服务器上,安装Percona XtraBackup。
对于MySQL 5.7、5.6或5.5实例:安装Percona XtraBackup 2.4。
对于MySQL 8.0实例,安装Percona XtraBackup 8.0。
二、下载备份
1.复制外网下载地址
2.在Linux服务器上,执行如下命令下载物理备份。
wget -c 'http://...' -O test1_qp.xb
三、解压和恢复备份
1.在Linux服务器上,创建一个目录(例如/home/mysql/data)用于存放解压后的文件。
mkdir /home/mysql/data
2.解压压缩包。根据压缩包的后缀选择解压命令。
tar -izxvf test1.tar.gz -C /home/mysql/data
3.执行如下命令,查询解压后生成的文件
ls -l /home/mysql/data
4.执行如下命令,恢复解压好的备份文件。
## 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
四、启动MySQL
1.为避免版本问题,需修改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
2执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /home/mysql/data
3.执行如下命令,启动MySQL进程。
mysqld --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
网友评论