标签:user event 服务器 二进制 images sel use server code
1.首先搭建主从
主环境:192.168.1.117
从环境:192.168.1.123
a.首先以二进制包的形式安装好MariaDB (忽略不计)
b.配置环境的变量
通配
[mysqld]
binlog-format=row
log-slave-updates=True
master-info-repository=table
relay-log-info-repository=table
sync-master-info=1
slave-parallel-threads=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log-events=1
我主从服务器都配置log-bin以及relay-log
主服务器
server_id = 100
log-bin=mysql-bin、
relay_log=relay-bin
从服务器
server_id=101
log-bin=mysql-bin
relay_log=relay-bin
c.先使用主机器给从机器授权
主上操作
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘slave‘@‘192.168.1.123‘ IDENTIFIED BY "密码"
show master status 查看从服务器的 bin-log 文件以及 偏移量
select binlog_gtid_pos("mysql-bin.000001",1696); 查看gtid号
d. 启动同步
set global gtid_slave_pos=‘0-1001-58‘;
change master to
master_host=‘192.168.1.123‘,
master_user=‘slave‘,
master_password=‘密码‘,
master_port=3306,
master_use_gtid=slave_pos;
start slave;
这里和以前基于二进制日志进行复制的区别:需要设置全局 gtid_slave_pos值 ,并且使用Master_use_gtid语句
查看同步状态,无错误即正常
F.可以进行主从的数据
看主从数据是 否一致
以上没有考虑到数据量过大的情况,如果数据量过大,还是现在主库上做备份,然后导到从库上
2.故障切换模拟
a.杀死mysql进程 模拟数据库挂掉的情况
ps -ef|grep mysql
kill -9 pid
b.在从服务器上将 slave 去除掉
reset slave all;
c.授权给从库
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘slave‘@‘192.168.1.117‘ IDENTIFIED BY "密码"
d. 在新的从库上启动 复制
从库采用gtid的复制,语法为:CHANGE MASTER TO master_use_gtid = { slave_pos | current_pos | no }
一般使用slave_pos,当A->B,A挂掉,B当master,然后A好了,想要做B的slave情况下,使用current_pos,因为B以前是主库,没有slave_pos这个值
由官网得知
change master to
master_host=‘192.168.1.117‘,
master_user=‘slave‘,
master_password=‘密码‘,
master_port=3306,
master_use_gtid=current_pos;
start slave;
e.查看新的从库的信息
show slave status\G;
f. 测试一下看主从是否一致
Mariadb 10.2.8版本GTID主从环境搭建以及切换
标签:user event 服务器 二进制 images sel use server code
原文地址:http://www.cnblogs.com/yingdiblog/p/7570627.html