国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL高可用群集 配置MMM高可用框架

2024-07-24 12:35:46
字體:
供稿:網(wǎng)友
  MMM簡介:
  MMM(Master-Master replication manager for Mysql,Mysql 主主復制管理器)是一套支持雙主故障切換和雙主日常管理的腳本程序。MMM使用Perl語言開發(fā),主要用來監(jiān)控和管理Mysql Master-Master(雙主)復制,雖然叫做雙主復制,但是業(yè)務(wù)上同一時刻只允許對一個主進行寫入,另一臺備選主上提供部分讀服務(wù),以加速在主主切換時備選主的預(yù)熱,可以說MMM這套腳本程序一方面實現(xiàn)了故障切換的功能,另一方面其內(nèi)部附加的工具腳本也可以實現(xiàn)多個Slave的read負載均衡。MMM是一套靈活的腳本程序,基于Perl實現(xiàn),用來對mysql replication進行監(jiān)控和故障轉(zhuǎn)移并能管理Mysql Master-Master復制的配置
 
  MMM高可用架構(gòu)的說明:
  1.mmm_mon:監(jiān)控進程,負責所有的監(jiān)控工作,決定和處理所有節(jié)點角色活動。此腳本需要在監(jiān)管機上運行
  2.mmm_agent:運行在每個Mysql服務(wù)器上的代理進程,完成監(jiān)控的探針工作和執(zhí)行簡單的遠端服務(wù)設(shè)置。此腳本需要在各節(jié)點上運行
  3.mmm_control:一個簡單的腳本,提供管理mmm_mond進程的命令
  4.mysql-mmm的監(jiān)控端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監(jiān)管的管理,這些IP會綁定在可用的Mysql之上,當某一臺Mysql宕機時,監(jiān)控會將VIP遷移至其他Mysql
  在整個監(jiān)管過程中,需要在Mysql中添加相關(guān)授權(quán)用戶,以便讓Mysql可以支持監(jiān)理機的維護。授權(quán)的用戶包括一個mmm_monitor和一個mmm_agent用戶。
 
  實驗案例環(huán)境部署:
  本實驗使用五臺服務(wù)器模擬搭建(CentOS7 操作系統(tǒng) )
  主服務(wù)器master1 : ip:192.168.100.10 db1 vip: 192.168.100.199
  主服務(wù)器master2:ip: 192.168.100.20 db2
  從服務(wù)器 slave1 : ip:192.168.100.30 db3 vip: 192.168.100.33
  從服務(wù)器 slave2: ip: 192.168.100.40 db4 vip: 192.168.100.44
  監(jiān)控服務(wù)器 monitor ip: 192.168.100.50
 
  實驗的過程已整理好腳本如下:
  ----------master01/master02/slave01/slave02都需要安裝mysql數(shù)據(jù)庫-----
  配置ALI云源,然后安裝epel-release源。 (四臺主從服務(wù)器都需要裝)
  systemctl stop firewalld.service
  setenforce 0
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  yum -y install epel-release //安裝epel源
  yum clean all && yum makecache //清空所有,重新設(shè)置數(shù)據(jù)緩存
 
  ----------搭建本地yum源----------下面直接做-----------------
  yum -y install mariadb-server mariadb (四臺主從服務(wù)器都需要裝)
  systemctl stop firewalld.service
  setenforce 0
  systemctl start mariadb
 
  ----------修改ml主配置文件-----------(四臺主從服務(wù)器都需要)-------------------------
  vi /etc/my.cnf (9dd刪掉之前的內(nèi)容)
  vi /etc/my.cnf (9dd刪掉[mysqld]標簽之前的內(nèi)容,重新插入下面的配置)
  [mysqld]
  log_error=/var/lib/mysql/mysql.err //開啟錯誤日志功能
  log=/var/lib/mysql/mysql_log.log //開啟一般日志功能
  log_slow_queries=/var/lib/mysql_slow_queris.log //開啟慢日志功能
  binlog-ignore-db=mysql,information_schema //不需要同步的數(shù)據(jù)庫名稱
  character_set_server=utf8 //設(shè)置默認的字符集為utf-8
  log_bin=mysql_bin //開啟二進制日志,用于主從數(shù)據(jù)復制
  server_id=1 //每臺server_id的值不能相同
  log_slave_updates=true //此數(shù)據(jù)庫宕機,備用數(shù)據(jù)庫接管
  sync_binlog=1
  auto_increment_increment=2 //字段一次遞增2
  auto_increment_offset=1 //自增字段的起始值:1,3,5,7.........等奇數(shù)ID
 
  修改完后:
  systemctl stop firewalld.service
  setenforce 0
  systemctl start mariadb
  netstat -anpt | grep 3306
 
  -------------沒有問題后,把配置文件復制到其他3臺數(shù)據(jù)庫服務(wù)器上并啟動服務(wù)器----------
  一臺一臺配置 或:scp /etc/my.cnf root@192.168.100.10:/etc/ //此命令在文件源端服務(wù)器上執(zhí)行
  注:第二臺server_id=2 第三臺11 第四臺22
 
  -------------配置主主復制----兩臺主服務(wù)器互相復制---------------------------------------
  show master status; //記錄日志文件名稱和位置,在兩臺主上查看。
  -----在m1上為m2授予從的權(quán)限,在m2上也要給m1授予從的權(quán)限----
  grant replication slave on . to 'replication' @'192.168.100.%' identified by '123456'; //兩臺主都執(zhí)行,從不需要
 
  change master to master_host='192.168.100.20',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;
  注意:在m1上要指定m2上的日志文件名和位置參數(shù)。在m2上要反過來指定m1的。(注意其中要改的IP地址、文件名及偏移量)
 
  start slave; //開啟同步功能
  show slave status/G;
  Slave_I0_Running: Yes
  Slave_SQL_Running: Yes
 
  ----------------在兩臺從上做------注意日志文件和位置參數(shù)的改變--------------
  注:兩臺從都需要指向其中的一臺主服務(wù)器(這里指向m1)
  change master to master_host='192.168.100.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;
 
  start slave; //開啟同步
  show slave status/G;//查看狀態(tài)
 
  ---------------測試主從、主主、同步情況------------
  建立數(shù)據(jù)庫然后測試同步情況
 
  ----------------安裝MMM-----在所有服務(wù)器上安裝--------注意,epel源要配置好
  yum -y install mysql-mmm*
 
  ----------------安裝結(jié)束后 對mmm進行配置---------------------------------
  cd /etc/mysql-mmm/
  vim mmm_common.conf //所有主機上都要配置,直接復制多份
  <host default>
  cluster_interface ens33
  .....
  replication_user replication
  replication_password 123456
  agent_user mmm_agent
  agent_password 123456
 
  <host db1>
  ip 192.168.100.10
  mode master
  peer db2
  </host>
 
  <host db2>
  ip 192.168.100.20
  mode master
  peer db1
  </host>
 
  <host db3>
  ip 192.168.100.30
  mode slave
  </host>
 
  <host db4>
  ip 192.168.100.40
  mode slave
  </host>
 
  <role writer>
  hosts db1,db2
  ips 192.168.100.199 //虛擬IP
  mode exclusive
  </role>
 
  <role reader>
  hosts db3,db4
  ips 192.168.100.33, 192.168.100.44 //虛擬IP
  mode balanced
  </role>
 
  遠程復制 覆蓋配置文件:
  scp mmm_common.conf root@192.168.100.20:/etc/mysql-mmm/
  scp mmm_common.conf root@192.168.100.30:/etc/mysql-mmm/
  scp mmm_common.conf root@192.168.100.40:/etc/mysql-mmm/
  vim /etc/mysql-mmm/mmm_common.conf 挨個查看一下
 
  -----------最后一臺監(jiān)控服務(wù)器也需要安裝mmm--------(epel源先裝好)------
  systemctl stop firewalld.service
  setenforce 0
  wget -0 /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  yum -y install epel-release
  yum clean all && yum makecache (可不執(zhí)行)
  yum install -y mysql-mmm*
  scp mmm_common.conf root@192.168.100.50:/etc/mysql-mmm/ //在m1上執(zhí)行
 
  --------------在monitor服務(wù)器上配置---------------------------------------
  cd /etc/mysql-mmm/
  vim mmm_mon.conf
  ping_ips 192.168.100.10,192.168.100.20,192.168.100.30,192.168.100.40 //監(jiān)視器監(jiān)聽的服務(wù)器地址
  auto_set_online 10 //自動上線時間10秒
  <host default>
  monitor_user mmm_monitor
  monitor_password 123456 //改密碼
  </host>
 
  ---------------在所有數(shù)據(jù)庫上為mmm_agent授權(quán)----------(進入數(shù)據(jù)庫)-----------------
  grant super, replication client, process on . to 'mmm_agent'@'192.168.100.%' identified by '123456';
 
  ---------------在所有數(shù)據(jù)庫上為mmm_moniter授權(quán)---------(進入數(shù)據(jù)庫)------------------
  grant replication client on . to 'mmm_monitor'@'192.168.48.%' identified by '123456';
 
  flush privileges; //刷新
 
  ---------------修改所有數(shù)據(jù)庫的mmm_agent.conf---------------------------------------------
  vim /etc/mysql-mmm/mmm_agent.conf
  this db1 //根據(jù)之前代理名稱的規(guī)劃進行逐一調(diào)整
 
  ----------------在所在數(shù)據(jù)庫服務(wù)器上啟動mysql-mmm-agent----------------------------------
  systemctl start mysql-mmm-agent.service
  systemctl enable mysql-mmm-agent.service //開機自啟動
 
  ----------------在monitor服務(wù)器上配置----------------------------------------------------------
  cd /etc/mysql-mmm/
  vim mmm_mon.conf
  ..........
  ping_ips
  192.168.100.10,192.168.100.20,192.168.100.30,192.168.100.40 //數(shù)據(jù)庫服務(wù)器地址
 
  auto_set_online 10 //自動上線時間10秒
  ........
  systemctl start mysql-mmm-monitor.service //啟動監(jiān)控服務(wù)mysql-mmm-montior
 
  mmm_control show //查看各節(jié)點的情況:
  db1(192.168.235.132) master/ONLINE. Roles:writer(192.168.100.199)
  db2(192.168.235.191) master/ONLINE. Roles:
  db3(192.168.235.177) slave/ONLINE. Roles:reader(192.168.100.33)
  db4(192.168.235.181) slave/ONLINE. Roles:reader(192.168.100.44)
 
  mmm_control checks all //需要各種OK
  mmm_control move_role writer db2 //將虛擬IP200切換到db2服務(wù)器上
 
  service mariadb restart //監(jiān)控機做客戶端
  systemctl restart mysql-mmm-agent
 
  -----------------------故障測試-----------------------------------------------
  停止m1 確認 虛擬地址 200 是否移動到m2上。 注意:主不會搶占。
  systemctl stop mariadb.service
 
  然后再監(jiān)控服務(wù)器上 ,查看是否切換到m2上:mmm_control show
 
  可以把從服務(wù)器一臺也關(guān)掉 試一下。 注意:從會搶占
 
  在m1服務(wù)器上進數(shù)據(jù)庫為監(jiān)控機地址授權(quán)登錄
  grant all on . to 'testdba'@'192.168.100.50' identified by '123456';
  flush privileges; //刷新
  按理來講監(jiān)控服務(wù)器只單獨充當監(jiān)控這一角色就行了,這里臨時將它也作為客戶端來配置一下:
  yum install -y mariadb-server mariadb
 
  ------------------在監(jiān)控服務(wù)器上登錄-------------------------------------------
  mysql -utestdba -p -h 192.168.100.199 //虛擬地址
  創(chuàng)建數(shù)據(jù),測試同步情況
 
  腳本到此結(jié)束!

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台东市| 祁连县| 安阳市| 舟曲县| 和田县| 卓尼县| 分宜县| 略阳县| 霍邱县| 满城县| 宜城市| 柳州市| 社旗县| 怀宁县| 霍林郭勒市| 兰坪| 同仁县| 瑞安市| 巴南区| 东台市| 黄骅市| 新巴尔虎右旗| 上犹县| 巩义市| 昂仁县| 醴陵市| 龙岩市| 长白| 庄浪县| 分宜县| 贵州省| 桂阳县| 思南县| 社会| 辽宁省| 龙州县| 清丰县| 朔州市| 右玉县| 宿松县| 红河县|