配置mysql5.5主從複製、半同步複製、主主複製
mysql主伺服器 192.168.8.40
mysql從伺服器 192.168.8.41
全新配置過程(主和從資料庫都沒有資料):
主從複製主伺服器設定:
1.改server-id2.啟用二進位制日誌
# mkdir /data/binlog
# chown -R mysql.mysql /data/binlog
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.8.41' IDENTIFIED BY 'replpass2014';
mysql> FLUSH PRIVILEGES;
主從複製 從伺服器設定:
1.給server-id2.啟用中繼日誌
# mkdir /data/relaylog/
# chown -R mysql.mysql /data/relaylog
vim /etc/my.cnf
relay-log = /data/relaylog/relay-bin
重啟服務使之生效
# service mysqld restart
3.連線主伺服器
mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.40',MASTER_USER='repluser',MASTER_PASSWORD='replpass2014';
mysql> START SLAVE;
若主伺服器執行了一段時間,並且產生了大量的資料
則需要先將主從伺服器資料保持一致
將主資料庫的資料庫匯出,匯入到從伺服器中
# mysqldump --all-databases --flush-logs --master-data=2 --lock-all-tables > /root/all.sql
從伺服器上恢復
# mysql < all.sql
mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.40',MASTER_USER='repluser',MASTER_PASSWORD='replpass2014',MASTER_LOG_FILE='master-bin.000007',MASTER_LOG_POS=107;
通過從伺服器的狀態觀察
mysql > show slave status;
驗證是否一致
通過在主伺服器上新增刪除、資料檢視slave伺服器是否一致
限制從伺服器只讀
在從伺服器上啟動read-only=ON注意:僅能限制那不具有super許可權的使用者無法執行寫操作
半同步複製
半同步主伺服器設定
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';mysql> show global variables like '%semi%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF | (是否啟動半同步功能)
| rpl_semi_sync_master_timeout | 10000 | (連線從節點的超時時間)
| rpl_semi_sync_master_trace_level | 32 |(是否檢測半同步從節點上線)
| rpl_semi_sync_master_wait_no_slave | ON |
+------------------------------------+-------+
mysql> set global rpl_semi_sync_master_enabled=1;
mysql> set global rpl_semi_sync_master_timeout=2000;
半同步從伺服器配置
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';mysql> set global rpl_semi_sync_slave_enabled=1;
mysql> show global variables like '%semi%';
mysql> STOP SLAVE IO_THREAD;
mysql> START SLAVE IO_THREAD;
在主伺服器驗證半同步
mysql> show global status like '%semi%';
解除安裝外掛:
uninstall
一旦某次等待超時,會自動降級為非同步
雙主複製:
1)、在兩臺伺服器上各自建立一個具有複製許可權的使用者;
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.%.%' IDEnTIFIED BY 'replpass2014';mysql> FLUSH PRIVILEGES;
2)、修改配置檔案:
# 主伺服器A上[mysqld]
server-id = 10
log-bin = mysql-bin
relay-log = relay-mysql
# 步長
auto-increment-increment = 2
# 起始值
auto-increment-offset = 1
#不要自動啟用slave
skip_slave_start
# 主伺服器B上
[mysqld]
server-id = 11
log-bin = mysql-bin
relay-log = relay-mysql
# 步長
auto-increment-increment = 2
# 起始值
auto-increment-offset = 2
#不要自動啟用slave
skip_slave_start
說明:
auto_increment_offset表示自增長欄位從那個數開始,他的取值範圍是1 .. 65535
auto_increment_increment表示自增長欄位每次遞增的量,其預設值是1,取值範圍是1 .. 65535
建立二進位制日誌和中繼日誌目錄並授權給mysql使用者
# mkdir /data/relaylog
# chown -R mysql.mysql /data/relaylog
# mkdir /data/binlog
# chown -R mysql.mysql /data/binlog
重啟兩臺主伺服器的mysql服務
# service mysqld restart
3)、如果此時兩臺伺服器均為新建立,且無其它寫入操作,各伺服器只需記錄當前自己二進位制日誌檔案及事件位置,以之作為另外的伺服器複製起始位置即可
serverA|mysql> SHOW MASTER STATUS\G
************************** 1. row ***************************
File: mysql-bin.000008
Position: 107
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
server2|mysql> SHOW MASTER STATUS\G
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 107
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
4、各伺服器接下來指定對另一臺伺服器為自己的主伺服器即可:
主伺服器A:mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.41',MASTER_USER='repluser',MASTER_PASSWORD='replpass2014',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=107;
主伺服器B:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.40',MASTER_USER='repluser',MASTER_PASSWORD='replpass2014',MASTER_LOG_FILE='master-bin.000008',MASTER_LOG_POS=107;
5.啟動複製
分別在兩臺伺服器中執行mysql> start slave;
通過檢視slave狀態檢視設定是否生效
mysql> show slave status\G
6.驗證
分別在兩個伺服器之間建立資料庫,表,插入、刪除資料,看是否能夠同步並按照指定的步長依次增加資料
相關文章
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- MySQL主從複製之半同步複製MySql
- 主從複製、雙主複製及半同步複製、以及基於SSL的複製
- MySQL5.7主從複製-半同步複製搭建MySql
- mysql複製--主從複製配置MySql
- MySQL主從複製與主主複製MySql
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製之非同步複製MySql非同步
- mysql主主複製(雙主複製)配置步驟MySql
- MySQL的主從複製與MySQL的主主複製MySql
- 主從複製
- MySql 主從複製配置MySql
- MySQL主從複製配置MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- 主從複製--非同步篇非同步
- MySQL主從複製_複製過濾MySql
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- MYSQL主從複製製作配置方案MySql
- MYSQL主從複製配置(整理)MySql
- Redis 4.0主從複製配置Redis
- Redis - 主從複製Redis
- Redis:主從複製Redis
- MongoDB主從複製MongoDB
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- Redis主從複製Redis
- MySQL主從複製MySql
- MySQL主從複製之GTID複製MySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- MySQL 主主複製MySql
- MySQL主從雙向同步複製MySql
- MySQL-主從複製之同步主從資料MySql
- 主從複製是啥或者主從複製的原理是什麼?
- MysqL主從複製_模式之GTID複製MySql模式