文档章节

Mysql主从同步

风雪满弓刀
 风雪满弓刀
发布于 07/04 18:39
字数 787
阅读 52
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

1主从同步

1.1Master

1.1.1配置--编辑 my.cnf

#编辑 mysql 的 /etc/my.cnf 配置文件
vi /etc/my.cnf

#添加如下配置
server-id=1  #设置服务 ID

log_bin=mysql-bin   #启动 binlog日志
sync-binlog=1  #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小
max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql,performance_schema,information_schema,sys #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

#binlong-do-db=lagou #生成日志文件的数据库

slave-skip-errors = all #跳过从库错误

1.1.2重启 mysql 服务

systemctl restart mysqld  

1.1.3 mysql 开放权限

#用户授权
mysql> grant replication slave on *.* to 'root'@'%' identified by 'root';
Query OK, 0 rows affected, 1 warning (0.18 sec)
#从节点授权
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
Query OK, 0 rows affected, 1 warning (0.09 sec)
#刷新缓存
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

1.1.4.查看mysql  master 状态

1.2 SLAVE

1.2.1 配置   /ect/my.cnf

   #添加配置
   server-id = 2  #编号
   log-bin=mysql-bin #开启 binlog  可选择
   relay-log = mysql-relay-bin   #relay 同步日志
   replicate-wild-ignore-table=mysql.%  #忽略哪些表和库
   slave-skip-errors=all #跳过错误,同步  慎用

#跳过所有的错误,继续执行复制操作

1.2.2 重启服务

systemctl restart mysqld

1.2.3 配置master地址,同步

mysql> change master to master_host="10.3.1.210", #masterIP
                       master_port=3306, #master 端口
                       master_user='root', #master 用户
                       master_password='root', #master 密码
                       master_log_file='mysql-bin.000002', #master主库 bin日志名称
                       master_log_pos=2009;  #master主库 同步位置

mysql> start  slave;  #启动 slave 状态;
mysql> show slave status \G; #显示 slave状态   停止slave 为  stop slave  清除 slave 为 reset slave

重点关注标红字段都为yes可同步。

同步错误处理,查看相关日志

解决 Slave_SQL_Running: No

mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave; 

2.半同步复制

2.1 Master

#查看是否可以 同步加载
mysql> select @@have_dynamic_loading;
+------------------------+
| @@have_dynamic_loading |
+------------------------+
| YES                    |
+------------------------+
1 row in set (0.02 sec)

#安装插件 rpl_semi_sync_master 
mysql> install plugin rpl_semi_sync_master  soname 'semisync_master.so';
Query OK, 0 rows affected (0.46 sec)

#查询相关 参数
mysql> show variables like '%semi%';
+-------------------------------------------+------------+
| Variable_name                             | Value      |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled              | OFF        |
| rpl_semi_sync_master_timeout              | 10000      |
| rpl_semi_sync_master_trace_level          | 32         |
| rpl_semi_sync_master_wait_for_slave_count | 1          |
| rpl_semi_sync_master_wait_no_slave        | ON         |
| rpl_semi_sync_master_wait_point           | AFTER_SYNC |
+-------------------------------------------+------------+
6 rows in set (0.31 sec)
# 开启 半同步复制
mysql> set global rpl_semi_sync_master_enabled=1;
Query OK, 0 rows affected (0.09 sec)
#设置延时 1秒
mysql> set global rpl_semi_sync_master_timeout=1000;
Query OK, 0 rows affected (0.00 sec)

为了让mysql在重启时自动加载该功能,在/etc/my.cnf中加入:

rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #1000为1000ms的超时时间。

2.2 slave

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (1.00 sec)

mysql> show variables like '%semi%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled     | OFF   |
| rpl_semi_sync_slave_trace_level | 32    |
+---------------------------------+-------+
2 rows in set (0.80 sec)

mysql> set global rpl_semi_sync_slave_enabled=1;
Query OK, 0 rows affected (0.00 sec)

为了让mysql在重启时自动加载该功能,在/etc/my.cnf中加入:

rpl_semi_sync_slave_enabled=1

2.3 日志查看

master 中  /var/log/mysqld.log

查看同步状态和节点

show global status like 'rpl%';

上一篇: Mysql-HMA 管理
下一篇: Gradle 安装
风雪满弓刀
粉丝 1
博文 73
码字总数 44700
作品 0
海淀
程序员
私信 提问
加载中
请先登录后再评论。
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
首列固定的列表

实现特殊的表格(UITableView)效果:即表格中的首列固定不动,而每一行除了首列均可左右拖动,以展现每一行更多内容。 作者谭林江(@无法越狱的痛)说:去益盟面试回来,感觉聊得有点郁闷,...

匿名
2013/01/24
1.3K
0
数据库代码辅助工具--MaoCaiJun.Database

MaoCaiJun.DataBase 是一个用于 Microsoft Visual Studio 的数据库代码生成组件。它是基于 xml 文件的代码创建工具,支持sql2000,sql2005,sql2008,access, SQLite MaoCaiJun.Database 数据库...

mccj
2013/02/06
2.4K
1
阿里云开放存储服务的C语言SDK--OSSC

OSSC(Aliyun Open Storage Service C SDK)为阿里云开放存储服务(OSS)提供了一套完整易用的C SDK。 OSSC完全采用C语言开发,并实现了类似面向对象的调用方式,遵循了良好的编码规范,目前O...

大卷卷
2012/10/22
4.6K
0
MySQL全文搜索引擎--mysqlcft

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很...

张宴
2012/11/29
1.6W
2

没有更多内容

加载失败,请刷新页面

加载更多

Subversion存储库中“分支”,“标记”和“主干”的含义是什么?

问题: I've seen these words a lot around Subversion (and I guess general repository) discussions. 我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话。 I have been us......

富含淀粉
今天
5
0
《Java8实战》笔记(03):Lambda表达式

本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达...

巨輪
今天
7
0
从其他文件夹导入文件 - Importing files from different folder

问题: I have the following folder structure. 我有以下文件夹结构。 application/app/folder/file.py and I want to import some functions from file.py in another Python file which r......

javail
今天
22
0
大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
今天
8
0
OSChina 周五乱弹 —— 特么是别的公司派来的特洛伊木马吧?

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《我会守在这里》- 毛不易 《我会守在这里》- 毛不易 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :股市连跪了五天,...

小小编辑
今天
77
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部