AWS - RDS - 自建 AWS RDS for MySQL 的从库实例

如果希望在 自建机房创建一个 AWS RDS for MySQL 的从库实例, 可以参考如下步骤创建同步:

1. 准备线下环境, 例如在 EC2 上安装 MySQL Server 。 并且可以从实例中访问 RDS 环境, 确保网络通畅。
(1) 需要自建环境中自定义配置
 

server_id=2
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=innodb
replicate-ignore-db=performance_schema
replicate-ignore-db=sys


2. 准备 RDS 数据库实例。
(1) 确保设置的备份保留期足够长,以便在导出期间不会清除任何二进制日志。如果在导出完成前清除了所有日志,您必须从头重新启动复制进程。mysql.rds_set_configuration 存储过程将二进制日志文件保留期设置得足够长,以便在导出期间不会清除二进制日志文件。
设置保留更长时间的 binlog 后, 需要确保数据库实例有足够的空间, 避免出现空间不足的情况。
RDS 端执行: (设置binlog 保留 24 小时, 具体需要看数据库的业务)
 

call mysql.rds_set_configuration('binlog retention hours', 24);

(2) 将 max_allowed_packet 和 slave_max_allowed_packet 参数都设置为最大大小,以避免复制错误。

3. 复制数据库
(1) 备份之前, 将数据库设置为 只读, 修改数据库参数 read_only = 1.

(2) 查看 binlog 状态
 

MySQL > show master status \G
*************************** 1. row ***************************
             File: mysql-bin-changelog.000001
         Position: 681
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)


(2) 备份 RDS 数据
 

mysqldump -h rdsendpoint.rds.cn-north-1.amazonaws.com.cn -u dbadmin -ppassword --port=3306 --single-transaction --routines --triggers --databases database1 database2 --compress --port 3306  > backup.sql

4. 恢复数据库备份到
(1) 在自建环境中创建数据库
 

create database database1;
create database database2;
create database database3;

(2) 恢复备份文件
 

mysql -udbadmin -p'!QAZ2wsx' < rds_backup.sql 

(3) 在自建环境中设置主库环境为 RDS 实例。
 

CHANGE MASTER TO 
 MASTER_HOST = 'rdsendpoint.rds.cn-north-1.amazonaws.com.cn ', 
 MASTER_USER = 'dbadmin', 
 MASTER_PASSWORD = '!QAZ2wsx', 
 MASTER_PORT = 3306, 
 MASTER_LOG_FILE = 'mysql-bin-changelog.001161',
 MASTER_LOG_POS = 681; 


5. 查看同步状态
 

show slave status \G

如果出现同步错误, 通过此方式
 

stop slave; 
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start slave;

再次查看同步状态
 

show slave status \G

6. 将主库环境设置为 非只读 。 修改 RDS 参数组参数 read_only = 0。

7. 验证。
在 RDS 实例中创建验证表, 插入测试数据。 在 自建环境中查看。

MySQL> create table test_replica(id int);
Query OK, 0 rows affected (0.02 sec)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值