阿里云官方帮助文档:https://help.aliyun.com/knowledge_detail/41817.html
先说一下大概步骤,回头上图说明,
数据库还原过几次 踩过几次坑,今天生产环境又TM误删了,还着着急急的催,我发誓我要离职,不能在这干了,哎不说了,心累,先记录一下吧
步骤1,购买阿里云ECS,因为要安装插件,如果是本地的话太慢了……(必须是linux机器)
步骤2,使用阿里云一件安装脚本,选择mysql对应的版本安装即可,很快几分钟搞定
步骤3,安装还原插件https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/ 版本不要太高,也不要太低,我的rds mysql是5.6 所以选择了2.3.2 xtrabackup
安装xtrabackup依赖包
yum install perl-DBD-MySQL
wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
rpm -vih libev-4.15-1.el6.rx.x86.64.rpm
步骤4,下载阿里云rds数据库备份文件和解压缩文件,
http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh?spm=5176.7741817.2.6.4vdEFz&file=rds_backup_extract.sh 这个是解压缩的,待会会用到,
步骤5,解压,这里注意了,最快的方法就是把原来的mysql data目录备份,
使用脚本解压 sh rds_backup_extract.sh -f hins3141877_data_20171128061754.tar -C /alidata/mysq/data
步骤6,还原innobackupex --defaults-file=/alidata/server/mysql/data/backup-my.cnf --apply-log /alidata/server/mysql/data
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1795061329
171108 15:44:43 completed OK!
出现 completed Ok 说明成功~
步骤7,vim /alidata/server/mysql/data/backup-my.cnf
把下面这几行注释掉
#innodb_fast_checksum
#innodb_page_size
#innodb_log_block_size
步骤8,给权限
chown -R mysql:mysql /alidata/server/mysql/data
步骤9,启动
service mysqld start 或者
mysqld_safe --defaults-file=/alidata/server/mysql/data/backup-my.cnf --user=mysql --datadir=/alidata/server/mysql/data &
步骤10,登陆
mysql -u root
show databases; 这一步应该可以看到你还原的数据库
步骤11,恢复完成后,表mysql.user中不包含在RDS实例中创建的用户,需要新建。在新建用户前,执行如下命令。
delete from mysql.db where user<> 'root' and char_length(user)>0;delete from mysql.tables_priv where user<>'root' and char_length(user)>0;flush privileges;
步骤12,创建数据库账号密码并授权
GRANT ALL PRIVILEGES ON *.* TO'root'@'%'IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
运维QQ交流群:171586999