close
實驗環境
CentOS 5.4(nodea) : MySQL Server 5.0.77 : 192.168.0.111
CentOS 5.4(mail) : MySQL Server 5.0.77 : 192.168.0.195
實驗目的
為了讓多台MySQL 間做到資料同步,彼此都具Master 身分
當(nodea) Mysql 或 (mail) Mysql 任其2資料庫建立一筆新資料時,
MySQL Master 彼此皆可即時同步寫入該筆資料(有別於以往Master to Slave 架構)
(此LAB亦是為日後MMM(MMM_Clent ,MMM_Mon 2.0 )架構設計鋪路)
-----------------------------------------------------------------------------------------
1.) nodea(192.168.0.111) 初始設定 vi /etc/my.cnf
加入 server-id = 1 #本例設id 為1
確認 log_bin = mysql-bin #我們使用發行版的MySQL
shell> service mysqld restart #重啟mysqld
(mail(192.168.0.195) 初始設定
#這次我們將_mail_log_file ,log_pos 獲得偏移值設定即可
vi /etc/my.cnf
加入 server-id = 2 #本例設id 為2
確認 log_bin = mysql-bin #我們使用發行版的MySQL
shell> service mysqld restart #重啟mysqld
切回 nodea(192.168.0.111) 繼續設定
請在MySQL 模式下 shell> mysql -u root -p 下以下幾行指令
GRANT replication slave ON *.* TO 'replication'@'%' IDENTIFIED BY 'imslave';
# 新增使用者replication與密碼:imslave(紅字內容可改)
賦予其帳號擁有 replication slave的權限
CHANGE master TO master_host='192.168.0.195', master_port=3306,/
>master_user='re plication', master_password='imslave';
>master_user='re plication', master_password='imslave';
#將本機MySQL 設成為對方的Master(mail: 192.168.0.195)
,MySQL Port: 預設3306,執行者身份為上述已建立的replication與passwd
,MySQL Port: 預設3306,執行者身份為上述已建立的replication與passwd
暫且切換到Mail(192.168.0.195)
我們進入 mail 這部 mysql 操作界面後_
mysql> show master status ;
#趕快記下偏移量File 與 Postition 此兩欄位值,等會設定nodea 這部mysql 會用上.
#趕快記下偏移量File 與 Postition 此兩欄位值,等會設定nodea 這部mysql 會用上.
於上一步我們獲得mail 這部mysql 偏移量值後,接者我們切回nodea 進入
mysql 操作界面下command
mysql 操作界面下command
CHANGE master TO master_host='192.168.0.195', master_port=3306, /
master_user='replication', master_password='imslave', /
master_user='replication', master_password='imslave', /
master_log_file='mysql-bin.000006', master_log_pos=98;
#這次我們將_mail_log_file ,log_pos 獲得偏移值設定即可
接下來進入mysql 重啟: service mysqld restart
然後再次登入 ndoea 的 mysql
> start slave ; 啟動slave
> show slave status \G; # 接者以下才是我們檢查的重點查看SLAVE啟動狀態
#此二個數值必須為Yes_則nodea_mysql設置部份已告一段落下一段介紹mail
這部mysql設置
這部mysql設置
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#在進行第四步之前我們可在nodea 先copy nodea 這台mysql 的file與postition 值
mysql> show master status ;
#趕快記下nodea_Mysql偏移量File 與 Postition 此兩欄位值,
#趕快記下nodea_Mysql偏移量File 與 Postition 此兩欄位值,
等會設定mail 這部mysql 會用上.
切回 mail(192.168.0.195) 繼續設定(與上述第三步大同小異,參數設置變更)
請在MySQL 模式下 shell> mysql -u root -p 登入後執行下以下幾行指令
master_password='imslave';
#將本機MySQL 設成為對方的nodea(mail: 192.168.0.111) ,
MySQL Port: 預設3306,執行者身份為上述已建立的replication與passwd
GRANT replication slave ON *.* TO 'replication'@'%' IDENTIFIED by'imslave';
# 新增使用者replication與密碼:imslave(紅字內容可改)
賦予其帳號擁有 replication slave的權限
CHANGE master TO master_host='192.168.0.111', master_port=3306,/
master_user='replication',/
master_user='replication',/
master_password='imslave';
#將本機MySQL 設成為對方的nodea(mail: 192.168.0.111) ,
MySQL Port: 預設3306,執行者身份為上述已建立的replication與passwd
CHANGE master TO master_host='192.168.0.111',master_port=3306,\
master_user='replication',/
master_user='replication',/
master_password='imslave', master_log_file='mysql-bin.000005',
master_log_pos=98;
master_log_pos=98;
*我們在上一步已經先取得nodea_pos與file值*
接下來進入mysql 重啟: service mysqld restart
然後再次登入 mail 的 mysql
> start slave ; 啟動slave
> show slave status \G;
# 接者以下才是我們檢查mail這部mysql的重點查看SLAVE啟動狀態
# 接者以下才是我們檢查mail這部mysql的重點查看SLAVE啟動狀態
#此二個數值必須為Yes_則mail_mysql設置部份已告一段落下一段測試
Master to Master 複寫
測試 Master to Master 複寫
Master to Master 複寫
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
測試 Master to Master 複寫
nodea_mysql: 建立DB_名為m_nodea , 驗證 mail_nodea 是否會即時寫入該筆資料
mail_nodea: 建立DB_名為m_mail , 驗證 nodea_mysql 是否會即時寫入該筆資料
nodea_mysql: create database m_nodea;
mail_nodea: show databases; m_nodea
*此資料庫已成功覆寫至mail這台mysql-server了*
*此資料庫已成功覆寫至mail這台mysql-server了*
mail_mysql: create database m_mail;
#接者我們切換mail_mysql 新增一資料庫,驗證nodea_mail是否亦同步寫入
nodea_mysql: show databases;
# 瞧_m_mail資料庫已經寫入了,Master to Master
不管在任何一部Master角色下寫入資料即可同步複寫到其他Master較
Master to SLAVE彈性高,結合mmm_mon ,mmm_client 更佳 (下篇將介紹)
# 瞧_m_mail資料庫已經寫入了,Master to Master
不管在任何一部Master角色下寫入資料即可同步複寫到其他Master較
Master to SLAVE彈性高,結合mmm_mon ,mmm_client 更佳 (下篇將介紹)
參考資料
全站熱搜
留言列表