失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > rhel6系统中 mysql 5.6复制新特性下主从复制配置[基于GTID]

rhel6系统中 mysql 5.6复制新特性下主从复制配置[基于GTID]

时间:2022-12-19 06:39:40

相关推荐

rhel6系统中 mysql 5.6复制新特性下主从复制配置[基于GTID]

数据库|mysql教程

主从复制,mysql5.6.14,新特性

数据库-mysql教程

手机订餐系统源码java,vscode左右缩进,ubuntu内网更新,tomcat日志未知,sqlite 的api,获取服务器操作系统,jq滑块插件,金融前端ui框架,反爬虫Splash,国内php培训机构,seo关键词优化代理,游戏门户网站 织梦,网页制作表单验证,手机电话模板下载,oa页面框架,照片管理系统代码,php小程序下载lzw

更多博文请关注:没有伞的孩子必须努力奔跑()1.mysql5.6在复制方面的新特性:(1).支持多线程复制:事实上是针对每个database开启相应的独立线

windows动态桌面源码,ubuntu 蓝牙无法开启,互动易爬虫源码,约瑟夫php,seo文章构思lzw

微挚源码,vscode怎么显示照片,ubuntu设置右键,tomcat 打开ssl,sqlite所有表记录数,前端工程师需要掌握的框架,大型爬虫采集系统建设,php 文本输出,创意seo提高口碑,团购网站 即时到账,旋转摇奖网页制作报告,phpwind模板安装lzw

(2).支持启用GTID,在配置主从复制,传统的方式里,你需要找到binlog和POS点,然后change master to指向.在mysql5.6里,无须再知道binlog和POS点,只需要知道master的IP/端口/账号密码即可,因为同步复制是自动的,mysql通过内部机制GTID自动找点同步.

(3).基于Row复制只保存改变的列,大大节省Disk Space/Newwork resources和Memory usage.

(4).支持把Master 和Slave的相关信息记录在Table中,原来是记录在文件里,记录在表里,增强可用性

(5).支持延迟复制

注:

关于 server_uuid 的解释:服务器身份ID。在第一次启动Mysql时,会自动生成一个server_uuid并写入到数据目录下f文件里,官方不建议修改。

[root@client102 ~]# cat /home/mysql/data/f

[auto]

server-uuid=14be3ddd-4e92-11e3-8335-000c299c1b31

(5).不支持CREATE TABLE … SELECT语句。因为该语句会被拆分成create table 和insert两个事务,,并且这个两个事务被分配了同一个GTID,这会导致insert被备库忽略掉[这条语句在游戏数据库用的比较多,通常用来将大表分成小表]

4.基于GTID(全局事务标识符)mysql主从复制配置演示:

(1).默认主DB server和从DB server数据库都已经安装好,我的两台DB server都已经安装好(5.6.14版本),都会是双实例[这里我使用3307端口的实例]

注:两台机器的的selinux都是disable(永久关闭selinux,请修改/etc/selinux/config,将SELINUX改为disabled),防火墙可以选择关闭,开启的话也行[不行的话,添加防火墙策略]

主DB server:192.168.1.102:3307

从DB server:192.168.1.100:3307

(2).修改主DB server的配置文件(/etc/f) [client102为主DB server] –> 主DB sever的配置文件和从DB server文件基本一样,方便搭建HA

[root@client102 ~]# vim /etc/f

# 在[mysqld]里加入如下代码[里面原代码保留,有重复的部分,以这部分为准]

# 设置server_id,一般建议设置为IP,或者再加一些数字[在以前版本为server-id]

server_id =1021

# 二进制日志的格式:有row、statement和mixed三种

# 注:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,MySQL官方认为STATEMENT这个已经不再适合继续使用;但mixed类型在默认的事务隔离级别下,可能会导致主从数据不一致; 推荐使用 row

binlog-format=ROW

