阿里云RDS数据库与自建数据库做主从同步
场景
购买了阿里云的RDS数据库,基础版,没有主备,有做本地备份,但是如果RDS宕机了没办法马上切到可用的数据库,为了系统的高可用和容灾,决定做一下RDS和自建数据库的主从同步(不购买RDS的高可用版说到底也是因为qiong……)
前提
大版本相同的MySQL,我的RDS是5.7的,原本CentOS上是用预置yum源安装的mariadb5.5,于是我就先新增了MySQL5.7的源对数据库版本进行更新,这里不对如何更新进行赘述。
动工
配置主库
首先登录阿里云的控制台,进入RDS数据库的实例,将即将配置从库的服务器IP添加进RDS实例白名单中:
接着登录RDS数据库,执行SQL语句,得到RDS的server_id:
show variables like '%server_id%';
得到 RDS 的 log_pos 和 log file(下面用到):
show master status;
配置从库
先检查从库MySQL的大版本是否与主库一致:
mysql -v
停止从库的MySQL服务:
systemctl stop mysqld
修改从库MySQL的配置文件:
vim /etc /my.cnf
这里要注意配置的参数放在[mysqld]下:
server-id = 2222 //服务 ID,主从实例 server-id 需不同。
log_bin = 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,同样放置在[mysqld]下:
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row //设置 binlog 为 row
log-slave-updates=1
启动MySQL服务:
systemctl start mysqld
进入MySQL,执行语句,查看配置是否生效(值为ROW即生效):
show variables like '%binlog_format%';
将主库数据全量导出。
mysqldump -h RDS数据库ip -P RDS数据库端口 -u RDS数据库账号 -p RDS数据库密码 数据库名 > 导出的文件名.sql
进入MySQL,将主库数据全量导入从库。
CREATE DATABASE 数据库名;
USE 数据库名;
SOURCE 导出的文件名.sql
在从库中配置同步选项:
change master to master_host='192.168.0.104', //Master 服务器Ip
master_port=3306,
master_user='test',
master_password='mysql',
master_log_file='master-bin.000001',//Master服务器产生的日志
master_log_pos=0; //binlog起始位置
启动slave:
start slave;
查看slave状态:
show slave status\G
如果Slave_IO_Running 和 Slave_SQL_Running 的状态是否都为 Yes的话则配置成功!
可能遇到的问题
Q:ERROR 1794 (HY000): 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.
A:前面我是从mariadb5.5直接升级到MySQL5.7的,推测是因为版本兼容导致的表结构不一致,这里把ibd表删除后重建
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;
source /usr/share/mysql/share/mysql_system_tables.sql
之后重启slave,再重新执行change master to即可。
By the way
有问题?可以给我留言或私聊
有收获?那就顺手点个赞呗~
当然,也可以到我的公众号下「6曦轩」,
回复“学习”,即可领取一份
【Java工程师进阶架构师的视频教程】~
回复“面试”,可以获得:
【本人呕心沥血整理的 Java 面试题】
回复“MySQL脑图”,可以获得
【MySQL 知识点梳理高清脑图】
由于我咧,科班出身的程序员,php,Android以及硬件方面都做过,不过最后还是选择专注于做 Java,所以有啥问题可以到公众号提问讨论(技术情感倾诉都可以哈哈哈),看到的话会尽快回复,希望可以跟大家共同学习进步,关于服务端架构,Java 核心知识解析,职业生涯,面试总结等文章会不定期坚持推送输出,欢迎大家关注~~~
阿里云RDS数据库与自建数据库做主从同步相关推荐
- 阿里云RDS与ECS自建库搭建主从复制
前言 最近尝试在阿里云RDS与ECS自建库之间搭建主从复制,主要是想用于备份数据,所以对于同步一致性要求不是很高.模拟了几次,遇到的一些坑记录在这里,使用的是基于GTID的主从服务,关于GTID: M ...
- 基于阿里云RDS创建ECS自建从库
使用阿里云ECS自建RDS MySQL从库 友情提示:安装MySQL软件步骤本文暂不介绍,安装完MySQL无需着急初始化数据库和启动服务.只需确保安装的MySQL版本不低于阿里云RDS MySQL版本 ...
- 阿里云RDS 数据迁移备份本地数据库
RDS MySQL物理备份文件恢复到自建数据库 文章目录 RDS MySQL物理备份文件恢复到自建数据库 方案准备 注意事项 安装Mysql 安装Percona XtraBackup2.4 自建库安装 ...
- 阿里云DMS添加ECS自建数据库
昨天在阿里云买了台服务器,在数据管理添加数据库时居然一直失败,提交了工单,处理得超级慢(当然也能够理解,毕竟这么大的公司肯定有很多问题在等着解决),不过最后还是解决了.在此记录一下,希望帮到有希望的人 ...
- 阿里云mysql gtid_阿里云RDS与ECS自建mysql数据库主从同步(GTID方式)
1.GTID的概念 全局事务标识:global transaction identifiers: GTID是一个事务一一对应,并且全局唯一ID: 一个GTID在一个服务器上只执行一次,避免重复执行导致 ...
- 记一次阿里云RDS与自建数据库同步中断的补救过程
背景 2018年4月24日上午9点左右,小编在即将托管的服务器上建立数据库,并通过openvpn建立加密隧道,从而实现阿里云RDS和本地自建数据库之间同步.在托管服务器上配置openvpn后,重启op ...
- ecs搭建mysql和云数据库_阿里云ECS搭建自己的关系型数据库mysql RDS主从复制
最近尝试在阿里云RDS与ECS自建库之间搭建主从复制,主要是想用于备份数据,所以对于同步一致性要求不是很高.模拟了几次,遇到的一些坑记录在这里,使用的是基于GTID的主从服务,关于GTID: MySQ ...
- 阿里云RDS金融数据库(三节点版) - 案例篇
原文链接 摘要: 标签 PostgreSQL , MySQL , 三节点版 , 金融数据库 , Raft , 分布式共享存储版 背景 土豆哪里去挖? 土豆郊区去挖. 一挖一麻袋? 一挖一麻袋. 挖掘机 ...
- 自建MySQL和阿里云RDS的区别 有必要使用云数据库吗?...
很多阿里云ECS用户都会考虑是使用ECS自建数据库还是使用阿里云的RDS云数据库,如何选择?有必要使用云数据库吗?云吞铺子告诉你使用阿里云RDS云数据库的理由: RDS的高可用性 RDS提供了主备双节 ...
- 云数据库(RDS)- ECS自建MySQL和阿里云RDS的区别
很多阿里云ECS用户都会考虑是使用ECS自建数据库还是使用阿里云的RDS云数据库,如何选择?有必要使用云数据库吗?阿里云百科网告诉你使用阿里云RDS云数据库的理由. RDS的高可用性 RDS提供了主备 ...
最新文章
- 使用vlc播放m3u8网络视频教程
- xman的思维导图快捷键_Xmind:ZEN思维导图有哪些使用技巧,最实用的快捷键是什么?...
- python程序经常被杀死之谜
- golang管道channel的遍历和关闭:应该使用for...range来遍历
- Flume实操(四)【单数据源多出口案例(选择器)】
- nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测
- 恋爱盲盒小程序云开版源码
- 产品开发的组织架构和开发管理
- android studio计算机代码,Android Studio实现简易计算器
- 2022全新彩虹商城知识付费模板源码+修复改良版
- 地区 经纬度 json 数据
- 联想笔记本电脑(LENOVO)关闭触摸板
- 可以用美图秀秀裁一寸照片
- iOS从零开始学习socket编程——高并发多线程服务器
- T-BOX,OBD区别
- Visual Studio Code中设置HTML/HTML5模板
- 关于IDEA中使用git更新代码,会覆盖掉未提交的新代码解决问题
- python程序设计,猜数游戏编程实践课程实验
- Redis存储数据类型,及存取值方法
- 程序员的工资是不是被高估了?