阿里云RDS Mysql 5.6 ECS自建从库(不锁表,不重启)

注意:你的备份的时间应该在你的binlog保存时间范围内

环境: 
主库: 阿里云RDS Mysql 5.6
从库: ECS机器上自建从库  Centos 7.4
  • setp 1 在阿里云RDS后台建立只读权限账号
  • setp 2 使用RDS自带的备份功能,进行物理备份,并恢复到ECS机器
参考链接:
备份: https://help.aliyun.com/document_detail/26206.html
恢复: https://help.aliyun.com/knowledge_detail/41817.html
  • setp 3 修改/etc/my.cnf
[mysqld]
datadir=/opt/mysql-data ## 指定数据文件,根据setp 2的恢复操作
basedir=/opt/mysql

innodb_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=572864000
innodb_undo_directory=.
innodb_undo_tablespaces=0
server-id               =  723456789   ## 这里只需要跟主库不一样就行了  
log_bin                 =  /opt/mysql-binlog/mysql-bin.log
expire_logs_days        =  7
max_binlog_size         =  100M
replicate-do-db         =  test     ## 此处为需要同步的库
replicate-ignore-db     =  mysql   ## 此处为不需要同步的库
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row                                     ## 阿里云RDS开启ROW(默认就是)
relay_log=/opt/mysql-relay-data/relay.log
log-slave-updates=1
  • setp 4 启动mysql
可能会遇到的问题:
[ERROR] Error creating master info: Error removing old repository.
[ERROR] Failed to create or recover replication info repository.
解决:
use mysql
drop table mysql.innodb_index_stats;
 drop table mysql.innodb_table_stats;
 drop table mysql.slave_master_info;
 drop table mysql.slave_relay_log_info;
 drop table mysql.slave_worker_info;
source /opt/mysql/share/mysql_system_tables.sql
  • setp 5 查看备份的gtid
在具体的数据目录(就是你恢复备份的文件夹)
/opt/mysql-data/xtrabackup_info
找到以下这行,取最后一条 c619dfe7-04aa-11e8-dbf4-6c92bf3fe77d:1-325898712,
e3f32949-04ac-11s8-bbw5-0425c5dcs34b:1-207283


binlog_pos = filename 'mysql-bin.001477', position 87871098, GTID of the last change 'c619dfe7-04aa-11e8-dbf4-6c92bf3fe77d:1-325898712,
e3f32949-04ac-11s8-bbw5-0425c5dcs34b:1-207283'
  • setp 6 配置从库
进入mysql
reset slave;
reset master;
change master to master_auto_position=1;
SET @@GLOBAL.GTID_PURGED='c619dfe7-04aa-11e8-dbf4-6c92bf3fe77d:1-325898712,
e3f32949-04ac-11s8-bbw5-0425c5dcs34b:1-207283';
change master to master_host = 'RDS地址' ,master_port = 3306, master_user = 'RDS用户',master_password='RDS密码';

启动slave

start slave;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 2018新年快乐,幸福吉祥! 链接天南海北,全国青椒大拜年! 从零下28℃的黑龙江到温暖的南方,一起来看看青椒全国...
    互加计划_蒋丝丝阅读 509评论 4 12
  • 周末正巧碰上植树节,于是在家把阳台上的花花草草,该换盆的换盆,该修剪的修剪。阳台上有盆茶花是我最喜欢的,平时注...
    曼头阅读 254评论 0 0
  • 1.我遇到的麻烦 在使用 Android Studio 的过程中,遇到了各种各样层出不穷的报错和阻拦。我会在这篇文...
    捡书的腾腾阅读 934评论 0 0

友情链接更多精彩内容