当前位置: 旋风说(旋风PHPer分享网)> 技术文章> 正文
我们都知道,阿里云的ecs到期后,可以打快照,可以做镜像,随时可以恢复程序和ecs上的数据库等信息,但是rds却没有相应的快照这个说法,一旦rds到期,貌似就没有办法恢复了,其实恢复方式并不难,根据阿里云提供的方案和网友的总结,我实验了一下,成功恢复了已过期的rds的数据。首先说一下怎么保留数据库备份,如下图:
上图中很清晰的可以看到怎么设置保留最后一个rds备份集的方法,这样,即使rds到期了,最后一个备份也存在,你依然可以用来恢复数据,这里我就不多讲了(看上图就知道怎么设置),因为这片文章主要讲的是怎么恢复数据。
有了最后一个数据后,rds释放了,恢复之前,我们需要先下载这个文件,下载位置如下:
下载之后,你会得到一个****.xb文件,这是阿里云用的xbstream工具备份的,想获取数据表结构和数据,就要从这个文件下手。首先你要准备一个安装宝塔的centos系统,然后安装上mysql,找个地方放下,并重命名为:
test_qb.xb,然后安装必备软件:xtrabackup、xtrabackup和qpress,安装命令如下:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm yum install -y percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar" tar xvf qpress-11-linux-x64.tar chmod 775 qpress cp qpress /usr/bin
安装完之后,先解压test_qb.xb文件,可以先在test_qb.xb的所在位置新建一个data文件夹,然后将test_qb.xb解压,命令如下:
cat test_qb.xb | xbstream -x -v -C ./data
然后还需要进行二次解:
innobackupex --decompress --remove-original ./data
最后通过innobackupex 进行解压,得到数据库原始表结构和数据文件
innobackupex --defaults-file=/www/data/backup-my.cnf --apply-log ./data
补充:
--defaults-file 自建数据库的配置文件路径。本文以/etc/my.cnf为例
--datadir 启动数据库使用的数据目录。本文以./data为例
然后,给data这个文件夹和文件夹内部的文件mysql的755权限,注意,不是www权限,也不是httpd权限,是mysql的755权限
最后,因为我们是mysql5.6的数据恢复,需要找到mysql服务,systemctl stop mysqld,进行停止mysql服务,切换my.cnf里面的datadir文件夹为data文件夹所在的路径即可,当然,不想切换也可以,直接到终端中,将现在的mysql文件夹里面的data文件夹重命名,然后复制刚才解压出来的data文件夹到现在的mysql里面,启动mysql即可。启动后请注意,由于是rds转移过来的数据,所以你的数据库用户名和数据库名字都是原来rds上的,如果要访问数据库,请使用原来rds里面的数据库用户名访问。使用navicat或者phpmyadmin访问数据库后,你会发现rds里面的所有数据都回来了。你可以选择导出.sql文件,也可以直接使用该数据库。
里面虽然有好多坑,实际操作起来可能会有好几处会出现问题或者不能用,但是都逐步解决了,如果你也有类似的需求可以按照我的方法操作一下,最后说一下阿里云的恢复教程:
https://help.aliyun.com/document_detail/41817.html
当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。
上一篇: centos安装node
相关文章
评论:
文明上网理性发言,请遵守 新闻评论服务协议