天天看點

mysql 主備和雙主模式_MySQL雙主模式

雙主模式

互為主從:兩個節點各自都要開啟binlog和relay log(1)資料不一緻

(2)自動增長ID

定義一個節點使用奇數ID

auto_increment_offset=1

auto_increment_increment=2

另外一個節點使用偶數ID

auto_increment_offset=2

auto_increment_increment=2

前提:(1)server_id必須要使用不同值

(2)均啟用binlog和relay log

(3)存在自動增長ID的表,為了使得ID不相沖突,需要定義其自動增長方式

(4)都授權複制權限的使用者賬号

(5)各把對方指定為主節點

複制時應該注意的問題:1、從伺服器設定為“隻讀”

在從伺服器啟動read_only,但僅對非SUPER權限使用者有效

組織所有使用者:FLUSH TABLES WITH READ LOCK;

2、盡量確定複制時的事物安全

在master節點啟用參數sync_binlog = ON

如果用到的是InnoDB存儲引擎:

innodb_flush_logs_at_trx_commit=ON

innodb_support_xa=ON

3、從伺服器意外終止時盡量避免自動複制線程

4、從節點:設定參數

sync_master_info = ON

sync_relay_log_info = ON

實戰:

在node1進行如下配置

[[email protected]~]#vim /etc/my.cnf.d/server.cnf

mysql 主備和雙主模式_MySQL雙主模式

在node2節點進行如下配置

[[email protected]~]#vim /etc/my.cnf.d/server.cnf

mysql 主備和雙主模式_MySQL雙主模式

[[email protected]~]#systemctl start mariadb

[[email protected]~]#systemctl start mariadb

在node1和node2互相授權GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'joah'@'192.168.4.62' IDENTIFIED BY '123456';

GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'joah'@'192.168.4.61' IDENTIFIED BY '123456';

在node1和node2指定masterMariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.4.62',MASTER_USER='joah',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=422;

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.4.61',MASTER_USER='joah',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=245;

在node1和node2啟動從伺服器MariaDB [(none)]> SHOW SLAVE STATUSG;

MariaDB [(none)]> START SLAVE IO_THREAD,SQL_THREAD;

測試MariaDB [(none)]> SHOW SLAVE STATUSG;

mysql 主備和雙主模式_MySQL雙主模式

如果出現上述紅框中yes字樣就成功