MySQL物理备份恢复无法查询_RDS FOR MYSQL 各版本利用物理备份进行本地恢复的方法...

下面文档讲述RDS FOR MYSQL 各版本利用物理备份进行本地恢复的方法(5.5(文档末尾才有5.5恢复方法),5.6,5.7 ,8.0):

说明:

1. 本地自建Mysql数据必须和云rds for mysql版本大版本保持一致

2. 64位的Linux系统

3. MySQL 5.6及之前(含5.5)的版本需要安装 Percona XtraBackup 2.3 ; MySQL 5.7版本需要安装 Percona XtraBackup 2.4;MySQL 8.0版本需要安装 Percona XtraBackup 8.0

4. 为了快速恢复,本地mysql安装都采用centos的yum安装方式

5.7/5.6恢复示例:

yum localinstall mysql80-community-release-el6-1.noarch.rpm

centos7系统执行下面下载安装:

wgethttps://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpmyum localinstall mysql80-community-release-el7-1.noarch.rpm

2.配置yum源

yum -y install yum-utils

#根据选择安装需要的版本

mysql5.7版本:

yum-config-manager --disable   mysql80-community

yum-config-manager --enable   mysql57-community

mysql5.6版本:

yum-config-manager --disable   mysql80-communityyum-config-manager --enable   mysql56-community

3.安装mysql server (yum安装完成后不慌启动mysql)

yum install mysql-community-server

4.替换/etc/my.cnf文件,其中包括跳过权限表启动的配置项:

[mysqld]

innodb_checksum_algorithm=crc32

innodb_data_file_path=ibdata1:200M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=524288000

innodb_undo_directory=/var/lib/mysql/

basedir=/usr

datadir=/var/lib/mysql

innodb_undo_tablespaces=0

server_id=999098802

skip-grant-tables=1

sql_mode=''

1).配置yum源

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

yum update percona-release

2). 查看yum源,选择要安装的percona xtrabackup软件

yum list | grep percona

yum -y install percona-xtrabackup.x86_645.6版本需要安装这个

yum -y install percona-xtrabackup-24.x86_64 5.7版本需要安装这个yum -y install percona-xtrabackup-80.x86_64 8.0版本安装这个

6.下载备份文件并恢复:

目前物理备份集文件有3种格式:

tar 压缩包 (.tar.gz 后缀)

xbstream 压缩包 (.xb.gz 后缀)

xbstream 文件包 (_qp.xb 后缀)

根据RDS获取的下载地址下载相应物理备份文件,注意下载文件名可能有不同:

wget -c 'rds备份文件下载地址' -O bak.tar.gz 这个到RDS控制台备份恢复里面去获取备份集下载地址,注意下载地址这里用wget下载需要用单引号引起来,否则会报403错误

例如:

wget -c 'https://rdsbak-bj-v4.oss-cn-beijing.aliyuncs.com/custins15680923/hins8532551_data_20190812213747_qp.xb?OSSAccessKeyId=LTAIyKzxtSYNknVO&Expires=1565792827&Signature=kz%2F842LvRYwLuU6q9%2BVyZF70pZY%3D'   -O bak_qp.xb

wget -c 'https://rdsbak-bj-v4.oss-cn-beijing.aliyuncs.com/custins15680923/hins8532551_data_20190812213747.tar.gz?OSSAccessKeyId=LTAIyKzxtSYNknVO&Expires=1565792827&Signature=kz%2F842LvRYwLuU6q9%2BVyZF70pZY%3D'-O bak.tar.gz

备注: 获取的下载地址链接里面就包含了rds备份文件的名字,例如上面两个就分别是:hins8532551_data_20190812213747_qp.xb  hins8532551_data_20190812213747.tar.gz

解压备份文件:

对于tar 压缩包 (.tar.gz 后缀),使用命令:

tar -izxvf .tar.gz -C /var/lib/mysql

对于xbstream 压缩包 (.xb.gz 后缀),使用命令:

gzip -d -c .xb.gz | xbstream -x -v -C

对于xbstream 文件包 (_qp.xb 后缀),使用命令:

## 解包

cat _qp.xb | xbstream -x -v -C## 解压

innobackupex --decompress --remove-original

