簡介:
此功能的作用,主要是將一台資料庫中執行指令也同步給另外一部同時進行
確保兩台或更多的資料庫保持資料同步,以利後續High Availability或Load Balance時
不會有資料差異的問題發生。當然,DRBD也是一種作法

DB1 IP:
172.16.1.201

DB2 IP:
172.16.1.202

安裝:
可以直接參考此篇進行
CentOS 7 安裝 MariaDB – 可取代MySQL的資料庫?

設定:(DB1)
在安裝完成後,先到設定確定其server-id

# vim /etc/my.cnf

CentOS 7 MariaDB Replication 設定-01.png

建立repluser:(DB1)

# mysql -u root -p
MariaDB [(none)]> CREATE USER 'repluser'@'%' IDENTIFIED by 'yourpasswd';
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;

查詢Master狀態:(DB1)
# mysql -u root -p

MariaDB [(none)]> SHOW MASTER STATUS;

如下圖
CentOS 7 MariaDB Replication 設定-02
資訊紀錄下來,之後會用到這些資訊

匯出資料庫:(DB1)

# mysqldump -u root -p --master-data --all-databases > alldb.sql

匯入資料庫:(DB2)

# mysql -u root -p --default-character-set=utf8  CHANGE MASTER TO MASTER_HOST='172.16.1.201', MASTER_PORT=3306, MASTER_USER='repluser', MASTER_PASSWORD='yourpasswd',MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=327;
MariaDB [(none)]> START SLAVE;
MariaDB [(none)]> SHOW SLAVE STATUS \G;

如下圖
CentOS 7 MariaDB Replication 設定-03.png

測試:
接下來可以直接到DB1建立資料庫或進行一些操作後
去檢查DB2是否有確實同步到相關資料即可
如果想進行HA或是LB的話
只需要將兩台互相Replication就能保持資料同步
但記得要關閉以下功能

# vim /etc/my.cnf
# If you're using replication with chained slaves (A->B->C), you need to
# enable this option on server B. It enables logging of updates done by
# the slave thread into the slave's binary log.
#log_slave_updates

參考資料:
https://mariadb.com/kb/en/mariadb/setting-up-replication/

對「MariaDB (MySQL) Replication (同步/備份)」的一則回應

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s