# 这个选项允许应用程序只能对行的镜像数据进行复制,而不在关心行是否已经进行了DML操作.这提高了主从机器的复制吞吐量,减少了二进制日志所占用的磁盘空间、网络资源和内存占用.

binlog-row-image = minimal

# 开启二进制日志功能,可以随便取,最好有含义

log-bin=mysql3307-bin

# log-slave-updates/gtid-mode/enforce-gtid-consistency/report-port/report-host:用于启动GTID及满足附属的其它需求[其中启动GTID必须同时设置gtid-mode/enforce-gtid-consistency/]

report-host=192.168.1.102

report-port=3307

gtid-mode=on

enforce-gtid-consistency=true

log-slave-updates=true

# master-info-repository/relay-log-info-repository都设置为TABLE,mysql.slave_master_info与 mysql.slave_relay_log_info 中,table都是innodb类型的,支持事务,比文件安全

# 默认值是FILE, 比如master info就保存在master.info文件中,relay log info保存在relay-log.info文件中,如果服务器意外关闭,正确的relay info 没有来得及更新到 relay-log.info文件,这样会造成数据丢失

master-info-repository=TABLE

relay-log-info-repository=TABLE

# 启用之后,使binlog在每N次binlog写入后与硬盘 同步

sync-master-info=1

# 以下是对二进制日志一些设置

binlog_cache_size = 4M

max_binlog_size = 1G

max_binlog_cache_size = 2G

# 以下这几个参数是启用binlog/relaylog的校验,防止日志出错

binlog-checksum=CRC32

slave_allow_batching = 1

master-verify-checksum=1

slave-sql-verify-checksum=1

# 启用这个参数,可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度

# 只对row binlog格式有效.启用后,会向binlog中写入更多的调试信息,比如sql语句自身都会被写进去. mysqlbinlog -vv 可以看到.

binlog-rows-query-log_events=1

# 开启基于库的多线程复制.默认是0,不开启,最大并发数为1024个线程

slave-parallel-workers=4

# 这两个是启用relaylog的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止.

relay_log_purge = 1

relay_log_recovery = 1

(3).启动数据库服务器,并登陆数据库,授予相应的用户用于同步

# 查看GTID是否开启[enforce_gtid_consistency/gtid_mode 为ON,表示已经开启]

mysql> show global variables like ‘%gtid%’;

+————————–+——-+

| Variable_name

| Value |

+————————–+——-+

| enforce_gtid_consistency | ON |

| gtid_executed

|

|

| gtid_mode

| ON |

| gtid_owned

|

|

| gtid_purged

|

|

+————————–+——-+

# 我这里是多实例mysql,所以启动是这样的,如果大家是单实例的,就直接启动就可以[/etc/init.d/mysqld start]

[root@client102 ~]# mysqld_multi start 3307

# 登陆mysql 服务器

[root@client102 ~]# mysql -uroot -S /usr/local/mysql/mysqld3307.sock -p

# 授予用户权限用于主从同步

mysql> grant replication slave on *.* to ‘kongzhong’@’192.168.1.100’ identified by ‘kongzhong’;

# 刷新授权表信息

mysql> flush privileges;

(4).从DB server配置文件添加代码如下,和主基本一样

[root@client100 ~]# vim /etc/f

# 在[mysqld]下添加如下代码[里面原代码保留,有重复的部分,以这部分为准]

server_id =1002 # 此处和主DB server不一样,唯一值

binlog-format=ROW

binlog-row-image = minimal

log-bin=mysql33071-bin

# 此处和主DB server不一样

report-host=192.168.1.100 # 此处和主DB server不一样

report-port=3307

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=4

binlog_cache_size = 4M

max_binlog_size = 1G

max_binlog_cache_size = 2G

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

log-slave-updates=true

relay_log_purge = 1

relay_log_recovery = 1

如果觉得《rhel6系统中 mysql 5.6复制新特性下主从复制配置[基于GTID]》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。