将阿里云RDS的数据备份文件恢复到本地数据库合理,后期优化对表结构做了改动,导致部分活跃用户的注册数据丢失,所以想恢复里面误删的数据mysql。好在RDS每天都会自动备份数据文件,官方也提供了恢复云数据库mysql的备份文件,去自建数据库的文档看,就不细说了。本文主要记录恢复数据的过程,供大家参考:前提:本地mysql数据库安装在64位Linux系统上,版本与RDS相同。操作系统已安装数据恢复工具PerconaXtraBackup2.2.9及以上版本。数据备份文件解压工具rds_backup_extract.sh已安装在操作系统中,点击下载。准备工作 mysql的安装就不详细说了,主要和RDS版本一样。PerconaXtraBackup官方安装也提供了详细的文档,按照步骤操作即可。本文使用Centos7,不同的Linux系统可以参考相应的文档。系统版本 installpercona-xtrabackup安装依赖包yuminstallhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm查看依赖包百胜列表|greppercona安装PerconaXtraBackupyuminstallpercona-xtrabackup-22下载RDS数据备份文件 文档有详细说明,按照文档下载要恢复的文件即可,文件格式为.tar.gz压缩文件启动恢复数据下载官方文档提供的数据备份文件解压工具rds_backup_extract.sh,并添加可执行权限解压数据备份文件。 chmod+xrds_backup_extract.sh bashrds_backup_extract.sh-f<数据备份文件名>.tar.gz-C/var/backup执行以下命令恢复解压后的备份文件,如果系统有返回like如果结果显示备份文件成功恢复到本地数据库 innobackupex--defaults-file=/var/backup/backup-my.cnf--apply-log/var/backup修改文件属主,确认文件属于MySQL用户 chown-Rmysql:mysql/var/backup/Modify/var/backup/backup-my.cnf,文件中修改内容如下:注意innodb_fast_checksum,innodb_page_size,innodb_log_block_size,但是在实际运行中,启动mysql进程是报错的:未知变量*,所以做了一些修改:启动mysql进程 mysqld_safe--defaults-file=/var/backup/backup-my.cnf--user=mysql--datadir=/var/backup/,你需要注意/var/backup/目录有相应的权限,否则mysql启动会报错。登录mysql,文档中给出的命令是mysql-uroot,但是登录时报错,查看mysql日志文件:/var/backup/iZbp1f8l5dgkfqafh6rla0Z.err,mysqlsocket文件路径为/tmp/mysql.sock,mysql-uroot-S/tmp/mysql.sock,登录成功。导出数据:mysqldump-uroot-S/tmp/mysql.sock数据库名>/tmp/数据库名.sql
