MariaDB設置主從複製

主從複製包含兩個步驟: master 主服務器()上的設置,以及在 slave 從屬服務器()上的設置.mysql

配置主服務器 mastersql

若是沒有啓用,則須要 激活二進制日誌.數據庫

master 設置惟一的  server_id ,全部的 slave 從屬服務器也要設置  server_id; server_id值能夠是整數型的數字(1 ~ 2^31-1), 在同一個複製組(replicating group)中的每臺服務器的server_id都必須是惟一的.服務器

slave 從屬服務器須要有鏈接並從master複製的權限. 一般是爲每一臺slave 建立一個單獨的用戶(user),而且只授予複製的權限(REPLICATION SLAVE 權限).dom

示例spa

[sql] view plain copy.net

 

 

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_host' IDENTIFIED BY 'bigs3cret';   rest

FLUSH PRIVILEGES日誌

須要注意,有一些系統配置選項可能會影響主從複製,查看下面的變量以免發生問題:server

skip-networking,若是 "skip-networking=1",則服務器將限制只能由localhost鏈接,阻止其餘機器遠程連到此服務器上。

bind_address,相似地,若是 服務器只監聽 127.0.0.1(localhost)TCP/IP鏈接,則遠程的 slave也不能鏈接到此服務器.

配置從屬服務器 slave

slave 指定惟一的 server_id. 全部服務器,無論是主服務器,仍是從服務器,都要設置 server_id. server_id值能夠是整數型的數字(1 ~ 2^31-1), 在同一個複製組(replicating group)中的每臺(/)服務器的server_id都必須是惟一的.

要讓此配置項生效,須要從新啓動服務.

獲取 master 的二進制日誌座標

當查看當前 二進制日誌 的position(位置),須要阻止任何數據庫的提交.能夠經過此座標點告訴slave服務器從哪個特定的點開始複製。

master上執行命令 "FLUSH TABLES WITH READ LOCK",以強制寫入日誌,並鎖定全部的表 —— 在此期間不能關閉會話,一關閉會話就會釋放鎖.

經過運行 "SHOW MASTER STATUS" 來獲取二進制日誌的當前位置信息.

記下 File 以及 Position 信息. 若是剛剛纔開啓了二進制日誌功能,則爲空.

而後,開始從master 拷貝 data slave,請參考: Backup, Restore and Import

將數據從master拷貝到slave之後,能夠執行"UNLOCK TABLES;"釋放master上的鎖。

[sql] view plain copy

 

 

示例以下

-- 

SHOW MASTER STATUS; 

+--------------------+----------+--------------+------------------+ 

| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB | 

+--------------------+----------+--------------+------------------+ 

| mariadb-bin.000096 |      568 |              |                  | 

+--------------------+----------+--------------+------------------+ 

-- 

啓動從屬服務器 Slave

數據導入之後,就能夠啓動複製功能了。 經過執行 "CHANGE MASTER TO" 來開始.

確保 "MASTER_LOG_FILE",以及 "MASTER_LOG_POS" master早時候記下的信息一致.

示例以下:

[sql] view plain copy

 

 

CHANGE MASTER TO 

  MASTER_HOST='master.domain.com'

  MASTER_USER='replication_user'

  MASTER_PASSWORD='bigs3cret'

  MASTER_PORT=3306, 

  MASTER_LOG_FILE='mariadb-bin.000096'

  MASTER_LOG_POS=568, 

  MASTER_CONNECT_RETRY=10; 

而後,啓動slave

[sql] view plain copy

 

 

START SLAVE; 

查看 slave狀態:

[sql] view plain copy

 

 

SHOW SLAVE STATUS; 

若是須要暫停 slave 複製,則可以使用SQL :

[sql] view plain copy

 

 

stop slave; 

說明: 假如中止 MYSQL(MariaDB),而後從新啓動,則 Slave會隨mysqld 自動啓動.因此不須要擔憂平常的重啓等操做.

[plain] view plain copy

 

 

[root@AY13 mysql]# service mysql stop 

Shutting down MySQL. SUCCESS!  

[root@AY13 mysql]# service mysql start 

Starting MySQL.. SUCCESS!  

更多問題,歡迎加入QQ羣 《腳本娃娃-桃花島》進行討論,口令: Ext

相關文章
相關標籤/搜索