MariaDB复制架构中应该注意的问题
一、复制架构中应该注意的问题:
1、限制从服务器只读
在从服务器上设置read_only=ON,此限制对拥有SUPPER权限的用户均无效;
阻止所有用户(在从服务器执行一下命令并保持此线程,也就是执行后不退出改终端):
mysql> FLUSH TABLES WITH READ LOCK;
2、如何保证主从复制的事务安全?
在master节点启用参数:
sync_binlog=ON
如果用到的为InnoDB存储引擎:
innodb_flush_logs_at_trx_commit=ON
innodb_support_xa=ON
sync_master_info
在slave节点:
skip_slave_start=ON(手动启动salve线程)
sync_relay_log
sync_relay_log_info
二、主主复制:
互为主从:
1、数据不一致;(只能二选其一)
2、自动增长id:
配置一个节点使用奇数id
auto_increment_offset=1
auto_increment_increment=2
另外一个节点使用偶数id
auto_increment_offset=2
auto_increment_increment=2
配置步骤:
1、各节点使用一个唯一server_id;
2、都启用binary_log和relay_log;
3、创建拥有复制权限的用户账号;
4、定义自动增长id字段的数值范围为奇偶;
5、均把对方指定为主节点,并启动复制线程;
三、半同步复制:
master:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
mysql> SET GLOBAL VARIABLES rpl_semi_sync_master_enabled=1;
mysql> SHOW GLOBAL VARIABLES LIKE '%semi%';
mysql> SHOW GLOBAL STATUS LIKE '%semi%';
slave
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
mysql> SET GLOBAL VARIABLES rpl_semi_sync_master_enabled=1;
四、复制过滤器:
让从节点仅复制指定的数据库,或指定数据库的指定表;
有两种实现方式
1、主服务器仅向二进制日志中记录与特定数据库(特定表)相关的事件;
问题:时间还原无法实现:不建议使用
binlog_do_db= # 数据库白名单列表
binlog_ignore_db= # 数据库黑名单列表
2、从服务器SQL_THREAD在replay中继日志中的事件时,仅读取与特定数据库(特定表)相关的事件并应用于本地
问题:会造成网络及磁盘IO浪费
库级复制
replicate_do_db= # 复制库的白名单
replicate_ignore_db= # 复制库的黑名单
表级复制
replicate_do_table= # 复制表的白名单
replicate_ignore_table= # 复制表的黑名单
五、基于SSL复制:
前提:支持SSL
查看方式:SHOW GLOBAL VARIABLES LIKE '%ssl%';
1、master配置证书和私钥:并且创建一个要求必须使用SSL连接的复制账号;
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'fansik'@'192.168.1.1' IDENTIFIED BY 'fanjinbao' REQUIRE SSL;
2、slave端使用CHANGE MASTER TO命令时指明ssl相关选项;
MASTER_SSL = {0|1}
MASTER_SSL_CA = 'ca_file_name'
MASTER_SSL_CAPATH = 'ca_directory_name'
MASTER_SSL_CERT = 'cert_file_name'
MASTER_SSL_CRL = 'crl_file_name'
MASTER_SSL_CRLPATH = 'crl_directory_name'
MASTER_SSL_KEY = 'key_file_name'
MASTER_SSL_CIPHER = 'cipher_list'
MASTER_SSL_VERIFY_SERVER_CERT = {0|1}
MASTER_TLS_VERSION = 'protocol_list'
IGNORE_SERVER_IDS = (server_id_list)
六、与复制功能相关的文件:
master.info:用于保存slave连接至master时的相关信息,例如账号、密码、服务器地址等;
relay-log.info:保存在当前slave节点上已经复制的当前二进制日志和本地relay log日志的对应关系;
七、复制的监控和维护:
1、清理日志:
SHOW BINARY LOGS;
PURGE BINARY LOGS TO 'mysql-bin.000008'; # 清理8之前的日志
2、复制监控
SHOW MASTER STATUS;
SHOW BINLOG EVENTS;
SHOW BINARY LOGS;
SHOW SLAVE STATUS;
SHOW PROCESSLIST;
3、从服务器是否落后于主服务:
SHOW SLAVE STATUS\G;中查看一下选项
Seconds_Behind_Master: 0
4、如何确定主从节点数据是否一致:
percona-tools
5、数据不一致如何修复?
重新复制
MariaDB复制架构中应该注意的问题的更多相关文章
- mariadb主从架构
mariadb主从架构(异步)和集群 一般应用的场所是网站,主的机器是可以写可以读,从的机器可以读,也可以写,但不会同步.只有主的机器增删改,从的机器才会同步. 主从至少三个线程:dump.I/O t ...
- mariadb主从复制架构学习笔记
复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 MySQL升级测试 在从服务器上有两个线程: I/O线程:从master请求二进制日志信息,并保存至中继日志 SQ ...
- Chris Richardson微服务翻译:微服务架构中的服务发现
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现(本文) 微服务之事件驱动的数据管理 微服 ...
- mysql 架构篇系列 1 复制原理和复制架构
一. 复制概述 mysql 从3.23版本开始提供复制功能,复制是指将主数据库的ddl和dml操作通过二进制日志传到复制服务器(也叫从服务器)上,然后在从服务器上对这些日志重新执行(也叫重做),从而使 ...
- 配置percona mysql server 5.7基于gtid主主复制架构
配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...
- (9) MySQL主主复制架构使用方法
一. 回忆主从复制的一些缺点 上节说到主从复制的一些问题 我们再来回忆一下 主从复制,增加了一个数据库副本,从数据库和主数据库的数据最终会是一致的 之所以说是最终一致,因为mysql复制是异步的,正常 ...
- 搭建MySQL的主从、半同步、主主复制架构
复制其最终目的是让一台服务器的数据和另外的服务器的数据保持同步,已达到数据冗余或者服务的负载均衡.一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作为主服务器.主从服务器可以位于不同的网络拓 ...
- 理解S12(X)架构中的地址映射方案
目录 1. 介绍 2. CPU 本地地址 3. 分页窗口 4. 内存页 5. 控制各个对象在内存中放置的位置 介绍 在一个S12或S12X架构中,很有必要分清楚两种类型的内存地址:banked和non ...
- Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介(ad/da) 在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic.Linein或者其他输入源的模拟信 ...
随机推荐
- c# 获取Excel内容的分析
现在主流的Excel文档有2003和2007 c#获取 Excel2003 连接字符串 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0; ...
- FileMonitorKit 文件操作监控工具
本人业余时间写的一款文件操作监控工具,功能稳定.效果非常好,有兴趣的网友能够下载玩玩. 下载地址: 32位:http://pan.baidu.com/s/1o64ZFIi FileM ...
- jQuery 实战读书笔记之第三章:操作 jQuery 集合
创建新 HTML 元素 $('<div>Hello</div>'); /* 创建等价的空 div 元素 */ $('<div>'); $('<div /> ...
- gcc 遇到过的语法问题
1.在ubuntu 12.04 环境下,在/etc/ld.so.conf.d/目录里添加某个so库的配置路径,比如 /home/myself/abc/lib/ 执行 sudo ldconfig
- 用阿里云搭建Http代理服务器
先说下我的运行环境: Ubuntu16.04+python3.5,用的是阿里云ECS乞丐版. 搭建步骤: [python] view plain copy 0. 直接用xshell或putty远程到云 ...
- vSphere Web Client使用指南之安装配置
vSphere Web Client使用指南之安装配置 vSphere Web Client是为忙碌的管理员提供的一款通用的.基于浏览器的VMware管理工具,能够监控并管理VMware基础设施.在摆 ...
- datagrid加分组后的效果
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAd8AAADdCAIAAAB13e+wAAAZgElEQVR4nO2d/28b533Hn7+APxnYgL ...
- 面试题思考:Cookie 和 Session的区别
面试回答: 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用ses ...
- Delphi 发送邮件 通过Office Outlook
Delphi 发送邮件 通过Office Outlook 网上搜到的Delphi邮件发送系统,绝大多数是使用SMTP协议来发送. 但是事实上它们已经过时了,大多数邮件服务器已经屏蔽了Delphi In ...
- Vue与React的异同 -生命周期
vue的生命周期 创建前 beforeCreate 创建 create 挂载前 beforeMount 挂载 mounted 更新前 beforeUpdate 更新 updated 销毁前 bef ...