您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 阿里分类信息网,免费分类信息发布

详解阿里云RDS数据库备份文件恢复至自建数据库

2023/6/11 12:22:00发布50次查看
前言:
最近,因为安全部门的需要,需要对之前的数据进行查询。怎么办?有三种办法
第一种办法:找到备份文件,然后选择覆盖性恢复。(若你不需要现在的数据,那么此方法可行)
第二种办法:保留现在的数据,那么选择数据实例克隆,把备份的数据克隆到新实例上面去。(注意,这里是新实例,新实例就意味着要给钱,有钱的话可以选择这种方法)
第三种办法:把数据库下载下来,然后进行恢复到自己本地建立的数据库。(此方法可行,节约成本)。下面,我就给大家介绍,我在数据库恢复的道路上所踩过的坑,一个坑接着一个坑。希望大家不要再走我的路了。
详解如下:
1、下载rds数据库备份文件。下载之前先确认数据库备份文件是走内网地址还是外网地址。
ps:若网络速度快,可以选择外网。我选择的内网,因为我是把rds的数据恢复至ecs服务器上。内网速度可以达到30m/s
这里需要注意:
服务器的内外网ip需要添加到数据库的白名单当中去。
使用命令wget 下载文件
wget -c '' -o .tar.gz
第2条命令中数据备份文件内网或外网下载地址需要用单引号给引起来,后面的o是大写,注意是大写。
2、下载备份还原工具percona xtrabackup 2.2.9,不建议使用高版本。
最好按照percona xtrabackup官方的操作手册来
官网提供了yum安装方式和rpm安装方式。我使用的是yum安装
下载percona xtrabackup的yum资源文件。
执行资源文件安装:yum install http://percona/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
执行安装:rpm -ivh percona-release-0.1-3.noarch.rpm
执行安装 yum -y install percona-xtrabackup-22
3、安装阿里云官方rds_backup_extract.sh文件
这里需要去阿里云官方下载,下载完毕后上传即可:
ps:上传后记得把文件的权限改为可执行即可
4、yum方式安装mysql
由于centos 7上没有mysql的资源文件,因此,我们首先得安装资源文件。
wget http://repo.mysql/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
执行安装命令 yum -y install mysql-server
安装完毕后设置密码
依次输入以下命令:
mysql -uroot (由于没有设置密码,因此这里可以不用输入密码)
切换数据库
use mysql;
更改密码
update user set password=password('您的新密码') where user ='root';
上面命令执行完成后,那么mysql就基本完成了,最后,我们设置root用户可以从任何地址访问
具体命令为:grant all privileges on *.* to root@'%'identified by '您的密码'
5、恢复rds文件
到上面第一点的文件目录下执行以下命令:
./rds_backup_extract.sh -f .tar.gz -c /home/mysql/data
执行以下命令查看情况:
ls -l /home/mysql/data
命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时rds实例所包含的数据库。
恢复解压后的数据库备份文件
innobackupex --defaults-file=/home/mysql/data/backup-myf --apply-log /home/mysql/data
ps:在执行上面命令之前,先修改backup-my.conf文件,按照以下规则进行注释:
[mysqld]
innodb_checksum_algorithm=innodb
# innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200m:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
# innodb_fast_checksum=false
innodb_page_size=16384
# innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0
# rds_encrypt_data=false
# innodb_encrypt_algorithm=aes_128_ecb
若出现以下结果,代表数据恢复成功:
恢复成功,别激动,后面还有。
6、修改备份文件权限:
执行命令:chown -r mysql:mysql /home/mysql/data
7、启动mysql进程
mysqld_safe --defaults-file=/home/mysql/data/backup-myf --user=mysql --datadir=/home/mysql/data &
8、连接进入mysql -uroot
9、恢复完成后,表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;
10、注意,由于备份文件是之前的用户,想要root用户有权限,那么需要执行以下命令对数据文件进行修复。
mysql_upgrade mysql -uroot
11、到此,基本就全部成功了。
阿里分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录