Mysql主主复制

1.   读写分离主服务器宕机,从服务器提升为主

  取消read_only- 删除配置文件

MariaDB [(none)]> show variables like 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only     | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> set global read_only=OFF;

Mysql主主 复制

  互为主从

  容易产生的问题: 数据不一致,因此慎用

  考虑点:

    自动增长id

    配置一个节点使用奇数id

      auto_increment_offset=1  #开始点

      auto_increment_increment=2  # 增长幅度

    另外一个节点使用偶数id

      auto_increment_oddset=2

      auto_increment_increment=2

主主复制的配置步骤:
  1)各节点使用一个惟一 server_id
  2)都启动 binary log 和 relay log
  3)创建拥有复制权限的用户账号
  4)定义自动增长id字段的数值范围各为奇偶
  5)均把对方指定为主节点,并启动复制线程

配置过程

  1) 修改配置文件

# 第一台主机
log-bin
server_id=1
auto_increment_offset=1
auto_increment_increment=2
innodb_finle_per_table

# 第二台主机
log-bin
server_id=2
auto_increment_offset=2
auto_increment_increment=2
innodb_finle_per_table

  第二部 备份数据,导入数据

# 主服务器备份数据查看 log日志
MariaDB [yyy]> show master logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |       622 |
+--------------------+-----------+

[root@mysql-master ~]# mysqldump -A -F --single-transaction --master-data=1 > /root/all.sql

MariaDB [(none)]> show master logs;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |       667 |
| mariadb-bin.000002 |       245 |
+--------------------+-----------+

# 第二台主服务器 导入数据
[root@mysql-node1 ~]# mysql < all.sql 

  第三步 两边同时创建同步账号

 grant replication slave on *.* to lisi@'172.16.0.%' identified by '123456';

  

  第四部, 注意log节点

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.0.41',MASTER_USER='lisi',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=515756;
Query OK, 0 rows affected (0.06 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

  

原文地址:https://www.cnblogs.com/yanshicheng/p/10493132.html