集羣部署及數據庫高可用實現
1 Linux集羣部署
1.1 連接數據庫
1.1.1 修改JDBC ip地址
1.1.2 修改db.property
1.1.3 Tomcat部署示意圖
1.2 部署單臺Tomcat
1.2.1 上傳tomcat安裝包
1.解壓安裝文件
tar -xvf apache-tomcat-7.0.55.tar.gz
2.修改tomcat文件名稱
mv apache-tomcat-7.0.55 tomcat-8091
3.移除安裝包
rm apache-tomcat-7.0.55.tar.gz
最終tomcats目錄結構如下:
1.2.2 修改配置文件
1.報錯解決方案
2.修改端口
1.2.3 啓動tomcat
使用命令
sh startup.sh
或者命令
./startup.sh
啓動tomcat
1.2.4 關閉防火牆
[root@localhost bin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
1.2.5 部署war包
將webapps中的ROOT文件夾先刪除,之後部署war包
啓動tomcat
./startup.sh
切換到conf目錄,然後檢查日誌文件
cat catalina.out
1.2.6 開放mysql權限
要求:mysql權限命令的執行,需要在mysql客戶端中運行。
語法:
grant [權限] on [數據庫名].[表名] to ['用戶名']@['web服務器的ip地址'] identified by ['密碼'];
這裏我們使用
grant all on *.* to 'root'@'%' identified by 'root';
或者指定IP地址
grant all on *.* to 'root'@'192.168.1.103' identified by 'root';
1.2.7 單臺tomcat測試
1.2.8 複製多臺tomcat
cp -r tomcat-8091 tomcat-8092
cp -r tomcat-8091 tomcat-8093
說明:分別修改8005/8080/8009端口啓動多臺tomcat,之後啓動測試。
1.2.9 Nginx實現Linux集羣訪問
#Linux中集羣部署
upstream jtLinux {
server 192.168.126.161:8091;
server 192.168.126.161:8092;
server 192.168.126.161:8093;
}
#後臺管理系統
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jtLinux;
#proxy_connect_timeout 3;
#proxy_read_timeout 3;
#proxy_send_timeout 3;
}
}
2 數據庫高可用
2.1 數據庫備份
2.1.1 冷備份
定期進行數據庫導出。工具sqlYog
缺點:
-不能保證數據的完整性。
-如果數據庫中文件較大,則導出的.sql文件體積很大
補充: 數據庫冷備份是恢復數據的最後有效手段。
2.1.2 熱備份
主庫:主要負責寫入二進制日誌文件
從庫:主要負責監聽主庫中數據的修改,並同步到從庫中。
調用過程:
- 當主庫中數據發生變化時,會將更新的操作寫入到二進制日誌文件中。
- 從庫通過IO線程實時監聽主庫中的二進制日誌文件,當文件發生變化時,讀取變化的日誌內容寫入中繼日誌中。
- 從庫通過sql線程讀取中繼日誌中的消息,最終將數據同步到從庫中。
2.1.3 克隆2臺虛擬機
克隆2臺全新的數據庫 mysql-master/mysql-slave,之後將IP設置爲固定IP。
2.1.4 安裝mysql數據庫
1.上傳mysql安裝文件
在/usr/local/src/中新建mysql文件夾,之後上傳數據庫安裝文件。
2.解壓文件
執行解壓命令
tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
解壓後如下
[root@localhost mysql]# tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-devel-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-test-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-tokudb-56-5.6.24-rel72.2.el6.x86_64.rpm
3.安裝mysql數據庫
安裝順序:1. 56-debug-info 2. shared 3. client 4. server
安裝命令
rpm -ivh 安裝文件的名稱
安裝Debug-info
rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
安裝shared
rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
安裝client客戶端
rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
安裝服務端
rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
2.1.5 啓動mysql服務項
啓動命令: service mysql start
重啓命令: service mysql restart
關閉命令: service mysql stop
2.1.6 導入數據庫
1.關閉防火牆
2.將數據庫文件上傳到mysql文件夾中
3.設定用戶名和密碼
4.使用新密碼登錄
5.導入京淘數據庫
命令:
source 絕對路徑 /usr/local/src/mysql/jtdb.sql;
或
Source 相對路徑 jtdb.sql;
6.測試檢查數據庫是否正確
show tables;
7.開啓mysql對外權限
grant all on *.* to 'root'@'%' identified by 'root';
8.連接數據庫
2.1.7 關於數據庫報錯解決方案
1.查詢進程號PID,然後kill
2.2 實現數據庫主從搭建
2.2.1 開啓主庫二進制日誌文件
1.編輯mysql系統配置文件
vim /etc/my.cnf
2.重啓mysql數據庫服務器
注意檢查二進制文件是否存在
2.2.2 配置從庫
1.修改從庫二進制文件
vim /etc/my.cnf
2.重啓mysql從庫
2.2.3 實現數據庫主從掛載
1.檢查主庫狀態
Show master status;
2.實現主從掛載
/*實現主從掛載 主庫IP/端口/用戶名/密碼/二進制日誌文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.126.162",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120
/*啓動主從服務*/
START SLAVE
/*檢查主從狀態*/
SHOW SLAVE STATUS;
/*如果掛載有誤,先關閉主從服務 之後重新掛載主從*/
STOP SLAVE
2.2.4 狀態檢測
執行命令
SHOW SLAVE STATUS;
如果出現兩個yes則表示掛在成功
之後狀態測試
修改主庫數據,檢查數據是否同步。
2.3 實現數據庫讀寫分離
用戶的寫庫操作執行主庫,用戶的讀操作指向從庫。
2.3.2 Ameba(變形蟲)
Amoeba是一個以MySQL爲底層數據存儲,並對應用提供MySQL協議接口的proxy。
它集中地響應應用的請求,依據用戶事先設置的規則,將SQL請求發送到特定的數據庫上執行。基於此可以實現負載均衡、讀寫分離、高可用性等需求。
與MySQL官方的MySQL Proxy相比,作者強調的是amoeba配置的方便(基於XML的配置文件,用SQLJEP語法書寫規則,比基於lua腳本的MySQL Proxy簡單)。
2.4 Amoeba搭建步驟
2.4.1 配置JDK環境
1.上傳JDK
2.解壓JDK
3.配置環境變量 /etc/profile
4.刷新環境配置
Source /etc/profile
然後查詢jdk版本信息
java -version
2.4.2 安裝Amoeba
1.FZ工具使用
2.下載文件
3.解壓文件
2.4.3 修改dbServer.xml
1.配置amoeba連接數據庫
2.配置數據庫鏈接
3.配置連接池,定義負載均衡
2.4.4 修改Amoeba.xml
1.配置IP
2.定義用戶名和密碼
3.配置讀寫分離
2.4.5 修改JVM內存
-Xms256m 初始化內存大小256m
-Xmx1024m 最大內存1g
-Xss196k 每次線程大小
2.4.6 啓動Amoeba
關閉防火牆
命令:
-啓動命令 ./launcher
-關閉命令 ./shutdown