说明: 你下载的备份文件在哪个目录下,就在下载的备份文件目录执行解压,-C指定解压到/var/lib/mysql目录,因为yum安装的datadir是这个

cd  /var/lib/mysql

innobackupex --defaults-file=backup-my.cnf --apply-log /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql

/etc/init.d/mysqld start

更新aliyun_root@127.0.0.1密码:

mysql     #shell里面执行mysql连接mysql并修改密码

mysql>select user,host from mysql.user; 查看是否有aliyun_root@127.0.0.1这个用户,可根据需要来设置根据这个sql查看到有的账号密码

mysql>flush privileges;

mysql>SET PASSWORD FOR 'aliyun_root'@'127.0.0.1' = PASSWORD('MyNewPass');

mysql>exit

删除/etc/my.cnf里面的skip-grant-tables=1​​​​​​

/etc/init.d/mysqld restart

账号也迁移过来了的,可以用账号云mysql的账号登陆了:

登陆:

mysql -ualiyun_root -h127.0.0.1 -pMyNewPass 这里注意登陆需要用到-h127.0.0.1,因为RDS里面没有localhost主机的链接地址,不指定会报错

mysql>use mysql;

mysql>alter table proc engine=myisam;

mysql>alter table event engine=myisam;

mysql>alter table  func engine=myisam;

====================================================================

mysql 8.0恢复:

yum localinstall mysql80-community-release-el6-1.noarch.rpm

centos7系统执行下面下载安装:

wgethttps://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpmyum localinstall mysql80-community-release-el7-1.noarch.rpm

2.配置yum源

yum -y install yum-utils

3.安装mysql server (yum安装完成后不慌启动mysql)

yum install mysql-community-server

4.替换/etc/my.cnf文件,其中包括跳过权限表启动的配置项:

[mysqld]

lower_case_table_names = 1

innodb_checksum_algorithm=crc32

innodb_data_file_path=ibdata1:200M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=524288000

innodb_undo_directory=/var/lib/mysql/

basedir=/usr

datadir=/var/lib/mysql

#innodb_undo_tablespaces=0

server_id=999098802

skip-grant-tables=1

sql_mode=''

log_error=/var/lib/mysql/mysqld.err

1).配置percona yum源

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

yum update percona-release

2). 查看yum源,选择要安装的percona xtrabackup软件

yum list | grep percona

yum -y install percona-xtrabackup-80.x86_64       8.0版本安装这个

yum -y install qpress

6.下载备份文件并恢复:

目前物理备份集文件有3种格式:

tar 压缩包 (.tar.gz 后缀)

xbstream 压缩包 (.xb.gz 后缀)

xbstream 文件包 (_qp.xb 后缀)

根据RDS获取的下载地址下载相应物理备份文件,注意下载文件名可能有不同:

wget -c 'rds备份文件下载地址' -O bak.tar.gz     这个到RDS控制台备份恢复里面去获取备份集下载地址,注意下载地址这里用wget下载需要用单引号引起来,否则会报403错误

例如:

wget -c 'https://rdsbak-bj-v4.oss-cn-beijing.aliyuncs.com/custins15680923/hins8532551_data_20190812213747_qp.xb?OSSAccessKeyId=LTAIyKzxtSYNknVO&Expires=1565792827&Signature=kz%2F842LvRYwLuU6q9%2BVyZF70pZY%3D'     -O bak_qp.xb

wget -c 'https://rdsbak-bj-v4.oss-cn-beijing.aliyuncs.com/custins15680923/hins8532551_data_20190812213747.tar.gz?OSSAccessKeyId=LTAIyKzxtSYNknVO&Expires=1565792827&Signature=kz%2F842LvRYwLuU6q9%2BVyZF70pZY%3D'-O bak.tar.gz

备注: 获取的下载地址链接里面就包含了rds备份文件的名字,例如上面两个就分别是:hins8532551_data_20190812213747_qp.xb   hins8532551_data_20190812213747.tar.gz

解压备份文件:

对于tar 压缩包 (.tar.gz 后缀),使用命令:

tar -izxvf .tar.gz -C /var/lib/mysql

对于xbstream 压缩包 (.xb.gz 后缀),使用命令:

gzip -d -c .xb.gz | xbstream -x -v -C

