(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包含例如以下配置參数,分别说明例如 ...
随机推荐
- Confluence 6.15 使用附件宏
希望添加附件宏到一个页面中: 从编辑工具栏中,选择 插入(Insert) > 其他宏(Other Macros) 找到并且选择需要的宏. 可用使用自动完成加快这个过程:输入 { 然后开始输入 ...
- codevs 2291 糖果堆 x
题目描述 Description [Shadow 1]第一题 WJMZBMR买了很多糖果,分成了N堆,排成一列.WJMZBMR说,如果Shadow能迅速求出第 ...
- Python和Sublime的整合
按照下面的方式也可以运行py代码,但是交互方式不是很好,主要简单介绍了一下Python和Sublime的整合 一 Ctrl + B 二 SublimeREPL 安装SublimeREPL 1.打开P ...
- 2019暑假集训 windy数
题目描述 Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为2的正整数被称为 Windy 数. Windy 想知道,在A和B之间,包括A和B,总共有多少个 Windy 数? 输 ...
- mysql gis基本使用
# 插入空间数据 INSERT INTO `t_pot` VALUES ('1', '北京', POINT(116.401394,39.916042)); INSERT INTO `t_pot` VA ...
- python2.7与3.4共存【win】
python3并非完全向后兼容python2 方法一: 电脑里有3.4,再安装个2.7 下载地址:https://www.python.org/downloads/windows/ 解释下安装包: W ...
- Selenium chromeDriver 下载地址
http://chromedriver.storage.googleapis.com/ http://npm.taobao.org/mirrors/chromedriver/
- Linux下深度学习常用工具的安装
.Matlab 2015 64bit 的安装 (一)安装包下载 百度网盘: [https://pan.baidu.com/s/1gf9IeCN], 密码: 4gj3 (二)Vmware 使用Windo ...
- 六、Jmeter中自动提取Http请求参数,并put到Map,然后进行MD5加密
1.BeanShell PerOrocessor中的脚本 import src.com.csjin.qa.MD5.*;//个人jar包 import java.util.*; import java. ...
- leetcode 1278 分割回文串
time O(n^2*k) space O(n^2) class Solution { public: int palindromePartition(string s, int K) { //分成 ...