1.代碼還原
1.1 IP地址問題
問題描述: windows的IP鏈接不通Linux中的IP地址.


問題說明: 當虛擬起啟動時,虛擬網卡沒有正常的作業導致的. 只需要重啟網卡即可.

重啟網卡命令:
service NetworkManager stop
chkconfig NetworkManager off 永久關閉 Manager網卡
service network restart 重啟network網卡
1.2 還原hosts檔案

1.3 還原圖片路徑

1.4 還原nginx配置
讓域名訪問8091服務器.

2 資料庫相關學習
2.1 資料庫備份策略
2.1.1 資料庫冷備份
說明:通過資料庫工具,定期將資料庫檔案進行轉儲,保證資料的安全性. (一般2-3天)
缺點:
1.備份時由于突發的情況,可能導致備份失敗.需要反復備份.
2.由于冷備份是定期備份.所以可能導致資料的丟失.
核心:
資料必須備份.備份的資料是恢復的最后有效的手段.


2.1.2資料庫熱備份
說明:可以通過資料庫機制,自動的實作資料的備份操作.
優點: 可以實作自動化的操作,并且是實時備份.

備份實作原理:
1.當資料庫主機的資料發現變化時,會將修改的資料寫入二進制日志檔案中.
2.從庫通過IO執行緒,讀取主庫的二進制日志檔案,獲取之后,將資料保存到中繼(臨時存盤)日志中.
3.從庫中開啟Sql執行緒,之后讀取中繼日志中的資料,之后將資料同步到從庫中.
2.2 準備多臺服務器
2.2.1 修改虛擬機名稱
說明:復制課前資料中的虛擬機,并且改名為JT_LINUX_S.之后啟動即可.

2.2.2 修改Linux從機的mac地址
為了保證2臺虛擬機正常穩定的運行,需要修改mac地址.

2.2.3 安裝資料庫從庫
具體參見 博客檔案.
https://blog.csdn.net/qq_16804847/article/details/108450506
2.3 資料庫主從搭建
2.3.1 開啟主庫二進制檔案
說明:主庫的二進制日志檔案,默認條件下是關閉的,需要手動的開啟.
命令: vim /etc/my.cnf
編輯二進制日志檔案:

重啟資料庫,檢查二進制日志檔案,是否可用.

重啟之后,生成二進制檔案

2.3.2 開啟從庫二進制組態檔
修改檔案: vim /etc/my.cnf
添加的操作和主庫一致,之后重啟資料庫服務器,效果如下:

2.3.3 資料庫主從搭建
1).檢查主庫的狀態

2). 實作資料庫主從掛載
/*我是130 我是從庫*/
/*1.實作資料庫主從掛載 host/port/user/password/二進制日志/pos*/
CHANGE MASTER TO MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;
/*2.啟動資料庫主從服務*/
START SLAVE;
/*3.檢查資料庫啟動狀態*/
SHOW SLAVE STATUS;
/*4.如果出現資料庫問題 1.關閉主從服務, 2.檢查報錯狀態 3.重新搭建服務*/
STOP SLAVE
/*檢查報錯資訊 根據報錯修改記錄*/
/*重新搭建主從關系*/
3).主從狀態的校驗

2.3.4 資料庫主從測驗
注意事項:
1.修改主庫的資料,從庫會跟著同步資料.
2.如果修改從庫資料,則主從的關系將會終止.
2.4 資料庫讀寫分離/負載均衡實作
2.4.1 資料庫優化策略
說明:通過代理資料庫可以實作資料庫的讀寫分離/資料庫負載均衡操作,進一步的提升了整體架構的能力.

2.4.2 Mycat

