使用 RDS for MySQL 配置到自建数据库的主从复制
时间:2016-12-13 14:42 来源:linux.it.net.cn 作者:IT
场景
出于数据容灾、ETL、异地数据访问等目的,可能需要基于 RDS for MySQL 实例,搭建到自己线下MySQL实例的主从复制。这篇文章将给出简单的操作步骤,供大家参考。由于要使用GTID特性,因此要求MySQL版本>=5.6.
前提条件
操作步骤
配置主实例
-
登录 RDS 控制台,选择目标实例。
-
配置从实例读取数据使用的只读账号和授权数据库。
-
将从实例的 IP 地址加入主实例的 IP 白名单中
如果从实例是部署在同一地域的 ECS 上,仅需配置该 ECS 的内网地址即可。
-
登录主实例
-
查询主实例的 server-id。
# show variables like '%server_id%';
系统返回如下信息:
+-------------------------+-----------------+
| Variable_name | Value |
+-------------------------+-----------------+
| server_id | 2657086497 |
| server_id_bits | 32 |
+-------------------------+-----------------+
配置从实例
-
安装 MySQL 从实例。
MySQL 安装包和安装方法请参见 MySQL 官方安装文档。
-
停止从实例 mysql 服务。
# service mysql stop
-
修改从实例 mysql 配置文件。
-
打开从实例 MySQL 配置文件。
# vim /etc/my.cnf
-
配置从实例的 server-id 和要同步的数据库。
server-id = 123456789 //服务 ID,主从实例 server-id 需不同。
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
replicate-do-db = exampledb //需要同步的数据库
replicate-ignore-db = mysql //不需要同步的数据库
replicate-ignore-db = information_schema //不需要同步的数据库
replicate-ignore-db = performance_schema //不需要同步的数据库
-
配置 GTID 同步模式,**binlog** 格式为 row,以兼容主实例。
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row //设置 binlog 为 row
log-slave-updates=1
-
执行如下命令,查看 binlog 配置结果。
# show variables like '%binlog_format%';
系统返回如下信息:
+-------------------------+-----------------+
| Variable_name | Value |
+-------------------------+-----------------+
| binlog_format | ROW |
+-------------------------+-----------------+
-
将主实例数据全量同步到从实例。
本例以 mysqldump 工具为例。
# mysqldump -uname -hmasterhost.mysql.rds.aliyuncs.com -p --databases exampledb > exampledb.sql
# mysqldump -uname -p < exampledb.sql
-
登录数据库,设置同步选项。
mysql>change master to master_host = 'masterhost.mysql.rds.aliyuncs.com', master_port = 3306, master_user = 'catest', master_password='masterpassword', master_auto_position = 1;
-
启动从实例。
mysql>slave start;
-
检查同步结果。
mysql>show slave statue\G
查看系统返回信息中 Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes,如下所示。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
(责任编辑:IT)
场景出于数据容灾、ETL、异地数据访问等目的,可能需要基于 RDS for MySQL 实例,搭建到自己线下MySQL实例的主从复制。这篇文章将给出简单的操作步骤,供大家参考。由于要使用GTID特性,因此要求MySQL版本>=5.6. 前提条件操作步骤配置主实例
配置从实例
(责任编辑:IT) |