生產環境MySQL數據庫集羣MHA上線實施方案
一.不停庫操做
1.在全部節點安裝MHA node所需的perl模塊(須要有安裝epel源)
yum install perl-DBD-MySQL -y
2.在全部的節點安裝mha node
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
3.將系統調用的腳本統一放到一個目錄下
#這裏統一放在了/usr/bin/目錄下
/usr/bin/apply_diff_relay_logs
/usr/bin/filter_mysqlbinlog
/usr/bin/purge_relay_logs
/usr/bin/save_binary_logs前端
/30 * purge_relay_logs --user=faxuan --password=faxuan.net --host=192.168.1.172 --port=3307 --disable_relay_log_purge >> /var/log/relay_log_purge.txt 2>&1
二.須要停庫的操做
1.前端門戶nginx掛維護頁
2.停掉全部須要鏈接數據庫的服務,避免寫庫
例如:resin、tomcat等服務
/etc/init.d/resin stop
/usr/local/apache-tomcat/bin/shutdown.sh
3.主庫備份
用mysqldump或者xtrabackup對主庫進行備份
4.關閉原keepalived,手動綁定VIP
/etc/init.d/keepalived stop
chkconfig keepalived offnode
base(咱們公司會員積分的庫):
ifconfig eth0:1 192.168.1.101/22 up
ifconfig eth1:1 10.0.0.101/24 upmysql
exam、study(咱們公司考試、學習的庫)
ifconfig eth0:1 192.168.1.201/22 up
ifconfig eth1:1 10.0.0.201/24 up
5.開啓MHA
base:
nohup masterha_manager --conf=/etc/masterha/base.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/base/manager.log 2>&1 &
#查看日誌
tail -f /var/log/masterha/base/manager.lognginx
exam_study:
nohup masterha_manager --conf=/etc/masterha/exam_study.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/exam_study/manager.log 2>&1 &
#查看日誌
tail -f /var/log/masterha/exam_study/manager.log
6.測試
6.1準備測試數據庫
create database testdb
6.2建表
CREATE TABLE test_table
(ID
bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',DOMAIN_CODE
varchar(20) NOT NULL COMMENT '考試單位編號',EXAM_NAME
varchar(300) NOT NULL COMMENT '考試名稱',EXAM_TYPE
int(1) NOT NULL COMMENT '考試類型(正式考試,補考)',TARGET_EXAM_ID
bigint(20) DEFAULT NULL COMMENT '關聯正式考試的ID(若是是補考,該處是必填)',EXAM_PICTURE_PATH
varchar(100) DEFAULT NULL COMMENT '圖示路徑',EXAM_BEGIN_TIME
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '考試開始時間',EXAM_END_TIME
timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '考試結束時間',EXAM_TIME
int(3) NOT NULL COMMENT '考試時長',EXAM_NEED_SCORE
int(5) NOT NULL COMMENT '考試所需積分',EXAM_PAPER_TYPE
int(1) DEFAULT NULL COMMENT '考試試卷類型(0固定、1隨機)',EXAM_SCORE
double(6,2) DEFAULT NULL COMMENT '考試總分(關聯試卷後回填)',EXAM_PASS_SCORE
double(6,2) NOT NULL COMMENT '考試及格分',EXAM_COMMIT_NUM
int(2) NOT NULL COMMENT '參考最大次數',EXAM_STATUS
int(1) NOT NULL COMMENT '發佈狀態0未發佈,1已發佈',EXAM_YEAR
varchar(5) NOT NULL COMMENT '年份',EXAM_PAPER_ID
bigint(20) DEFAULT NULL COMMENT '關聯試卷ID',EXAM_DISCRIPTION
varchar(1000) DEFAULT NULL COMMENT '考試備註',OPERATOR_USER_ACCOUNT
varchar(20) NOT NULL COMMENT '修改人',OPERATOR_TIME
timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改時間',TARGET_DOMAIN_CODE
varchar(20) DEFAULT NULL COMMENT '發佈目標單位編號(發佈時回填)',RANK
varchar(100) DEFAULT NULL COMMENT '職務級別(發佈時回填)',EXAM_DIPLOMA_ID
bigint(20) DEFAULT NULL COMMENT '關聯證書',DIPLOMA_NAME
varchar(200) DEFAULT NULL COMMENT '證書標題(關聯證書後回填',DIPLOMA_PICTURE_PATH
varchar(200) DEFAULT NULL COMMENT '證書背景圖片保存位置(關聯證書後回填)',INDUSTRY_CODES
varchar(1000) DEFAULT NULL,LANGUAGE
int(2) NOT NULL DEFAULT '1' COMMENT 'è¯è¨€ï¼ˆ0:全部,1:汉è¯,2:ç»´è¯,3:è’™è¯,4:å「ˆè¯ï¼‰',EXT1
int(1) NOT NULL DEFAULT '1' COMMENT '成績計入學分的字段標識(0 是,1否)',EXT2
int(3) DEFAULT NULL COMMENT '成績所佔比例',EXT3
varchar(1) DEFAULT NULL,EXT4
varchar(1) DEFAULT NULL,EXT5
varchar(1) DEFAULT NULL,
PRIMARY KEY (ID
),
KEY DOMAIN_CODE
(DOMAIN_CODE
),
KEY EXAM_PAPER_ID
(EXAM_PAPER_ID
)
) ENGINE=InnoDB AUTO_INCREMENT=365 DEFAULT CHARSET=utf8;
6.3寫插入數據腳本
往數據庫裏插入數據的過程當中停庫測試
6.4網絡中斷測試
有的時候不是由於主庫掛了,而是由於主庫那臺服務器網絡中斷了,因此也要進行VIP漂移等測試,因此這裏要強調一下,無論是任何操做,或正上線任何東西,你們必定都要把問題考慮全面。
7.若是全部測試都沒有問題,就恢復環境,補全mha配置文件,啓動mha
由於測試完以後,mha會自動摘除down了的server標籤,因此要補全配置文件
8.開啓全部連庫的服務(resin/tomcat)
/etc/init.d/resin start
/usr/local/apache-tomcat/bin/startup.sh
9.添加監控
利用zabbix等監控軟件,監控mha的進程。sql
【注意】:之因此把命令都寫出來,是由於,在生產環境中,必定要先寫好上線流程的全部步驟,包括命令,而後在生產環境操做的時候,不要用手敲,必定要複製,複製必定不會出錯,可是手敲,不免會出現錯誤,若是一個步驟出現問題,那麼整個上線過程都會受到影響。數據庫