登录
首页 >  数据库 >  MySQL

恢复阿里云RDS的数据备份文件到本地数据库

来源:SegmentFault

时间:2023-01-12 17:17:08 306浏览 收藏

小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《恢复阿里云RDS的数据备份文件到本地数据库》,以下内容将会涉及到MySQL、Linux,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

前言

  写之前先说说这篇文章的来由,公司客户准备发布一些活动,采用在线报名的方式,由于前期表结构设计的不合理,后期优化对表结构的改动,导致部分活动用户报名数据丢失,于是想恢复mysql被误删的数据,幸运的是RDS每天会自动备份数据文件,官方也提供了恢复云数据库mysql的备份文件到自建数据库的文档,不再赘述,本文主要把恢复数据的过程记录下来,供大家参考:

前提条件

  • 本地mysql数据库安装在64位的Linux系统中,且与RDS的版本相同。
  • 操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本。
  • 操作系统中已安装数据备份文件解压工具rds_backup_extract.sh,点击下载

准备工作

  mysql安装不在赘述,主要与RDS版本相同即可,Percona XtraBackup安装官方也提供了详细的文档,按照步骤操作即可。本文采用Centos7,不同linux系统可查阅相应的文档。

系统版本  

安装percona-xtrabackup

安装依赖包

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

查看依赖包

yum list | grep percona

安装Percona XtraBackup

yum install percona-xtrabackup-22

下载RDS数据备份文件

  文档中有详细说明,按照文档下载需要恢复的文件即可,文件格式为.tar.gz压缩文件

开始恢复数据

  • 下载官方文档中提供的数据备份文件解压工具rds_backup_extract.sh,并添加可执行权限,解压数据备份文件。

  

chmod +x rds_backup_extract.sh

  
bash rds_backup_extract.sh -f .tar.gz -C /var/backup
  • 执行如下命令,恢复解压好的备份文件,如果系统返回如下类似结果,则说明备份文件成功恢复到本地数据库

  

innobackupex --defaults-file=/var/backup/backup-my.cnf --apply-log /var/backup
  • 修改文件属主,并确定文件所属为MySQL用户

  

chown -R mysql:mysql /var/backup/
  • 修改/var/backup/backup-my.cnf,文档中修改内容如下:注释innodb_fast_checksum,innodb_page_size,innodb_log_block_size,但实际操作中启动mysql进程是报错:unknown variable *,所以做了一些修改:
  • 启动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,mysql socket文件路径为/tmp/mysql.sock,mysql -uroot -S /tmp/mysql.sock,登录成功。
  • 导出数据:mysqldump -uroot -S /tmp/mysql.sock 数据库名称>/tmp/数据库名称.sql

今天带大家了解了MySQL、Linux的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表