欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

第九周LINUX 学习笔记

程序员文章站 2022-05-25 20:58:08
基于GTID的mysql主从简单复制 一、简单主从模式配置步骤1、配置主从节点的服务配置文件1.1、配置master节点:[mysqld]binlog-format=ROWlog-bin=master-binlog-slave-updates=truegtid-mode=on enforce-gti ......

                            基于gtid的mysql主从简单复制

一、简单主从模式配置步骤

1、配置主从节点的服务配置文件

1.1、配置master节点:
[mysqld]
binlog-format=row
log-bin=master-bin
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=table
relay-log-info-repository=table
sync-master-info=1
slave-parallel-workers=2 在mariadb 中是slave-parallel-threads 多线程复制
binlog-checksum=crc32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=1
report-port=3306
port=3306
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=master.magedu.com(注意这里填的是本机的主机名)

1.2、配置slave节点:
[mysqld]
binlog-format=row
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=table
relay-log-info-repository=table
sync-master-info=1
slave-parallel-workers=2    在mariadb 中是slave-parallel-threads
binlog-checksum=crc32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=11
report-port=3306
port=3306
log-bin=mysql-bin.log
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=slave.magedu.com

2、创建复制用户

mysql> grant replication slave on *.* to repluser@172.16.100.7 identified by 'replpass';

说明:172.16.100.7是从节点服务器;如果想一次性授权更多的节点,可以自行根据需要修改;

3、为备节点提供初始数据集

锁定主表,备份主节点上的数据,将其还原至从节点;如果没有启用gtid,在备份时需要在master上使用show master status命令查看二进制日志文件名称及事件位置,以便后面启动slave节点时使用。

4、启动从节点的复制线程

如果启用了gtid功能,则使用如下命令:
mysql> change master to master_host='master.magedu.com', master_user='repluser', master_password='replpass', master_auto_position=1;

没启用gtid,需要使用如下命令:
slave> change master to master_host='172.16.100.6',
-> master_user='repluser',
-> master_password='replpass',
-> master_log_file='master-bin.000003',
-> master_log_pos=1174;



二、半同步复制

1、分别在主从节点上安装相关的插件

master> install plugin rpl_semi_sync_master soname 'semisync_master.so';
slave> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

2、启用半同步复制

在master上的配置文件中,添加
rpl_semi_sync_master_enabled=on

在至少一个slave节点的配置文件中添加
rpl_semi_sync_slave_enabled=on

而后重新启动mysql服务即可生效。


或者,也可以mysql服务上动态启动其相关功能:

master> set global rpl_semi_sync_master_enabled = on;
slave> set global rpl_semi_sync_slave_enabled = on;
slave> stop slave io_thread; start slave io_thread;

3、确认半同步功能已经启用

master> create database magedudb;
master> show status like 'rpl_semi_sync_master_yes_tx';

slave> show databases;