(5.3)mysql高可用系列——mysql复制之复制的参数
参考:https://www.iteye.com/blog/shift-alt-ctrl-2269539
详情
【1】参数
#【1.1】基本参数
bind-address=192.168.1.201
server_id=2013306 #主从不相同,建议IP+端口
#skip_name_resolve=off #跳过主机名/域名解析
transaction-isolation=read-committed #事务隔离级别设置成RC
#【1.2】binlog二进制日志参数
log_bin=/mysql/log/3306/binlog/mysql-bin
log_bin_index=/mysql/log/3306/binlog/mysql-bin.index
binlog_format=row #行格式,必须
binlog_row_query_log_events=on #二进制日志中记录更详细的SQL操作
sync_binlog=1 #默认,MySQL每次提交事务之前会将二进制同步到磁盘上
innodb_flush_log_at_trx_commit=1 #默认,每次事务提交时MySQL都会把log Buffer写入log fiel,并且flush到磁盘。
log_bin_trust_function_creators=1 #默认为0,该参数是同步函数和存储过程
max_binlog_size=2048M #默认为1024M
expire_logs_days=7 #binlog保留多少天,看具体安排
binlog_cacahe_size=1M #默认32K,binlog缓存大小,设置时要当心,根据业务繁忙情况建议1-4M。
innodb_support_xa=1 #这个参数是在主库上设置的,默认自动开启。分布式事务参数。
#这个参数确保事务日志写入binlog的顺序是与事务的time-line是一致的。
# 【1.3】关于relay_log中继日志参数
relay_log=/mysql/log/3306/relaylog/mysql-relay.log
relay-log-recover=1
#该参数为了实现 ,I/O thread crash safe #IO线程安全
#打开replication中继日志崩溃恢复模式,replication支持中继日志的自我修复功能。
#当slave从库宕机后,如果replay-log发生损坏,导致一部分中继日志没有处理,就自动放弃未执行的replay-log。
#在slave崩溃或正常启动时,未应用完的relay_log会被删掉,重新从master请求binlog再次生成自上一个完全应用点后的位置拉取relay_log
relay_log_info_repository=table
#该参数为了实现,SQL thread crash safe #SQL线程安全
#默认是file,SQL线程的数据回放是写数据库操作,relay-info是写文件操作,这2个操作很难保证一致性,relay-info将写入到 mysql.slave_relay_log_info 这张表
master_info_repository=table
#默认是file,io线程也是接受一个个的event,将接收到的event,通过设置参数#master_info_repository可以将master-info信息写到什么位置,性能上比设置为file有很高的提升,可靠性也得到保证。
#设置为table后,master-info将信息保存到mysql.slave_master_info
#【1.4】关于同步方式的参数
loose_rpl_semi_sync_master_enabled=1 #MySQL开启主的半同步复制(rpl_semi_sync_master_enabled)
loose_rel_semi_sync_slave_enabled=1 #MySQL5.6开启从的半同步复制
loose_repl_semi_sync_master_timeout=5000 #超时5秒,切回异步
rpl_semi_sync_master_wait_for_slave_count=1 #有多少个从返回标识就可以提交:一主多从的情况下只要有1个slave的ACK返回给了主库,就会进行commit
rpl_semi_sync_master_wait_point=AFTER_SYNC #MySQL 5.7的方法,AFTER_SYNC(default,增强半同步) & AFTER_COMMIT(传统半同步)
#rpl_semi_sync_master_wait_point= #MySQL 5.7的方法:开启半同步复制
#【1.5】关于GTID的参数
gtid_mode=on #开启GTID
#(1)on:产生GTID,slave只接受带GTID的事务 (2)on_permissive:产生GTID,slave接受不带GTID的事务也接受带GTID的事务
#(3)off:不产生GTID,slave只接受不带参GTID的事务 (4)off_permissive:不产生GTID,slave接受带GTID也接受不带GTID的事务
log_slave_updates=1 #从库relay log中的重做记录在从库的binlog上记录,如果多个从库在主从切换时建议关掉,避免传输重复日志导致同步错误
enforce_gtid_consistency=1 #on:当发现语句/事务不支持GTID时,返回错误信息 WARN:发现不支持返回警告 #off:不检查
gtid_next:automatic #获取指定的GTID下一个值
session_track_gtids #捕获跟踪GTID事务信息,默认off,OWN_GTID:返回当前事务的GTID,ALL_GTIDS:返回系统执行的所有GTID(GTID_EXECUTED)
binlog_gtid_simple_recovery=1 #5.7.6以下默认off,5.7.6以上默认on . 这个变量用于在MySQL重启或启动的时候寻找GTIDs过程中,控制binlog 如何遍历的算法?
. 当binlog_gtid_simple_recovery=FALSE 时:
为了初始化 gtid_executed,算法是: 从newest_binlog -> oldest_binlog 方向遍历读取,如果发现有Previous_gtids_log_event , 那么就停止遍历
为了初始化 gtid_purged,算法是: 从oldest_binlog -> newest_binlog 方向遍历读取, 如果发现有Previous_gtids_log_event(not empty)或者 至少有一个Gtid_log_event的文件,那么就停止遍历
. 当binlog_gtid_simple_recovery=TRUE 时:
为了初始化 gtid_executed , 算法是: 只需要读取newest_binlog
为了初始化 gtid_purged, 算法是: 只需要读取oldest_binlog
. 当设置binlog_gtid_simple_recovery=TRUE , 如果MySQL版本低于5.7.7 , 可能会有gitd计算出错的可能,具体参考官方文档详细描述
#【1.6】关于复制过滤参数
主:
binlog-do-db=db_name #binlog只把该库的操作记录到binlog,每一行一个数据库,多个数据库需要另起行
binlog-ignore-db=db_name #表示忽略某个数据库,除了这个数据库之外都复制,每一行一个数据库,多个数据库需要另起行
从:
replicate_do_db=db_name #只复制某个库,每个库一行,多个库需要另起行
replicate_do_db=db_name #不复制某个库,每个库一行,多个库需要另起行
replicate_do_table=table_name #只复制某个表
replicate_wild_do_table=table_name #解决跨库更新问题,需要与 replicate_do_table 同时使用
replicate_ignore_table #不复制某个表
replicate_wild_ignore_table #解决跨库更新问题,需要与 replicate_ignore_table同时使用
#原因是,设置relicate_do_db或relicate_ignore_db后,MySQL执行sql前检查的是当前默认的数据库,所以跨库更新语句会在slave上被忽略。
#如果从库是要在线复制过滤,stop slave; CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('erp_ivedeng_com.T_BRAND','erp_ivedeng_com.T_DEPARTMENT_FEE_ITEMS');
7.其他重要参数
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4
read_only=1
slave_skip_errors=ddl_exist_errors
slave_preserve_commit_order=1
#mysql5.7GA 版本推出的 Enhanced Multi-threaded Slaves功能
#彻底解决了之前版本主备数据复制延迟的问题,开启并行复制(multi-threaded slave)
--------------------------------------------参数释义-----------------------------------
slave-parallel-type=LOGICAL_CLOCK
区别了解参考:https://www.cnblogs.com/langdashu/p/6125621.html
#(1)DATABASE:兼容MySQL5.6基于 schema级别的并发复制
#(2)MySQL5.7 默认值是基于库的并行复制方式。即 LOGICAL_CLOCK:基于组提交的并行复制方式;组提交,是一堆食物的集合,减轻IO压力。
slave-parallel-workers # 4个SQL Thread 来进行并行复制(应用回放线程,即应用relay log的线程),可以动态调整复制线程数(直接设置此全局变量,且一定要重启slave线程)
read_only 与 super_read_only #在slave设置之后只能读不能写但super可以,除非设置super_read_only,super_read_only 包含 read_only
slave_skip_errors
#默认为off,选项一共有4个,off,all,ErrorCode,ddl_exist_errors(mysql5.6、mysql cluster ndb7.3后添加该参数).
#ddl_exist_errors 包含了一系列error code(1007,1008,1050,1051,1054,1060,1061,1068,1094,1146)等
slave_preserve_commit_order # Slave 上 commit的顺序保持一致,必须为1,否则可能会有GAP锁产生
(5.3)mysql高可用系列——mysql复制之复制的参数的更多相关文章
- (5.8)mysql高可用系列——MySQL中的GTID复制(实践篇)
一.基于GTID的异步复制(一主一从)无数据/少数据搭建 二.基于GTID的无损半同步复制(一主一从)(mysql5.7)基于大数据量的初始化 正文: [0]概念 [0.5]GTID 复制(mysql ...
- (5.3)mysql高可用系列——mysql复制(理论篇)【续写中】
关键词:mysql主从复制,mysql复制,MGR,mysql并行复制 目录 [1]mysql支持的复制类型 [2]mysql的主从4种同步方式介绍 (1)异步 (2)同步 (3)5.6 半同步 (4 ...
- (5.6)mysql高可用系列——MySQL Utilities 管理工具
关键词:mysql工具集,mysql管理工具,mysql utilities [1]安装mysql utilities cd /download wget https://cdn.mysql.com/ ...
- (5.7)mysql高可用系列——MySQL中的GTID复制(理论篇)【转】
转自:https://blog.csdn.net/wmq880204/article/details/53160078 一.GTID的概述: 1.全局事物标识:global transaction i ...
- (5.5)mysql高可用系列——MySQL半同步复制(实践)
关键词,mysql半同步复制 [0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复 ...
- (5.4)mysql高可用系列——MySQL异步复制(实践)
关键词:mysql复制,mysql异步复制,mysql传统异步复制 [1]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数 ...
- MySQL高可用解决方案(MySQL HA Solution)
http://blog.sina.com.cn/s/blog_7e89c3f501012vtr.html 什么是高可用性?很多公司的服务都是24小时*365天不间断的.比如Call Center.这就 ...
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
本文引用于http://blog.csdn.net/kk185800961/article/details/51147029 MySQL 高可用:mysql+mycat实现数据库分片(分库分表) 什么 ...
- MySQL高可用系列之MHA(二)
一.參数说明 MHA提供了一系列配置參数.深入理解每一个參数的详细含义,对优化配置.合理使用MHA非常重要.非常多高可用性也都是通过合理配置一些參数而实现的. MHA包含例如以下配置參数,分别说明例如 ...
随机推荐
- jquery reset选择器 语法
jquery reset选择器 语法 作用::reset 选择器选取类型为 reset 的 <button> 和 <input> 元素.直线电机滑台 语法:$(":r ...
- 笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法
问题:在笔记本安装双系统(Windows7+Ubuntu14.04)[先安装Windows,后安装Ubuntu]后,进入Windows时出现了花屏. 问题原因:笔记本只有集显,在系统启动时会先加载Ub ...
- jQuery属性操作之类样式操作
类样式的操作:指对DOM属性className进行添加.移除操作.比如addClass().removeClass().toggleClass(). 1. addClass() 1.1 概述 $(se ...
- BZOJ 4221 [JOI2012春季合宿]Kangaroo (DP)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4221 题解 orz WYC 爆切神仙DP 首先将所有袋鼠按大小排序.考虑从前往后DP, ...
- IDEA的小技巧:1.Java代码不被识别2.目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题
在Idea上面一个正常的代码结构是这个样子的,但是有的时候,比如说当我们直接在一个文件夹中随便的创建的时候就会出现一些问题,比如说想让某个地方为代码目录,某个地方为资源目录的时候,直接的创建目录是不成 ...
- LeetCode 136. 只出现一次的数字(Single Number)
题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...
- layui中从内置的分页中获取总记录数(转)
封装的工具类: https://blog.csdn.net/QYHuiiQ/article/details/82147537
- Docker关键概念阐述
要了解Docker需要对其体系结构中的几个关键概念有所了解,主要包括image.container.service.swarm.stack等. 在介绍这几个概念时,会使用到一个测试环境,这个测试环境是 ...
- rocketmq的linux搭建环境
3.3. 上传解压[两台机器] # 上传 apache-rocketmq.tar.gz 文件至/usr/local # tar -zxvf apache-rocketmq.tar.gz -C /usr ...
- windows实用cmd命令总结
D: 进入D盘 cd D:\eclipse 进入D盘后进入D盘下的某个路径 Ipconfig 查看计算机ip Cls 清空命令行 ping ip(主机名) 测试网络是否畅通 Help 查看所有的d ...