成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【博文推薦】Microsoft Azure部署MYSQL-MMM過程詳解

云計算 MySQL
MMM即Master-Master Replication Manager for MySQL(mysql主主復制管理器)關于mysql主主復制配置的監控、故障轉移和管理的一套可伸縮的腳本套件(在任何時候只有一個節點可以被寫 入),這個套件也能對居于標準的主從配置的任意數量的從服務器進行讀負載均衡,所以你可以用它來在一組居于復制的服務器啟動虛擬ip,除此之外,它還有實 現數據備份、節點之間重新同步功能的腳本。
  本博文出自51CTO博客之星李珣博主,有任何問題請進入博主頁面互動討論!

博文地址:http://lixun.blog.51cto.com/4198640/1629177

MMM即Master-Master Replication Manager for MySQL(mysql主主復制管理器)關于mysql主主復制配置的監控、故障轉移和管理的一套可伸縮的腳本套件(在任何時候只有一個節點可以被寫 入),這個套件也能對居于標準的主從配置的任意數量的從服務器進行讀負載均衡,所以你可以用它來在一組居于復制的服務器啟動虛擬ip,除此之外,它還有實 現數據備份、節點之間重新同步功能的腳本。

MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現服務器的故障轉移,從而實現mysql的高可用。

MMM項目來自 Google:http://code.google.com/p/mysql-master-master

官方網站為:http://mysql-mmm.org

MMM主要功能由下面三個腳本提供

  • l mmm_mond 負責所有的監控工作的監控守護進程,決定節點的移除等等
  • l mmm_agentd 運行在mysql服務器上的代理守護進程,通過簡單遠程服務集提供給監控節點
  • l mmm_control 通過命令行管理mmm_mond進程

在兩個節點的master-master環境下,MMM使用5個IP。每個單獨的節點使用一個固定IP,這個固定IP永遠不會變化。

2個reader IPs(read-only)和一個writer IP(updates),后面三個IP(2個reader IP和一個Writer IP)在兩個節點之間遷移,如何遷移取決于節點的可用性。

正 常情況下(沒有復制失敗,沒有復制延遲等)活動的master有兩個虛擬ip(reader和writer),備用的master有一個虛擬 ip(reader),如果活動的master失敗了,那么所有的reader和writer虛擬IP都會被分配給備用的master。

具體的配置信息如下所示:

  1. 角色 ip地址 主機名字 server-id  
  2.  
  3. monitoring      10.0.0.6            monitor        -  
  4.  
  5. master1         10.0.0.4            db1                1  
  6.  
  7. master2         10.0.0.5            db2                 2  
  8.  
  9. slave1          10.0.0.7            db3                 3 

業務中的服務ip信息如下所示:

  1. ip地址                 角色                描述  
  2.  
  3. 10.0.0.80           write                應用程序連接該ip對主庫進行寫請求  
  4.  
  5. 10.0.0.90           read                  應用程序連接該ip進行讀請求  
  6.  
  7. 10.0.0.100          read                   應用程序連接該ip進行讀請求 

部署架構如下圖:

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL


MySQL-MMM優缺點

優點:高可用性,擴展性好,出現故障自動切換,對于主主同步,在同一時間只提供一臺數據庫寫操作,保證的數據的一致性。

缺點:Monitor節點是單點,可以結合Keepalived實現高可用。

#p#

具體的部署步驟如下:

(1)主機配置

在Azure中創建一個虛擬網絡,然后在庫中創建虛擬機,選擇基于CENTOS Openlogic 6.5

PS:由于MMM的監控機制需要檢查PING,請確保所有虛擬機在一個VNET下。

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

同時完成四臺虛擬機的創建,分別是master1、master2、slave、monitor,如下圖:

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

使用那個Xshell連接到VM

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

首先獲取root權限并修改root密碼,如下操作

Sudo su -

輸入密碼

Passwd root

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

在每一臺服務器上用yum命令安裝MYSQL服務

  1. # yum install mysql-server 

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

安裝完成后重啟MYSQL服務

  1. # service mysqld restart 

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