对于xbstream 文件包 (_qp.xb 后缀),使用命令:

## 解包

cat _qp.xb | xbstream -x -v -C## 解压

cd /var/lib/mysql

xtrabackup --decompress --remove-original --target-dir=/var/lib/mysql

说明: 你下载的备份文件在哪个目录下,就在下载的备份文件目录执行解压,-C指定解压到/var/lib/mysql目录,因为yum安装的datadir是这个

cd  /var/lib/mysql

xtrabackup --prepare --apply-log-only --target-dir=/var/lib/mysql

说明,如果用到分区表这步可能会有下面类似报错,这个报错直接忽略

2019-08-19T12:33:14.761704Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p40'

2019-08-19T12:33:14.772460Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p42'

2019-08-19T12:33:14.772736Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p43'

2019-08-19T12:33:14.772900Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p44'

2019-08-19T12:33:14.773254Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p60'

2019-08-19T12:33:14.773650Z 0 [ERROR] [MY-010520] [Server] Invalid (old?) table or database name 'zzlogger_sale_order#p#p45'

chown -R mysql:mysql /var/lib/mysql

mysqld --datadir=/var/lib/mysql --upgrade=force --user=mysql

更新aliyun_root@127.0.0.1密码:

mysql     #shell里面执行mysql连接mysql并修改密码

mysql>select user,host from mysql.user;   查看是否有aliyun_root@127.0.0.1这个用户,可根据需要来设置根据这个sql查看到有的账号密码

mysql>flush privileges;

mysql>alter user'aliyun_root'@'127.0.0.1' identified by 'some34QA';

mysql>exit

删除/etc/my.cnf里面的skip-grant-tables=1​​​​​​

ps -ef |grep mysql 查看先前启动的mysql进程,然后Kill下

kill -9 线程id

/etc/init.d/mysqld start (centos6执行这个)

systemctl start mysqld (centos7执行这个)

账号也迁移过来了的,可以用账号云mysql的账号登陆了:

登陆:

mysql -ualiyun_root -h127.0.0.1 -pMyNewPass       这里注意登陆需要用到-h127.0.0.1,因为RDS里面没有localhost主机的链接地址,不指定会报错

====================================================================

5.5版本的恢复:

1)  wgethttps://repo.mysql.com//mysql80-community-release-el6-1.noarch.rpm2)   yum localinstall mysql80-community-release-el6-1.noarch.rpm

3)   yum -y install yum-utils

4)   yum-config-manager --disable mysql80-community

5)   yum-config-manager --enable mysql55-community

6)   yum install mysql-community-server -y

7)   vi /etc/my.cnf   添加下面内容,注意区别于5.6,5.7版本的内容

[mysqld]

innodb_data_file_path=ibdata1:200M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=524288000

basedir=/usr

datadir=/var/lib/mysql

server_id=999098802

skip-grant-tables=1

sql_mode=''

步骤3:

安装percona2.3

1)yum installhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm2)yum install percona-xtrabackup.x86_64

步骤4:

准备好mysql5.5的物理备份安装包,省略

假设这里获取的物理备份文件名字叫:a.tar.gz

步骤5:

开始恢复

1)tar -izxvf a.tar.gz  -C /var/lib/mysql

2)  cd /var/lib/mysql

3)  innobackupex --defaults-file=backup-my.cnf --apply-log /var/lib/mysql

4)  chown -R mysql:mysql /var/lib/mysql

5)  /etc/init.d/mysqld start

6)  mysql    直接进入mysql命令会话,进入后依次执行下面命令

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+---------------+--------------+

| user          | host         |

+---------------+--------------+

| aurora        | %            |

| replicator    | 10.151.82.81 |

| root          | 127.0.0.1    |

| root          | ::1          |

| rdsflashback  | localhost    |

+---------------+--------------+

8 rows in set (0.00 sec)

mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('MyNewPass');

Query OK, 0 rows affected (0.00 sec)

mysql> exit

可以再登陆mysql查看数据库信息:

mysql -uroot -pMyNewPass -h127.0.0.1

mysql>use mysql;

mysql>alter table proc engine=myisam;

mysql>alter table event engine=myisam;

mysql>alter table  func engine=myisam;

mysql>show databases;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值