RDS主库ECS自建mysql GTID 主从
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RDS主库ECS自建mysql GTID 主从相关的知识,希望对你有一定的参考价值。
这里困扰了自己很久,写下来望有缘人看到节约一点时间
现在公司的线上用的mysql数据库,是购买的阿里云的RDS for mysql 服务,由于有服务需要读取mysql的bin-log,并且基于RDS的只读实例的bin-log不保证正确,所以自己搭建ECS从库,注意从库必须配置
binlog-format=ROW #为别的服务提供binlog
server_id=999 #避免server_id 跟master相同
gtid-mode=ON #开启gtid模式
log-slave-updates #这里作为中转需要此参数,如需深入了解,情况官档
enforce-gtid-consistency = ON #强制GTID的一致性
1、通过RDS数据备份,拉取全量备份
wget -c ‘<数据备份文件内网网下载地址>‘ -O full.tar.gz
2、用阿里提供的解压脚本(rds_backup_extract.sh)解压下载好的文件 full.tar.gz
3、用 innobackupex --defaults-file=/etc/my.cnf --apply-log /data_of_mysql 恢复
4、指定datadir,重启mysql,修改用户密码;
5、报这个错时,Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
删除如下五个表,并重启mysql
use mysql
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
6、根据 xtrabackup_slave_info中的第一行,设定 SET GLOBAL gtid_purged=‘‘
7、设定master信息,
change master to master_host=‘RDS_URL‘,
master_port=3306,
master_user=‘mysql_username‘,
master_password=‘Passwd‘,
master_auto_position=1;
以上是关于RDS主库ECS自建mysql GTID 主从的主要内容,如果未能解决你的问题,请参考以下文章