概述
目前業界對資料庫效能優化普遍採用叢集方式,而oracle叢集軟硬體投入昂貴,mysql則比較推薦用mycat去搭建資料庫叢集,下面介紹一下怎麼用mycat+haproxy+keepalived搭建一個屬於mysql資料庫的高可用負載均衡。
主要思路:簡單說,實現mysql主備複製-->利用mycat實現負載均衡。
比較了常用的讀寫分離方式,推薦mycat,社群活躍,效能穩定。
以下基於centos7作業系統進行演示。
架構圖以下是這次搭建的架構圖。
主機1與主機2上的keepalived會為該伺服器搶佔vip,搶佔到vip後,對該主機的訪問可以通過原來的ip訪問,也可以直接通過vip訪問,當其中一臺宕機時,vip會漂移到另一臺機器上,當我們訪問VIP時haproxy會根據配置將請求分發到兩臺Mycat上實現負載均衡,並且haproxy會檢測mycat是否存活。
下面先介紹下後端資料庫的搭建部分。
一、安裝部署mysql1、安裝依賴
2、建立基礎目錄並修改資料夾的屬組
mkdir -p /data/datafilemkdir -p /data/logchown -R mysql:mysql /data3、安裝mysql資料庫,採用rpm安裝方式
3.1解除安裝自帶包
3.2、安裝rpm
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-embedded-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-embedded-devel-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-test-5.7.26-1.el7.x86_64.rpm
4、mysql資料庫配置
4.1、修改資料庫my.cnf引數(注意server-id引數)
4.2、重啟資料庫初始化資料
service mysqld restart
4.3、修改資料庫密碼
4.3.1、檢視資料庫預設密碼
4.3.2、更改密碼
4.3.3、建立資料庫和使用者
create schema tms_prod default character set utf8;set global validate_password_policy=0;GRANT ALL PRIVILEGES ON *.* TO tms_prod@'%' identified by 'xxx';
4.3.4、重啟mysql資料庫
二、配置mysql主從原理:
1、主庫授權同步帳號
在主伺服器上,設定一個從資料庫的賬戶,使用REPLICATION SLAVE賦予許可權,如:
set global validate_password_policy=0;GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'fxxx';
2、修改主資料庫的配置檔案my.cnf
開啟BINLOG,並設定server-id的值,修改之後必須重啟Mysql服務。
3、檢視主伺服器狀態
可以檢視主伺服器當前二進位制日誌名和偏移量,這個操作的目的是為了在從資料庫啟動後,從這個點開始進行資料的恢復
4、從伺服器mysql配置
修改配置後需重啟資料庫伺服器
5、從庫開啟同步
5.1 從庫配置同步
配置mysql主從複製時,在從機上需要進行CHANGE MASTER TO操作,以確定需要同步的主機IP,使用者名稱,密碼,binlog檔案,binlog位置等資訊。
change master to配置和改變slave伺服器用於連線master伺服器的引數,以便slave伺服器讀取master伺服器的binlog及slave伺服器的relay log。同時也更新master info及relay log info資訊庫。執行該語句前如果從機上slave io及sql執行緒已經啟動,需要先停止(執行stop slave)。
change master toMASTER_HOST='xx.xx.xx',MASTER_USER='repl',MASTER_PASSWORD='xxxx',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=437;
5.2、開啟主從同步
開啟後注意檢視從庫狀態,
當Slave_IO_Running和Slave_SQL_Running都為YES的時候表示主從同步設定成功。
篇幅有限,這塊就先介紹到這了,後面開始介紹搭建mycat的部分,感興趣的朋友可以關注下~
-
1 #
-
2 #
標題寫的好,後半部分就是沒有
-
3 #
老哥這麼晚了還筆耕不輟,佩服佩服很有價值的資料,推薦學習!
-
4 #
你這些命令和檔名都是手打上去的嗎
-
5 #
繼續後面的才是正道
-
6 #
重點是ka,ha和mycat的配置
-
7 #
我是看完了,沒看懂
波波你有搭建hadoop的資料麼