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-多源复制(多主单从)的更多相关文章

  1. MySQL5.7多源复制

    MySQL5.7开始支持多源复制,也就是多主一从的复制架构: 使用多源复制的考虑: 1.灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了),还有最后一个救命稻草: 2.备份:直接 ...

  2. MySQL5.7多源复制实践

    MySQL5.7开始新增多源复制功能,即允许一个salve同时复制多个主库的事务,slave会创建通往每个主库的管道.多源复制在应用来自多个源的事务的时候不会对有冲突的事务进行检测. 配置实现 主库支 ...

  3. Mysql5.7多源复制,过滤复制一段时间后增加复制一个库的实现方法

    多源复制如果是整个实例级别的复制,那不存在下面描述的情况. 如果是对其中一个或多个主实例都是过滤复制,并且运行一段时间后,想在这个源上再增加一个库怎么实现?   主1:192.168.1.10 330 ...

  4. MySQL5.7 多源复制监控脚本

    #!/bin/bash :<<BLOCK Version : v1.0 2018-12-21 MySQL多源复制检测脚本 监控配置放在 $CONFIG_FILE 中,内容如下 #mysql ...

  5. mysql5.7 安装和多源复制实践

    MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日子的复制或者基于事务的复制.下面我们说 ...

  6. MySQL多源复制(八)

    一.什么是多源复制 MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日志的复制或者基于事 ...

  7. MySQL5.7之多源复制&Nginx中间件(下)【转】

    有生之年系列----MySQL5.7之多源复制&Nginx中间件(下)-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1 ...

  8. MySQL5.7多主一从(多源复制)同步配置

    MySQL5.7多主一从(多源复制)同步配置(抄袭) 原文地址:https://my.oschina.net/u/2399373/blog/2878650 多主一从,也称为多源复制,数据流向: 主库1 ...

  9. MySQL灾备恢复在线主从复制变成主主复制及多源复制【转】

    生产主主复制(A<--->B),和灾备主从复制(B--->C).当生产出现问题时,数据写入切换到灾备数据库,待生产恢复后,将灾备回写到生产.步骤如下: 1.灾备与生产其中一台建立主主 ...

随机推荐

  1. ios app 解决微信扫二维码不能跳转问题

    <script> (function(){ // Setup GA (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i ...

  2. Where does beauty come from?

    One more question, rational beauty should come from a dedicated brain and mind. Should there be more ...

  3. AJAX简单的数据增删改与分页应用

    运行截图: PageBar.js: /* * 说明: * 整体思想,1.第一页时不显示:首页,上一页, * 2.最后一页时不显示:下一页,尾页 * 3.中间有 5 页导航, * 若:3.1.(总页数& ...

  4. contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve

    http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...

  5. 利用最新版的RubyMine2016.2开发Ruby On Rails 程序

    经过我的前两篇博文 ”Ruby On Rails环境搭建“ 和”Ruby On Rails 环境搭建MySQL数据库连接“ 我们已经具备了开发Ruby On Rails程序的一切要素,但是天天对着do ...

  6. java项目中可能会使用到的jar包解释

    一.Struts2 用的版本是struts2.3.1.1 一个简单的Struts项目所需的jar包有如下8个 1. struts2-core-2.3.1.1.jar: Struts2的核心类库. 2. ...

  7. Css3中的变形与动画

    新的转换属性 下面的表格列出了所有的转换属性: 属性 描述 CSS transform 向元素应用 2D 或 3D 转换. 3 transform-origin 允许你改变被转换元素的位置. 3 2D ...

  8. paper 21 :Libsvm的安装和使用

    看了很多资料(包括我们实验室群里师兄上传的资料),算是掌握了libsvm的正确安装和使用,把结果告诉大家以方便以后使用. 1. 参考网站: libsvm库下载:http://www.csie.ntu. ...

  9. paper 1:图像特征提取

    特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...

  10. oracle表分区

    注:新建分区表前要先准备好要用的表空间 一. oracle分区类型: 范围分区(Range分区) 列表分区(List分区) 散列分区(Hash分区) 组合分区(Composite Partitioni ...