連接到mysql,修改mysql root密碼,如下操作:

  1. # mysql -uroot 
  2.  
  3. use mysql 
  4.  
  5. update user set password=password('p@ssw0rd'where user='root'
  6.  
  7. flush privileges

 

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

select user,host,password from mysql.user

Microsoft Azure部署MYSQL-MMM(1)安裝MYSQL

#p#

(2)配置Master-Master復制

在db1(master1)、db2(master2)、db3(slave)上編譯my.conf

  1. #vi /etc/my.cnf 
  2.  
  3. [mysqld] 
  4.  
  5. datadir=/var/lib/mysql 
  6.  
  7. socket=/var/lib/mysql/mysql.sock 
  8.  
  9. user=mysql 
  10.  
  11. #下面為新添加的內容 
  12.  
  13. default-storage-engine = innodb 
  14.  
  15. replicate-ignore-db = mysql 
  16.  
  17. binlog-ignore-db = mysql 
  18.  
  19. server-id = 1 #每臺服務器不能相同 
  20.  
  21. log-bin = /var/log/mysql/mysql-bin.log 
  22.  
  23. log_bin_index = /var/log/mysql/mysql-bin.log.index 
  24.  
  25. relay_log = /var/log/mysql/mysql-bin.relay 
  26.  
  27. relay_log_index = /var/log/mysql/mysql-bin.relay.index 
  28.  
  29. expire_logs_days = 10 
  30.  
  31. max_binlog_size = 100M 
  32.  
  33. log_slave_updates = 1 

 Microsoft Azure部署MYSQL-MMM

注意:

1)server-id在每臺服務器上的值都是不一樣,在這里依次為1、2、3、4。

2) 因為在這里把log文件配置到了/var/log/mysql下,而mysql默認的目錄是在/var/lib/mysql,所以首先要新建mysql文 件夾,Mkdir /var/log/mysql,然后用chown -R mysql.mysql /var/log/mysql mysql命令將mysql的所有者修改為用戶mysql。其次要保證,mysql文件夾的權限755(即-rwxr-xr-x)。

如果沒 有修改權限和所有者,重啟服務時就會在錯誤日志中出現找不到mysql-bin.log或者mysql-bin.log.index的錯誤(/usr /libexec/mysqld: File '/var/log/mysql/mysql-bin.log.index' not found (Errcode: 13))。

完成編譯后重啟MYSQL服務

 Microsoft Azure部署MYSQL-MMM

檢查復制狀態,如下圖:

show master status;

 Microsoft Azure部署MYSQL-MMM

檢查日志是否生成道新目錄,如下

# ls /var/log/mysql

 Microsoft Azure部署MYSQL-MMM

使用mysql-mmm時一共需要三個用戶: replication、mmm_agent和mmm_monitor(管理服務器上用來監控cluster狀態的用戶,所以可以限定只能從管理服務器登錄)。使用下面三條命令新建這三個用戶并分配相應的權限

GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'10.0.0.%' IDENTIFIED BY 'monitor';

GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.0.0.%' IDENTIFIED BY 'agent';

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.0.%' IDENTIFIED BY 'replication';

接下來再db1和db2分別執行下面命令修改復制賬戶和密碼。并啟動SLAVE進程。

change master to master_host='10.0.0.4', master_port=3306, master_user='replication', master_password='replication';start slave;

change master to master_host='10.0.0.5', master_port=3306, master_user='replication', master_password='replication';start slave;

 Microsoft Azure部署MYSQL-MMM

檢查復制狀態,如下圖:

show slave status\G

 Microsoft Azure部署MYSQL-MMM

#p#

(3)安裝配置MYSQL-MMM

在db1、db2、db3安裝MMM所需要的Perl模塊(所有服務器)執行該腳本,然后 yum -y install mysql-mmm-agent來安裝MMM :

  1. # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
  2.  
  3. # yum -y install mysql-mmm-agent 

 Microsoft Azure部署MYSQL-MMM

在Monitor節點安裝mysql-mmm-monitor

  1. # yum -y install mysql-mmm-monitor* 
  2.  
  3. # yum -y install perl-Time-HiRes* 

編譯DB1上的mmm_common.conf配置agent:

  1. # sudo vim /etc/mysql-mmm/mmm_common.conf 
  2.  
  3. active_master_role writer 
  4.  
  5. cluster_interface eth0 
  6.  
  7. pid_path /var/run/mysql-mmm/mmm_agentd.pid 
  8.  
  9. bin_path /usr/libexec/mysql-mmm/ 
  10.  
  11. replication_user replication 
  12.  
  13. replication_password replication 
  14.  
  15. agent_user mmm_agent 
  16.  
  17. agent_password agent 
  18.  
  19. ip 10.0.0.4 
  20.  
  21. mode master 
  22.  
  23. peer db2 
  24.  
  25. ip 10.0.0.5 
  26.  
  27. mode master 
  28.  
  29. peer db1 
  30.  
  31. ip 10.0.0.7 
  32.  
  33. mode slave 
  34.  
  35. hosts db1, db2 
  36.  
  37. ips 10.0.0.100 
  38.  
  39. mode exclusive 
  40.  
  41. hosts db2, db3 
  42.  
  43. ips 10.0.0.80, 10.0.0.90 
  44.  
  45. mode balanced 

