京淘項目day11

1. 代碼還原

1.1 IP地址問題

問題描述:windows的IP連接不一樣Linux中的IP地址
image前端

問題說明:當虛擬機在啓動時,虛擬網卡沒有正常工做致使的,只須要重啓網卡便可.
imagejava

問題說明: 當虛擬起啓動時,虛擬網卡沒有正常的工做致使的. 只須要重啓網卡便可.
imagemysql

重啓網卡命令linux

service NetworkManager stop
chkconfig NetworkManager off    永久關閉 Manager網卡
service network restart         重啓network網卡

1.2 還原hosts文件

image

1.3 還原圖片路徑

image

1.4 還原nginx配置

讓域名訪問8091服務器.
imagenginx

2 數據庫相關學習

2.1 數據庫備份規則

2.1.1 數據庫備份策略

2.1.1 數據庫冷備份

說明:經過數據庫工具,按期將數據庫文件進行轉儲,保證數據的安全性(通常2-3天)web

缺點:
    1.備份時因爲突發狀況,可能致使備份失敗,須要反覆備份.
    2.因爲冷備份是按期備份,因此可能致使數據的丟失.
    
核心:
    數據必須備份,備份的數據時恢復的最後有效的手段

image

image

2.1.2 數據庫熱備份

說明:能夠經過數據庫機制,自動的實現數據的備份操做.
優勢:能夠實現自動化的操做,而且是實時備份
imagesql

備份實現原理:
    1.當數據主機發生變化時,會將修改的數據寫入二進制日誌文件中.
    2.從庫經過IO線程,讀取主庫的二進制日誌文件,獲取以後,將數據保存到中繼(臨時存儲)日誌中.
    3.從庫中開啓Sql線程.以後讀取中繼日誌中的數據,以後將數據同步到從庫中

2.2 準備多臺服務器

2.2.1 修改虛擬機名稱

說明:複製課前資料中的虛擬機,而且更名爲JT_LINUX_S.以後啓動便可.
imagemongodb

2.2.2 修改Linux從機的mac地址

爲了保證2臺虛擬機正常穩定的運行,須要修改mac地址.
image數據庫

2.2.3 安裝數據庫

具體參見博客文檔vim

2.3 數據庫主從搭建

2.3.1 開啓主庫二進制文件

說明:主庫的二進制日誌文件,默認條件小
命令:vim /etc/my.cnf
編輯二進制文件:
image

重啓數據庫,檢查二進制日誌文件是否可用
image

重啓以後,生成二進制文件
image

2.3.2 開啓從庫二進制配置文件

修改文件: vim /etc/my.cnf
添加的操做和主庫一致,以後重啓數據庫服務器,效果以下:
image

2.3.3 數據庫主從搭建

1).檢查主庫的狀態
image

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).主從狀態的校驗
image

2.3.4 數據庫主從測試

1.注意事項:
    1.修改主庫的數據,從庫會跟着同步數據.
    2.若是修改從庫數據,則主從的關係將會終止

2.4 數據庫讀寫分離/負載均衡實現

2.4.1 數據庫優化策略

說明:經過代理數據庫能夠實現數據庫的讀寫分離,數據庫負載均衡操做,進一步的提高了總體架構的能力
image

2.4.2 Mycat

image

2.4.3 Mycat特性

  • 支持SQL92標準
  • 支持MySQL、Oracle、DB二、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、DB二、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
image

2.5.2 解壓Mycat

tar -xvf  Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz

移動安裝路徑:
image

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 實現配置文件的上傳

image

2.5.5 Mycat命令

Usage: ./mycat { console | start | stop | restart | status | dump }

image

2.5.6 檢查mycat日誌

image

2.5.7 Mycat負載均衡測試

修改從庫中的數據庫.刷新列表頁面.檢查是否有負載均衡的效果.注意事項: 若是測試完成,記得將數據修改 保證一致.

相關文章
相關標籤/搜索