GTID复制
作用:主要是保证主从复制中的高级特性。
GTID5.6版本出现没有默认开启,5.7中即使不开启也有匿名的GTID记录。
DUMP传输可以并行,SQL线程提供了并发回放。5.7.17+ 以后的版本几乎
都是GTID模式。
搭建:
1.准备三台虚拟机
2.清楚数据(三个节点都做)
rm -rf /data/3306/*
rm -rf /data/binlog/*
3.生成配置文件
[mysqld]
secure-file-priv=/tmp
user=mysql
basedir=/usr/local/database/mysql
datadir=/data/3306
server_id=6
port=3306
socket=/tmp/mysql.sock
innodb_data_file_path=ibdata1:76M;ibdata2:100M;ibdata3:100M:autoextend
autocommit = 0
log_error =/err_log/mysql.log
log_bin = /binlog/3306/mysql-bin #日志位置点+ 日志名前缀
sync_binlog =1 #binlog刷盘策略,双一中的一个一。每次事务提交立即刷到磁盘
binlog_format = row #binlog记录的模式为row模式
gtid-mode = on #开启gtid
enforce-gtid-consistency = true #强制gtid的一致性
log-slave-updates=1
slow_query_log = 1
slow_query_log_file = /data/3306/later03-slow.log
long_query_time = 0.1
log_queries_not_using_indexes = 1
#replicate_do_db= lb #多个需要在下面在写一次 配置过滤复制
[mysql]
socket=/tmp/mysql.sock
prompt=later01 [\\d]
[client]
socket=/tmp/mysql.sock
4.初始化数据
2)mysqld --initialize-insecure --user=mysql --basedir=/usr/local/database/mysql --datadir=/data/3306
1)添加至系统管理 :chkconfig --add mysqld
5.启动数据库
/etc/init.d/mysqld start
设置密码:mysqladmin -uroot -p password
6.创建复制用户 (db01)
grant replication slave on *.* to repl@'%' identified by '123';
7.重库开启主从
change master to
master_host='39.101.199.159',
master_user='repl',
master_password='123',
master_auto_position=1; ---让从库自己去找位置点信息
start slave;
8.GTID复制原理
第一次开启的时候,首先会去找relay-log.info最后的GTID信息,
如果GTID信息为0.则会去找GTID_PURGED这个全局变量,
这个变量是从库使用主库的备份设置的,如果该变量为1-100,
则从库会从100之后的GTID开始复制,避免重复操作。
2.主从复制架构演变
2.1 原生态支持
1主1从
1主多从(3-4)
多级主从
双主结构
延时从库
过滤复制
MGR组复制(5.7.17+)自行扩展
2.2 非原生态
2.2.1 安全 :高可用
全年无故障率:
99% 一般级别 5056分钟
99.9% 普通级别 505.6分钟
99.99% 准高可用 50.56分钟
99.999% 金融级别 5分钟
代表产品 MYSQLMHA
99.999 超金融级别 0.5分钟
代表产品 mysql clustor innodb clustor,pxc,oracle rac
2.2.2性能
读多写少 : 读写分离方案
代表产品:Altas ProxtSQL Maxscale Mycat
读多写多:分布式方案
Mycat【DBLE】 。。Atlas sharding,sharding jdbc
网友评论