目录
1、GTID
全局事务标识符GTID(Global Transaction ID) = UUID + TID。
使用GTID方式搭建主从复制的优点:
1、简化配置:使用 GTID 可以简化主从配置,不需要手动配置每个服务器的二进制日志文件和位置。
2、自动故障转移:GTID 可以在主从切换时自动识别和处理已复制和未复制的事务,使主从切换更加可靠和快速。
3、避免重复复制:GTID 可以避免主从复制中的重复复制问题,确保每个事务只被复制一次。
使用GTID的主从复制缺点:
1、兼容性:GTID是从MySQL 5.6 版本开始引入的特性。
2、系统资源占用:启用GTID可能会增加一些系统资源的占用,包括存储和计算资源。
2、数据库基础问题
use mysql;
select user,host from user;
DROP USER 'test'@'%';
3、双主搭建(传统方式)
1、主1: 192.168.1.190 主2: 192.168.1.180
2、在主1和主2上:
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
GRANT REPLICATION SLAVE ON *.* TO 'test'@'%';
flush privileges;
3、主1和主2修改
vim /etc/my.cnf
server-id=190 / server-id=180
binlog-do-db=test //多个可以写多个,不写则记录所有数据库的日志
binlog-ignore-db=mysql
log-bin=mysql-bin
replicate-do-db=test //表示需要复制主服务器上的数据库是test
replicate-ignore-db=mysql
4、重启主1和主2两台数据库
service mysqld restart
5、查看主1
show master status;
5.1、配置主2
change master to
MASTER_HOST='192.168.1.190',
MASTER_USER='test',
MASTER_PASSWORD='abc123',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=154;
6、查看主2
show master status;
6.1、配置主1
change master to
MASTER_HOST='192.168.1.180',
MASTER_USER='test',
MASTER_PASSWORD='abc123',
MASTER_LOG_FILE='mysql-bin.000006',
MASTER_LOG_POS=154;
7、开启同步并显示状态
start slave;
show slave status\G
主1:
主2:
8、如果出错,可能是UUID重复
stop slave;
find / -iname "auto.cnf"
vim /var/lib/mysql/auto.cnf
service mysqld restart
reset slave //如果同步失败,可重置
4、双主搭建(GTID方式)
1、主1和主2:
vim /etc/my.cnf
gtid-mode=on //开启gtid模式
enforce-gtid-consistency=on //安全相关测试
log-slave-updates=on
log-bin-index=mysql-bin.index
service mysqld restart //记得重新启动数据库
2、授权
CREATE USER 'Bin'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
GRANT REPLICATION SLAVE ON *.* TO 'Bin'@'%';
flush privileges;
3、同步。
change master to
MASTER_HOST='192.168.1.190',
MASTER_USER='Bin',
MASTER_PASSWORD='abc123',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
4、查看主1和主2的GTID参数值:
show variables like '%gtid%';
5、开启主1和主2:
start slave;
show slave status\G