一、复制架构中应该注意的问题:
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复制架构中应该注意的问题的更多相关文章

  1. mariadb主从架构

    mariadb主从架构(异步)和集群 一般应用的场所是网站,主的机器是可以写可以读,从的机器可以读,也可以写,但不会同步.只有主的机器增删改,从的机器才会同步. 主从至少三个线程:dump.I/O t ...

  2. mariadb主从复制架构学习笔记

    复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 MySQL升级测试 在从服务器上有两个线程: I/O线程:从master请求二进制日志信息,并保存至中继日志 SQ ...

  3. Chris Richardson微服务翻译:微服务架构中的服务发现

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现(本文) 微服务之事件驱动的数据管理 微服 ...

  4. mysql 架构篇系列 1 复制原理和复制架构

    一. 复制概述 mysql 从3.23版本开始提供复制功能,复制是指将主数据库的ddl和dml操作通过二进制日志传到复制服务器(也叫从服务器)上,然后在从服务器上对这些日志重新执行(也叫重做),从而使 ...

  5. 配置percona mysql server 5.7基于gtid主主复制架构

    配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...

  6. (9) MySQL主主复制架构使用方法

    一. 回忆主从复制的一些缺点 上节说到主从复制的一些问题 我们再来回忆一下 主从复制,增加了一个数据库副本,从数据库和主数据库的数据最终会是一致的 之所以说是最终一致,因为mysql复制是异步的,正常 ...

  7. 搭建MySQL的主从、半同步、主主复制架构

    复制其最终目的是让一台服务器的数据和另外的服务器的数据保持同步,已达到数据冗余或者服务的负载均衡.一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作为主服务器.主从服务器可以位于不同的网络拓 ...

  8. 理解S12(X)架构中的地址映射方案

    目录 1. 介绍 2. CPU 本地地址 3. 分页窗口 4. 内存页 5. 控制各个对象在内存中放置的位置 介绍 在一个S12或S12X架构中,很有必要分清楚两种类型的内存地址:banked和non ...

  9. Linux ALSA声卡驱动之七:ASoC架构中的Codec

    1.  Codec简介(ad/da) 在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic.Linein或者其他输入源的模拟信 ...

随机推荐

  1. .net获取客户端IP

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  2. linux学习笔记6--命令mv

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. mv命令用来对文件或目录重新命名,或者将文 ...

  3. 微信小程序4 - 几个ES6基础写法

    1. 默认参数 function demo(param){ param=param || {};} 新的写法,很直观 function demo(param={}){} 2. 简化方法,如你所见,de ...

  4. Hbase存储详解

    转自:http://my.oschina.net/mkh/blog/349866 Hbase存储详解 started by chad walters and jim 2006.11 G release ...

  5. 第二百一十二节,jQuery EasyUI,Combo(自定义下拉框)组件

    jQuery EasyUI,Combo(自定义下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方 ...

  6. JavaWeb——监听器

    监听器简介 监听器是指专门用于在其他对象身上发生的事件或者状态改变进行监听和相应处理的对象,当被监听的对象发生变化时立即采取相应的行动. 例如我们要实现统计一个网站的在线人数,就可以在Web应用应用程 ...

  7. cobbler 修改 distro_signatures.json

    edit file in /var/lib/cobbler/distro_signatures.json and restart cobblerd service 转自: https://lists. ...

  8. oracledbconsole db启动问题

    oracledbconsole db启动问题 被这个OracleDBconsole服务无法启动的问题折磨了两个星期了,今天很幸运,在网上无意间看到了一位大侠的思路,虽然错误的情况并不完全相同,但他的思 ...

  9. PHP 清除HTML代码、空格、回车换行符的函数

    function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,""); $str = ereg_rep ...

  10. 开发新手教程【三】Arduino开发工具

    Arduino开发环境搭建 获取Arduino IDE开发工具 下载地址 :http://arduino.cc/en/Main/Software 能够下载release 版.Beta版和前期版本号 A ...