MySql5.7-多源复制(多主单从)
1.1.主库配置
my.cnf
#确保唯一
server-id=1
#作为Master要开启binlog
log-bin=mysql-bin
#binlog format有三种形式:Statement、Mixed、Row,默认设置为mixed
binlog-format=mixed
#需要同步的库,不指定默认同步全部库
binlog-do-db=radius
#不需要同步的库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#这个比较重要,直接影响同步的性能 延时等问题.mysql5.7多源复制参数,5.7之前版本可不加
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#GTID模式
gtid-mode=on
enforce-gtid-consistency
1.2创建主库授权从库同步的用户
mysql>grant replication slave on *.* to 'slave'@'192.168.100.%' identified by '308731044';
replication slave:远程用户备份权限
*.*:第一个星号代表库,第二个星号代表数据库里的表。可指定库和表
'slave'@'192.168.100.%':@前为用户名,@后为授权的IP段(就是允许那些IP使用这个账号权限访问)
'308731044':远程备份用户密码
1.3刷新设置(修改的内容刷新到数据库配置里 )
mysql>flush privileges;
查看和删除授权授权用户(删除不使用的账号)
查询用户:select user,host from mysql.user;
删除用户:Delete FROM mysql.user Where User='sns_qnzs' and Host='172.17.116.%';

1.4从库配置
#确保唯一
server-id = 3
#复制的库,不指定默认备份全部库
replicate-do-db = master1
replicate-do-db = master2
#不复制的库
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys
#binlog日志设置
relay-log = /home/mysql/data/
mysqld-relay-bin
log-slave-updates = ON
slave-parallel-type=LOGICAL_CLOCK
relay_log_recovery=ON
#超时
slave_net_timeout = 30
#复制并发数设置
slave_parallel_workers = 16
#从库复制跳过错误
slave-skip-errors = 1062,1053,1146,1213,1264,1205,1396
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#mysql5.7多源复制必须添加的参数(不加报错),5.7版本之前不用加
master_info_repository=TABLE
relay_log_info_repository=TABLE
#GTID模式(使用GTID就可以不用记录备份位置点)
gtid-mode=on
enforce-gtid-consistency
1.5.从库配置用户及binlog位置信息(推荐使用GTID模式)
#GTID模式配置
CHANGE MASTER TO MASTER_HOST='192.168.1.131', MASTER_USER='slave', MASTER_PORT=3451, MASTER_PASSWORD='xxxxxx', MASTER_AUTO_POSITION = 1 FOR CHANNEL 'master-1';
主库配置可以使用到多个主库上,从库添加相应的配置即可(GTID模式配置)
#Binlog模式
CHANGE MASTER TO
MASTER_HOST='192.168.100.108',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='308731044',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=107;
107就是备份binlog位置点。使用GTID可以省略
MASTER_LOG_POS=107;

查看主从复制状态:
show slave status \G;
show slave status for channel 'master-1' \G;
IO及SQL线程状态为YES时,表示正常

1.6重置备份配置
1.主库操作
restet master
2.从库操作
stop slave;
stop slave for channel 'master-1'
reset slave all for channel 'master-1'
restet master;
重复步骤1.5
start slave for channel 'master-1'
flush privileges;
mysql主库复制小结:
stop slave; #<==临时停止同步开关。
start slave;#<==临时停止同步开关。
show processlist;查看sql慢查询语句