2.4.3 Mycat特性
支持SQL92標準
支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常見SQL語法
遵守Mysql原生協議,跨語言,跨平臺,跨資料庫的通用中間件代理,
基于心跳的自動故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集群,
支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
基于Nio實作,有效管理執行緒,解決高并發問題,
支持資料的多片自動路由與聚合,支持sum,count,max等常用的聚合函式,支持跨庫分頁,
支持單庫內部任意join,支持跨庫2表join,甚至基于caltlet的多表join,
支持通過全域表,ER關系的分片策略,實作了高效的多表join查詢,
支持多租戶方案,
支持分布式事務(弱xa),
支持XA分布式事務(1.6.5),
支持全域序列號,解決分布式下的主鍵生成問題,
分片規則豐富,插件化開發,易于擴展,
強大的web,命令列監控,
支持前端作為MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉,
支持密碼加密
支持服務降級
支持IP白名單
支持SQL黑名單、sql注入攻擊攔截
支持prepare預編譯指令(1.6)
支持非堆記憶體(Direct Memory)聚合計算(1.6)
支持PostgreSQL的native協議(1.6)
支持mysql和oracle存盤程序,out引數、多結果集回傳(1.6)
支持zookeeper協調主從切換、zk序列、配置zk化(1.6)
支持庫內分表(1.6)
集群基于ZooKeeper管理,在線升級,擴容,智能優化,大資料處理(2.0開發版),
2.5 部署步驟
2.5.1 上傳myCat服務器
上傳路徑: /usr/local/src

2.5.2 解壓Mycat
tar -xvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz
移動安裝檔案:

2.5.3 server.xml組態檔說明
注意事項: 默認條件下的埠號8066埠
<user name="root">
<property name="password">root</property>
<!--與schema.xml中的配置相同 注意資料庫的大小寫-->
<property name="schemas">jtdb</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">jtdb</property>
<property name="readOnly">true</property>
</user>
2.5.3 schema.xml配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--name屬性是自定義的 dataNode表示資料庫的節點資訊 jtdb表示邏輯庫-->
<schema name="jtdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="jtdb"/>
<!--定義節點名稱/節點主機/資料名稱-->
<dataNode name="jtdb" dataHost="localhost1" database="jtdb" />
<!--引數介紹 UTF-8 中文報錯-->
<!--balance 0表示所有的讀操作都會發往writeHost主機 -->
<!--1表示所有的讀操作發往readHost和閑置的主節點中-->
<!--writeType=0 所有的寫操作都發往第一個writeHost主機-->
<!--writeType=1 所有的寫操作隨機發往writeHost中-->
<!--dbType 表示資料庫型別 mysql/oracle-->
<!--dbDriver="native" 固定引數 不變-->
<!--switchType=-1 表示不自動切換, 主機宕機后不會自動切換從節點-->
<!--switchType=1 表示會自動切換(默認值)如果第一個主節點宕機后,Mycat會進行3次心跳檢測,如果3次都沒有回應,則會自動切換到第二個主節點-->
<!--并且會更新/conf/dnindex.properties檔案的主節點資訊 localhost1=0 表示第一個節點.該檔案不要隨意修改否則會出現大問題-->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select 1</heartbeat>
<!--配置第一臺主機主要進行寫庫操作,在默認的條件下Mycat主要操作第一臺主機在第一臺主機中已經實作了讀寫分離.因為默認寫操作會發往137的資料庫.讀的操作默認發往141.如果從節點比較忙,則主節點分擔部分壓力.
-->
<writeHost host="hostM1" url="192.168.126.129:3306" user="root" password="root">
<!--讀資料庫1-->
<readHost host="hostS1" url="192.168.126.130:3306" user="root" password="root" />
<!--讀資料庫2-->
<readHost host="hostS2" url="192.168.126.129:3306" user="root" password="root" />
</writeHost>
<!--定義第二臺主機 由于資料庫內部已經實作了雙機熱備.-->
<!--Mycat實作高可用.當第一個主機137宕機后.mycat會自動發出心跳檢測.檢測3次.-->
<!--如果主機137沒有給Mycat回應則判斷主機死亡.則回啟東第二臺主機繼續為用戶提供服務.-->
<!--如果137主機恢復之后則處于等待狀態.如果141宕機則137再次持續為用戶提供服務.-->
<!--前提:實作雙機熱備.-->
<!--<writeHost host="hostM2" url="192.168.126.130:3306" user="root" password="root">
<readHost host="hostS1" url="192.168.126.130:3306" user="root" password="root" />
<readHost host="hostS2" url="192.168.126.129:3306" user="root" password="root" />
</writeHost>-->
</dataHost>
</mycat:schema>
2.5.4 實作組態檔上傳

2.5.5 Mycat命令
Usage: ./mycat { console | start | stop | restart | status | dump }

2.5.6 檢查mycat日志

2.5.7 Mycat負載均衡測驗
修改從庫中的資料庫.重繪串列頁面.檢查是否有負載均衡的效果.
注意事項: 如果測驗完成,記得將資料修改 保證一致.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/212938.html
標籤:其他
