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) 初始設定
 
           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';
 
                   #將本機MySQL 設成為對方的Master(mail: 192.168.0.195) 

                   
,MySQL Port: 預設3306,執行者身份為上述已建立的replication與passwd
 
                   暫且切換到Mail(192.168.0.195)
 
                   我們進入 mail 這部 mysql 操作界面後_
 
                   mysql>  show master status ;             

                 #趕快記下偏移量FilePostition 此兩欄位值,等會設定nodea 這部mysql 會用上.
                                        
                   
 於上一步我們獲得mail 這部mysql 偏移量值後,接者我們切回nodea 進入

 mysql 操作界面
下command
 
 CHANGE  master TO master_host='192.168.0.195', master_port=3306, /
                  
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設置
         
 
          Slave_IO_Running: Yes
         
          Slave_SQL_Running: Yes  
 
     #在進行第四步之前我們可在nodea 先copy nodea 這台mysql 的file與postition 值
 
          mysql>  show master status ;        

      
      #趕快記下nodea_Mysql偏移量FilePostition 此兩欄位值,
 
        等會設定mail 這部mysql 會用上.
 
          
 
         
 
    切回 mail(192.168.0.195) 繼續設定(與上述第三步大同小異,參數設置變更)    
 
    請在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.111', master_port=3306,/ 

   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_password='imslave', master_log_file='mysql-bin.000005',

master_log_pos=98;
 
                       *我們在上一步已經先取得nodea_pos與file值*
 
接下來進入mysql 重啟: service mysqld restart
 
然後再次登入 mail 的 mysql
 
> start slave ;             啟動slave
 
> show slave status \G;     

# 接者以下才是我們檢查mail這部mysql的重點查看SLAVE啟動狀態
 
 
 
 
#此二個數值必須為Yes_則mail_mysql設置部份已告一段落下一段測試
 
 
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: 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 更佳 (下篇將介紹)
 
                 
 
參考資料
 
               
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 終極.凱因斯 的頭像
    終極.凱因斯

    NEIL`s_IT技術學習分享發表Blog

    終極.凱因斯 發表在 痞客邦 留言(0) 人氣()