set global sql_slave_skip_counter =1 ; #<==将同步指针向下移动一个,如果多次不同步,可以重复操作。
主库设置从库跳过错误设置:
1. 当从库复制遇到错误时,比如报错“要创建的数据库已存在”
解决方案: 让从库跳过这一步操作,继续执行其它的操作
方法一: 命令行实现,跳过这一步;
mysql> stop slave;
mysql> set global sql_slave_skip_counter =1;
mysql> start slave;
方法二: 配置文件中,指定忽略的错误;
[root@MySQL opt]# grep slave-skip /data/3308/my.cnf
slave-skip-errors = 1032,1062
grep slave-skip /data/3306/my.cnf
vim /data/3306/my.cnf
slave-skip-errors = 1032,1062,1007(添加可忽略错误状态)
数据库级联同步设置必要参数:
log-slave-updates #<==必须要有这个参数
log-bin = /data/3307/mysql-bin
expire_logs_days = 7 (七天自动删除binlog文件)
总结:
领导要求部署MySql多主单从,之前都是单间单主多从。听到多主单从后,表示一脸懵比。查询一番话。原来是MySql5.7新出的功能。
MySql5.7新功能-多源复制,可以节省服务器成本。提高服务器利用率。搭建和之前的版本大致步骤类似。使用GTID模式更加快捷。
但在集群的过程中,也遇到了很多的坑。大部分都是常见的错误。可以百度也可以根据错误日志进行排查(推荐),使用fpm打包了MySql。
以后也可以放到内网的yum源上,方便重复安装,每天记录一点点。
MySql5.7-多源复制(多主单从)的更多相关文章
- MySQL5.7多源复制
MySQL5.7开始支持多源复制,也就是多主一从的复制架构: 使用多源复制的考虑: 1.灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了),还有最后一个救命稻草: 2.备份:直接 ...
- MySQL5.7多源复制实践
MySQL5.7开始新增多源复制功能,即允许一个salve同时复制多个主库的事务,slave会创建通往每个主库的管道.多源复制在应用来自多个源的事务的时候不会对有冲突的事务进行检测. 配置实现 主库支 ...
- Mysql5.7多源复制,过滤复制一段时间后增加复制一个库的实现方法
多源复制如果是整个实例级别的复制,那不存在下面描述的情况. 如果是对其中一个或多个主实例都是过滤复制,并且运行一段时间后,想在这个源上再增加一个库怎么实现? 主1:192.168.1.10 330 ...
- MySQL5.7 多源复制监控脚本
#!/bin/bash :<<BLOCK Version : v1.0 2018-12-21 MySQL多源复制检测脚本 监控配置放在 $CONFIG_FILE 中,内容如下 #mysql ...
- mysql5.7 安装和多源复制实践
MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日子的复制或者基于事务的复制.下面我们说 ...
- MySQL多源复制(八)
一.什么是多源复制 MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日志的复制或者基于事 ...
- MySQL5.7之多源复制&Nginx中间件(下)【转】
有生之年系列----MySQL5.7之多源复制&Nginx中间件(下)-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1 ...
- MySQL5.7多主一从(多源复制)同步配置
MySQL5.7多主一从(多源复制)同步配置(抄袭) 原文地址:https://my.oschina.net/u/2399373/blog/2878650 多主一从,也称为多源复制,数据流向: 主库1 ...
- MySQL灾备恢复在线主从复制变成主主复制及多源复制【转】
生产主主复制(A<--->B),和灾备主从复制(B--->C).当生产出现问题时,数据写入切换到灾备数据库,待生产恢复后,将灾备回写到生产.步骤如下: 1.灾备与生产其中一台建立主主 ...
随机推荐
- ads 调试
1.路径错误,中文名称 2.定义错误
- 用Appium去操作移动设备上的chrome
最近在积极努力的学习Appium,今天成功运行了官网上的demo,在此做一个小小的总结: 前期准备工作: (1)在要运行的真机或模拟器上安装chrome. 注意:x86的虚拟机是不支持的,但是经过本人 ...
- javascript浏览器对象
window对象 1.window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 所有JS全局对象.函数以及变量均自动成为window对象的成员 全局变量是window对象的 ...
- sql存储过程传入ID集合,和临时表的使用
方式1: Declare @SQL NVarChar(max) set @SQL='select *from Loanee as a ApplicationID in ('+@Application ...
- -Xloggc:log/gc.log 指定GC log的位置
-Xloggc:log/gc.log指定GC log的位置,以文件输出帮助开发人员分析问题
- PAT乙级 1008. 数组元素循环右移问题 (20)
1008. 数组元素循环右移问题 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 一个数组A中存有N(N>0)个整数,在不允 ...
- c语言对文件操作完成后尽量手动关闭
是这样的,我写了一个函数,传给函数文件名,在函数中对文件写入一些内容.在这个函数的后面没有手动使用 fclose. 当在程序中对这个函数调用两次之后,最终把要写入的文件写错了. 在第二次使用 fope ...
- Parse_ini_file
parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置. 注释:本函数可以用来读取你自己的应用程序的配置文件.本函数与 php.ini 文件没有关系,该文件在运行脚本时就 ...
- 锋利的JQuery(四)
表单: 一个表单有三个基本组成部分:表单标签.表单域.表单按钮 Cookie: 在jQuery中有一款Cookie插件,<script src="js/jquery.cookie.js ...
- Android上传头像代码,相机,相册,裁剪
activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...