<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #MySQL Cluster實踐 ##MySQL Cluster是什么 MySQL Cluster是一種在無共享架構(SNA,Shared Nothing Architecture)系統里應用內存 數據庫集群的技術。 什么是SNA?有什么好處? ##MySQL Cluster目標 分布式設計,目標是要達到沒有任何單點故障。 數據可用度99.999% ##MySQL Cluster核心 NDB內存集群存儲引擎 特點: 1、分布式 2、基于內存 ##MySQL Cluster體系結構 1、管理節點(ndb_mgm) 啟動和節點維護,運行時不是必須的 2、數據或存儲節點(ndbd) 兩個以上節點實現高可用 3、客戶端或SQL節點(普通mysqld進程) 需要配置my.cnf的ndbcluster ![](https://box.kancloud.cn/2016-05-20_573e7551e774e.png) ##NDB存儲引擎特點 優點: 1、分布式,可以在不同的地理位置 2、擴展性好,在線增刪節點 3、冗余性好,沒有單點故障 4、速度快,實現高可用成本低 ##NDB存儲引擎特點 缺點: 1、基于內存,規模受限 2、部署、管理、配置復雜,備份和恢復時間長 3、多個節點基于網絡同步,速度受網絡影響大 4、有限制,數據行,不支持外鍵,復雜sql查詢性能一般 ##MySQL Cluster部署 1、下載cluster版本的mysql 包含普通版數據庫,安裝數據庫是一樣的 多了cluster的一些組件 2、數據表必須為ndbcluster引擎 其他引擎的數據表不會同步 3、管理節點、數據節點、SQL節點可以在一臺服務器也可以分開 分開部署效率高 ##MySQL Cluster管理節點config.ini ~~~ [NDBD DEFAULT] (忽略格式,每個配置項一行) NoOfReplicas=2 [NDB_MGMD] NodeId=1 hostname=10.131.172.145 datadir=/usr/local/mysql-cluster [NDBD] NodeId=2 hostname=10.131.172.145 datadir=/usr/local/mysql-cluster/data [NDBD] NodeId=3 hostname=10.131.172.146 datadir=/usr/local/mysql-cluster/data [MySQLD] hostname=10.131.172.145 [MySQLD] hostname=10.131.172.146 [MySQLD] ~~~ ##MySQL Cluster數據庫配置my.cnf ~~~ [MYSQLD] ndbcluster [MYSQL_CLUSTER] ndb-connectstring=10.131.172.145:1186 ~~~ ##MySQL Cluster啟動 **1、管理節點** `bin/ndb_mgmd -f config.ini` **2、數據節點** ~~~ bin/ndbd --defaults-file=my_cluster.cnf 第一次啟動加參數 --initial ~~~ **3、SQL節點** ~~~ bin/mysqld --defaults-file=my_cluster.cnf & 就是普通的數據庫操作,退出 bin/mysqladmin --defaults-file=my_cluster.cnf -uroot shutdown ~~~ ##MySQL Cluster操作 **1、管理:** `bin/ndb_mgm -e show 查看節點狀態` `bin/ndb_mgm -e shutdown 關閉集群` `bin/ndb_mgm -e “all report memory” 查看內存使用信息` `bin/ndb_desc -d test t1 -p 查看數據表分界點存儲信息` **2、對每個SQL節點可以像非cluster數據庫一樣獨立操作,關閉** **3、ndbcluster引擎的表數據會自動同步,避免單點故障** **4、如何在線擴容?** ##MySQL Cluster在線擴容 1、管理節點配置文件添加機器 2、管理節點reload配置文件,此時新節點為未連接狀態 3、滾動重啟舊的數據存儲節點 4、滾動重啟所有SQL節點 5、初始化方式啟動新的數據存儲節點 6、為新節點創建組,例如:create nodegroup 3,4 7、舊的表需要用命令重新分配到所有數據節點: ALTER ONLINE TABLE ... REORGANIZE PARTITION http://www.cnblogs.com/xiaoTT/archive/2011/12/22/2297427.html ##MySQL Cluster性能 http://www.itpub.net/thread-1757006-1-1.html 1. 在寫操作上ndbcluster是innodb的3到4倍 2. 在讀性能上, ndbcluster是innodb的2倍,壓力越大并發量越大時,ndbcluster的 查詢性能越高 3. 99.999%高可用,無延時 #多主架構方案 ![](https://box.kancloud.cn/2016-05-20_573e7552334cd.png) ![](https://box.kancloud.cn/2016-05-20_573e75526e792.png) ##多主方案對比 1. 雙主 2. 多主 4. MHA 穩定、操作簡單 結構穩定、簡單,同步時間長,需要自己監控 3. Cluster 多臺機器較好的方案,需要NDB引擎 主庫宕機0.5-2秒切換,安裝和運行不影響已有MySQL功能 #MySQL Proxy與Atlas ##MySQL Proxy是什么 MySQL Proxy是一個處于client和server之間的代理程序,可以監控、分析和改變 它們之間的通信。 1、負載均衡 2、主從分離 3、故障處理 4、查詢分析 Atlas又是什么? ![](https://box.kancloud.cn/2016-05-20_573e7552ac378.png) ##MySQL Proxy使用 1. 下載mysql proxy 2. 安裝lua(如果要主從分離或其他功能) 測試情況下修改rw-splitting.lua,更改默認連接數啟動讀寫分離 3. 主從庫新建同樣的數據庫用戶和密碼 4. 直接加參數啟動即可(或者通過配置文件--defaults-file=proxy.cnf) bin/mysql-proxy --daemon -b 10.131.167.12:3306 -r 10.131.167.13:3306 -s /mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua 5. 客戶端連接proxy的4040端口,就和普通的數據庫一樣使用 ##MySQL Proxy配置文件(660權限) ~~~ [mysql-proxy] admin-username=admin admin-password=admin admin-lua-script=/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua proxy-backend-addresses=10.131.167.12:3306 proxy-read-only-backend-addresses=10.131.167.13:3306 proxy-lua-script=/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua log-file=/mysql-proxy/proxy.log log-level=debug daemon=true keepalive=true ~~~ ##MySQL Proxy幾個問題 1、slave宕機后,如何讀取? 2、master宕機,會如何處理? 3、SQL啟動后,proxy能自動監測嗎? 4、如何解決主從同步時間問題? ![](https://box.kancloud.cn/2016-05-20_573e7552e3387.png) ##Atlas項目 https://github.com/Qihoo360/Atlas Qihoo 360基于Mysql Proxy 0.8.2開發的數據庫中間層 主要功能: 1、讀寫分離 2、負載均衡 3、IP過濾 4、自動分表 5、平滑上下線DB 6、自動摘除宕機的DB 相對于官方Proxy有什么特點? ##Atlas優勢 相對于官方MySQL Proxy優勢: 1、主流Lua代碼用C實現,效率和性能更高 2、穩定性更高,360內部每天幾十億請求 3、配置操作更方便 4、實現了簡單分表 ![](https://box.kancloud.cn/2016-05-20_573e755320280.png) ##Atlas使用 **1、下載rpm并安裝** `rpm -i Atlas-xxx.rpm(CentOS)` **2、修改配置/usr/local/mysql-proxy/conf/test.cnf加入主從機器** ~~~ proxy-backend-address=10.131.167.12:3306 proxy-read-only-backend-address=10.131.167.12:3306,10.131.167.13:3306 pwds=proxy:HJBoxfRsjel= ~~~ **3、啟動** 主從庫創建同樣的數據庫用戶名和密碼 `/usr/local/mysql-proxy/bin/mysql-proxyd test start(restart、stop)` **4、使用和管理** `mysql -P1234 mysql -P2345` #連接池方案 **主從架構連接池方案** 1、php連接池 2、proxy proxy能解決分庫分表連接池問題嗎? **分庫分表與主從架構連接池方案** 配置庫 本質: 查詢配置再連接實際庫 #分布式數據庫總結 **分布式數據庫需要考慮的問題** **1、數據量擴展** 分庫分表 **2、訪問量擴展** 主從分離、cluster **3、單點故障** slave、cluster、MHA **4、備份與擴容** 在線擴容,冗余節點備份 **5、連接池** php、proxy、中間層 **服務器分布式方案** 多個 proxy + cluster集群 **服務器分布式中間件** 1、服務器 2、客戶端 3、中間件 **中間件的作用使得服務器和客戶端都盡量簡單并且高效** php直連數據庫一定有問題嗎? ##服務器分布式中間件 基于RPC 1、局域網時代 DCOM、CORBA、JavaRMI 2、Thrift Apache開源,Facebook出品,簡單輕量 3、Ice Internet Communications Engine,ZeroC分布式高性能面向對象的中間件 開源、跨平臺跨語言、分布式、服務透明、負載均衡、面向對象,使用稍復雜 4、基于SOAP的WebService? ![](https://box.kancloud.cn/2016-05-20_573e75534ab50.png) ![](https://box.kancloud.cn/2016-05-20_573e755374fad.png) **總結** MySQL Cluster MySQL Proxy、Atlas 分布式數據庫解決方案
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看