双主搭建(传统和GTID方式)

目录

1、GTID

2、数据库基础问题

3、双主搭建(传统方式)

4、双主搭建(GTID方式)


 

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要基于 GTID(Global Transaction Identifier)搭建双主数据库,你需要遵循以下步骤: 1. 确保你的MySQL版本支持GTIDGTIDMySQL 5.6及更高版本中可用。如果你的版本低于5.6,需要升级到支持GTID的版本。 2. 在两个MySQL服务器上启用GTID。在每个服务器的配置文件中,添加以下参数并重启MySQL服务: ``` server-id = <unique_server_id> log-bin log-slave-updates enforce-gtid-consistency = 1 ``` 这些参数将启用GTID并配置二进制日志和从服务器更新。 3. 创建复制用户并授权。在每个服务器上,创建用于复制的用户,并授予复制权限。例如: ``` CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; ``` 4. 在主服务器上执行备份并导入到从服务器。使用`mysqldump`命令在主服务器上执行备份,然后将备份文件导入到从服务器。确保在导入时使用`--set-gtid-purged=OFF`参数,以避免清除GTID信息。 5. 配置主从复制。在从服务器上执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1; ``` 这将配置从服务器连接到主服务器并启动复制。 6. 启动复制。在从服务器上执行以下命令: ``` START SLAVE; ``` 这将启动从服务器与主服务器之间的复制。 7. 验证复制。通过检查从服务器的状态,确保复制正常工作: ``` SHOW SLAVE STATUS\G ``` 检查`Slave_IO_Running`和`Slave_SQL_Running`字段,确保两者都显示为`Yes`。 完成上述步骤后,你将具有基于GTID双主数据库架构。这将允许你在两个服务器上同时进行写操作,并确保数据一致性和高可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值