close
測試環境
 
請依日前KEYNES 發表過的文章 先建置好

MySQL Master to Master by KEYNES(MMM_Cluster部署(上)
 
 
這裡測試環境與前篇實作稍有些更改
 
已將扮演mmm_client 的 nodea 與 mail 此兩台資料庫主機已升級其MySQL 版本
 
5.0.77 ->升級成--> 5.1.46
 
mmm 實驗架構
 
nodea : 192.168.0.111(CentOS 5.4) :擔任mysql_mmm_client 角色
 
mail : 192.168.0.195 (CentOS 5.4):  擔任mysql_mmm_client 角色
 
g1 :    192.168.0.188 (CentOS 5.4:   擔任mysql_moniter角色
 
writer :   192.168.0.171   配有一個動態IP做寫入角色(

                                             無須設置實體主機,但需佔用1IP Address)
 
reader:   192.168.0.172,192.168.0.173 配有二個動態IP做讀取角色
 
                                           
(無須設置實體主機,但需佔用2IP Address)

1)資料庫權限配置,由於我們於前章 Master to Master 已配置相關SLAVE 複寫帳號等

     (
這裡就不再多說)
 
     以下是本人DB2(mail) : 權限配置: 新增一個rep_monitor  資料庫帳號,

     
等會擔任Moniter (g1) 會派上用場
 
GRANT ALL PRIVILEGES on *.* to 'rep_monitor'@'192.168.0.188' identified by 'RepMonitor';
    
GRANT ALL PRIVILEGES on *.* to 'rep_agent'@'192.168.0.111' identified by 'RepAgent';  


#指配rep_agent給nodea
 
GRANT replication slave on *.* to 'replication'@'%' identified by 'c30819';    

 
 #讓所有node之間可以具slave 與replication 身份
 
以下是本人DB1(nodea) : 權限配置: 新增一個rep_monitor  資料庫帳號,等會

擔任Moniter (g1) 會派上用場
 
GRANT ALL PRIVILEGES on *.* to 'rep_monitor'@'192.168.0.188 identified by 'RepMonitor';

GRANT ALL PRIVILEGES on *.* to

 
'rep_agent'@'192.168.0.195' identified by 'RepAgent'; 

#指配rep_agent給mail GRANT replication slave on *.* to 'replication'@'%' identified by 'c30819';    

#讓所有node之間可以具slave 與replication 身份
 
 
     檢視DB2(mail) 是否Master to Master 運行已ok
 
   
 
      檢視DB1(nodea) 是否Master to Master 運行已ok
    
 
(2) 接下來我們必須安裝mmm架構所需相關Perl mod
 
     請在 nodea,mail > 下指令安裝需要使用的Perl mod
 
     
cpan Algorithm::Diff DBI DBD::mysql File::stat Log::Dispatch Log\::

Log4perl Mail::Send Net::ARP Proc::Daemon Time::HiRes
 
      請在 g1 > 下指令安裝需要使用的Perl mod
 
  cpan Algorithm::Diff Class::Singleton DBI DBD::mysql File::Basename File::stat File::Temp Log::Dispatch Log::Log4perl Mail:: \
Send Net::Ping Proc::Daemon Thread::Queue Time::HiRes

 

(3) 接下來我們必須在 nodea,mail,g1 這三台主機上安裝 Mysql-mmm 安裝套件,並依以下安裝
 
     shell> wget  http://mysql-mmm.org/_media/:mmm2:mysql-mmm-2.2.1.tar.gz   

                 #目前最新版本
 
     shell> tar   zxvf mysql-mmm-2.2.1
 
     shell> make install
 
(4.) D1_mmm_client 與D2_mmm_client 編輯

       (
幾乎相同在此僅修改D1_MMM_Client,DB2留給讀者去設定)
 
       vi /etc/mysql-mmm/mmm_common.conf            # mmm_client 設定檔
 
       主要修改參數有
 
  
       <host default>
       
        cluster_interface               eth0
       
        pid_path                                /var/run/mmm_agentd.pid
       
         bin_path                                /usr/lib/mysql-mmm/
       
        replication_user        replication
        
        replication_password    c30819  # 若您之前設置帳號密碼修改,請在此修正replication帳密
        
        agent_user              rep_agent
       
       agent_password       RepAgent    # 若您之前設置帳號密碼修改,請在此修正agent帳密
      
       </host>
     
 
      <host db1>
        ip                                      192.168.0.111        #設置第一台DB設置
        mode                                   master
        peer                                     db2
      </host>
 
       <host db2>
        ip                                       192.168.0.195     #設置第二台DB設置
        mode                                  master
        peer                                     db1
       </host>
 
    <role writer>                                                                     #設置writer設置
        hosts                                   db1, db2
        ips                                     192.168.0.171
        mode                                    exclusive
       </role>
    
    <role reader>
        hosts                                   db1, db2                                    #設置reader設置
         ips                                     192.168.0.172,192.168.0.173
         mode                                    balanced
      </role>                                              

      
*修改組態檔完成後,請至DB2_(mail)完成上述修改如下

   

     修改nodea & mail組態檔ok後我們必須啟動此兩台mmm_client

     /etc/init.d/mysql-mmm-agent  start

 

     (5.) g1_mmm_moniter 編輯         vi /etc/mysql-mmm/mmm_mon.conf      

       
#將ping_ips 修正為監控nodes (db1,db2 的ip) ,並修正Moniter 帳號密碼後儲存檔案

        vi /etc/mysql-mmm/mmm_common.conf   

       #
此檔案設置與我們上述設置nodea (db1)大同小異,請將其訂正ok

      重啟mmm_moniter

      /etc/init.d/mysql-mmm-monitor  restart
    

(6
.) mmm_control show

       shell> mmm_control show    #查看目前個節點健康狀況,

                   mmm_control set_online db1     #初次建立mmm結點我們必須將其推上線

                   mmm_control set_online db2  

    

(7.) 容錯移轉測試: 
 
      
目前我們可以看到,Reder,Writer 角色初步掛在DB1,當DB1掛點時

       將移轉至DB2
以下我們故意將DB1停止運作,當DB1 FILE 時將移轉到DB2運行
  

          接者我們將D1 重新啟動, Awaiting Rocovery 中
 

        DB1又重為崗位了

               如何設置開機自動啟用MMM_MONITER 與MMM_CLIENT

                shell> cd  /etc/init.d

                shell> chkconfig --add mysql-mmm-moniter

                shell> chkconfig --add  mysql-mmm-agent

                接者我們就可以用 chkconfig mysql-mmm-moniter on  開機自動啟動該程式

                 或是

               ntsysv  將其勾選即可完成開機自動啟動

                  參考資料

                  http://www.xuan-lu.net/blog/index_586.html   

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 終極.凱因斯 的頭像
    終極.凱因斯

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

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