closed
logo logo
关于我们

技术分享

技术分享 RDS 5.7的物理备份恢复到本地docker-compose mysql的方法

RDS 5.7的物理备份恢复到本地docker-compose mysql的方法

2019-06-27

#需要本地安装的软件

  • mysql 5.7.24 版本    这个mysql也是使用docker镜像来操作 daocloud.io/mysql:5.7

  • Percona Xtrabackup 2.4.12  这里我是使用docker镜像来操作  docker pull ipunktbs/xtrabackup

恢复的详细步骤如下: 1、登陆到RDS 控制台, 找到对应地域,在实例管理中,选择备份恢复,数据备份,点"下载".如图:

RDS 5.7的物理备份恢复到本地docker-compose mysql的方法2、在弹出的窗口中,选择复制外网地址,如图:RDS 5.7的物理备份恢复到本地docker-compose mysql的方法

3、在本地服务器使用bash命令,里面包括下载备份文件、解压文件、使用Xtrabackup将数据备份恢复 4、调用如下bash命令,以传参数得形式,sh aa.sh "url" 文件路径

1、这一句是将rds上面得备份文件下载下来 wget -O /data/docker/mg-plus/$2.tar "$1" 2、进入到下载对应得目录 cd  /data/docker/mg-plus/ 3、创建传入参数得文件夹 mkdir $2 4、解压tar文件到对应得目录 tar vxf $2.tar -C /data/docker/mg-plus/$2 5、 innobackex 恢复解压后的数据.命令如下: docker run --rm -it -v /data/docker/mg-plus/$2:/data --name xtrabackup ipunktbs/xtrabackup run innobackupex --defaults-file=/data/backup-my.cnf --apply-log /data

5、创建一个my.cnf文件,拷贝修改backup-my.cnf ,具体操作步骤如下: [mysqld] innodb_checksum_algorithm=crc32 #innodb_log_checksum_algorithm=strict_crc32 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 server_id=2056 #redo_log_version=1 #server_uuid=b333cbc0-883c-11ea-ba74-98039b07432c #master_key_id=0 #innodb_encrypt_algorithm=AES_256_CBC #skip-grant-tables (这句话目的是因为你在rds上面备份下来,没有super权限,加这个参数越过权限,然后进行改root密码)

##docker-compose.yml文件 mysqlslave: image: daocloud.io/mysql:5.7 expose: - "3306" environment: - MYSQL_DATABASE=**** - MYSQL_USER=***** - MYSQL_PASSWORD=******* - MYSQL_ROOT_PASSWORD=123456 - TZ=Asia/Shanghai restart: always volumes: - ./slave:/var/lib/mysql

- ./my.cnf:/etc/mysql/my.cnf

command: mysqld --lower_case_table_names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --max-connections=2000 --default-authentication-plugin=mysql_native_password --default-time-zone=+08:00  --server-id=2056 --gtid-mode=ON  --innodb_checksum_algorithm=crc32 --innodb_data_file_path=ibdata1:200M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=1572864000 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --log_error=/var/log/mysql/error.log --enforce_gtid_consistency=1

这里由于挂载my.cnf文件没有生效,直接使用command命令了

docker-compose up -d mysqlslave 启动成功后,进入容器 mysql 服务  docker exec -it 容器名称 mysqlRDS 5.7的物理备份恢复到本地docker-compose mysql的方法

查看并修改超级账号 aliyun_root 的密码. 命令为: select host,user from mysql.user; update mysql.user set authentication_string=password('新密码') where user='aliyun_root';

这时会报错,Unknown system variable 'maintain_user_list',如图:RDS 5.7的物理备份恢复到本地docker-compose mysql的方法表示有触发器. 注意: 在mysql5.7 中, aliyun_root 才是真正超级权限账号.

查看并删除触发器.命令如下: select trigger_schema,trigger_name from information_schema.triggers;RDS 5.7的物理备份恢复到本地docker-compose mysql的方法drop trigger sys.sys_config_insert_set_user; drop trigger sys.sys_config_update_set_user;

再次修改密码,仍然报错.错误和14步骤中一致.这时我们还要删除触发器文件.先退出mysql,在 shell 下查找(也就是你使用Xtrabackup恢复数据那个目录).TRG 结尾的文件,命令如下: 直接cd 到那个Xtrabackup恢复数据那个目录)  find -iname *.trg

RDS 5.7的物理备份恢复到本地docker-compose mysql的方法将其两个文件删除 mv user.TRG mv es_priv.TRG 再次登录并修改 aliyun_root 的密码.命令同上,下图表示修改成功. 退出容器 修改 my.cnf, 注释 skip-grant-tables, 保存, 并再次启动mysql. 这次登录需要密码验证,登录命令为: mysql -ualiyun_root -p -h127.0.0.1

查看主从复制状态: show slave status\G Slave_SQL_Running:no Slave_IO_Running:no 证明还没开启主从复制功能 change master to master_host=".mysql.rds.aliyuncs.com",master_user="",master_port=3306,master_password="****",master_auto_position=0,master_log_file="mysql-bin.006846",master_log_pos=90480655; (最后这个两个值得填写,是在主库rds上执行show master status;获取到这两个值) 设置gtid得值,发现报错 SET GLOBAL gtid_purged='3c853c27-83af-11e8-964e-7cd30aeb153e:1-3691591462,97c5834f-83af-11e8-8c80-7cd30aeb120c:1-1118656660'; 这个时候需要reset master ,之后在执行上面那条命令行 然后start slave; show slave status\GRDS 5.7的物理备份恢复到本地docker-compose mysql的方法如果是出现时Slave_IO_Running:no,另外一个yes,证明时报错了 解决办法:可能时同步位置出问题,这个时候跳过一下错误就好了 stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; start slave;

如果未能解决,那么stop slave之后重新reset slave;在走设置 slave 配置,chang master to这一系列配置

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 行业资讯

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698