其中 replication_user 用于檢查復制的用戶, agent_user 為agent的用戶, mode 標明是否為主或者備選主,或者從庫。 mode exclusive 主為獨占模式,同一時刻只能有一個主, 中hosts表示目前的主庫和備選主的真實主機ip或者主機名, ips 為對外提供的虛擬機ip地址, 中hosts代表從庫真實的ip和主機名, ips 代表從庫的虛擬ip地址。

完成編譯后通過scp復制到db2、db3、monitor節點:

  1. # scp /etc/mysql-mmm/mmm_common.conf 10.0.0.5:/etc/mysql-mmm/ 
  2.  
  3. # scp /etc/mysql-mmm/mmm_common.conf 10.0.0.7:/etc/mysql-mmm/ 
  4.  
  5. # scp /etc/mysql-mmm/mmm_common.conf 10.0.0.6:/etc/mysql-mmm/ 

Microsoft Azure部署MYSQL-MMM

分別在db1,db2,db3三臺主機的/etc/mysql-mmm配置mmm_agent.conf文件,分別用不同的字符標識,注意這三臺機器的this db1這塊要想,比如本環境中,db1要配置this db1,db2要配置為this db2,而db3要配置為this db3。

  1. # sudo vim /etc/mysql-mmm/mmm_agent.conf 

 Microsoft Azure部署MYSQL-MMM

在monitor節點編譯monitor配置文件,添加ping_ips中的內容

  1. # sudo vim /etc/mysql-mmm/mmm_mon.conf 

 

Microsoft Azure部署MYSQL-MMM

在db1、db2、db3啟動agent服務

  1. # service mysql-mmm-agent start 

 

 

Microsoft Azure部署MYSQL-MMM

在monitor啟動monitor服務


 

責任編輯:Ophira 來源: 51CTO
相關推薦

2014-12-12 10:46:55

Azure地緣組affinitygro

2015-03-16 13:44:34

Multi-Site site-2-site微軟Azure

2015-04-17 11:15:01

Windows Azu虛擬機SCVMM

2014-12-22 11:04:30

Windows AzuiPhone虛擬機

2015-07-29 13:46:27

OpenStackIcehouse私有云實戰部署

2015-05-15 10:04:28

localhost

2015-12-10 10:13:22

2015-05-27 09:17:50

AzureDocker

2015-06-04 11:17:12

2015-04-21 09:58:09

Azure混合云實例級公共IP

2015-06-17 09:34:09

軟件定義存儲 云存儲

2015-07-01 10:25:07

Docker開源項目容器

2015-05-25 09:51:55

Azure混合云平臺VPN技術

2014-10-23 09:47:28

安全運維Iperf

2015-03-30 13:24:31

主從MariaDB實例部署

2015-06-15 13:06:23

項目項目經驗

2015-09-29 10:26:51

pythonlogging模塊

2015-03-18 13:18:45

MySQLSQL優化

2015-06-02 16:16:17

mysql優化mysql讀寫分離mysql主從復制

2014-12-01 10:33:51

Python
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九国产 | 免费看国产一级特黄aaaa大片 | 一二三四在线视频观看社区 | 第一区在线观看免费国语入口 | 色接久久 | 久久精品视频99 | 免费视频中文字幕 | 搞黄网站在线观看 | 久久精品手机视频 | 中文字幕国产 | 日本成人在线观看网站 | 日韩精品在线免费 | 国产精品久久久久久亚洲调教 | 国产欧美一区二区三区另类精品 | 中国美女av | 6996成人影院网在线播放 | av在线亚洲天堂 | 北条麻妃99精品青青久久 | 日韩伦理一区二区三区 | 亚洲91| 蜜臀久久 | 久久高清国产 | 久久精品福利 | 久久6视频 | 一区二区三区四区视频 | 亚洲日韩中文字幕 | 美女视频一区二区三区 | 精品国产一区二区三区观看不卡 | 一级毛片网 | 在线不卡视频 | 成年人视频在线免费观看 | 亚洲国内精品 | h视频免费在线观看 | 亚洲一区二区在线视频 | 日韩一级电影免费观看 | 在线免费视频一区 | 欧美一区二区三区在线 | 成人网视频 | 超碰97人人人人人蜜桃 | 欧美视频在线播放 | 日韩av免费看 |