最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows Server 2003 下配置 MySQL 集群(Cluster)教程

 更新時間:2015年06月20日 11:45:39   投稿:junjie  
這篇文章主要介紹了Windows Server 2003 下配置 MySQL 集群(Cluster)教程,本文先是講解了原理知識,然后給出詳細配置步驟和操作方法,需要的朋友可以參考下

MySQL 群集是 MySQL 適合于分布式計算環(huán)境的高可用、高冗余版本。它采用了 NDB Cluster 存儲引擎,允許在 1 個群集中運行多個 MySQL 服務器。在 MySQL 5.0 及以上的二進制版本中,以及與最新的 Linux 版本兼容的 RPM 包中提供了該存儲引擎。

MySQL 群集是一種技術,該技術允許在無共享的系統(tǒng)中部署“內存中”和“磁盤中”數(shù)據(jù)庫的 Cluster 。通過無共享體系結構,系統(tǒng)能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內存和磁盤,不存在單點故障。MySQL Cluster 由一組計算機構成,每臺計算機上均運行著多種進程,包括 MySQL 服務器,NDB Cluster 的數(shù)據(jù)節(jié)點,管理服務器,以及(可能存在的)專門的數(shù)據(jù)訪問程序。

管理服務器(MGM節(jié)點)負責管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每個節(jié)點從管理服務器檢索配置數(shù)據(jù)。當數(shù)據(jù)節(jié)點內出現(xiàn)新的事件時,節(jié)點將關于這類事件的信息傳輸?shù)焦芾矸掌鳎缓?,將這類信息寫入 Cluster 日志。

目前能夠運行 MySQL Cluster 的操作系統(tǒng)有 Linux、Mac OS X 和 Solaris,最新的版本已經支持 Windows 操作系統(tǒng)。

MySQL 群集的數(shù)據(jù)節(jié)點之間的通信是不加密的,并且需要高速的帶寬,所以建議把群集建立在一個高速局域網內,不建議跨網段、跨公網的部署這種系統(tǒng)體系。

MySQL 群集分為三種節(jié)點:管理節(jié)點,數(shù)據(jù)節(jié)點和SQL節(jié)點。

管理節(jié)點:主要用于管理各個節(jié)點,能夠通過命令對某個節(jié)點進行重啟、關閉、啟動等操作。也能夠監(jiān)視全部節(jié)點的工作狀態(tài)。

數(shù)據(jù)節(jié)點:主要是對數(shù)據(jù)的存儲,不提供其他的服務。
SQL節(jié)點:主要是對外提供SQL功能,類似一臺普通的 MySQL Server。

而SQL節(jié)點和數(shù)據(jù)節(jié)點可以是同一臺機器,也就是說這臺機器即是SQL節(jié)點也是數(shù)據(jù)節(jié)點。它們只是邏輯關系上的劃分,實際部署時,甚至所有的階段都可以位于同一臺物理機器上,只是配置較復雜些。


一、軟件下載機器操作環(huán)境

配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的區(qū)別。本文以 Windows 平臺下的 MySQL 群集版本 MySQL Cluster 7.1.3 為例(截至2010年6月初的最高版本),這是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下載地址為:http://dev.mysql.com/downloads/cluster,選擇 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,這是一個 for Windows 32位版本的、免安裝的二進制版本。

根據(jù)自己的操作系統(tǒng)的位數(shù),也可以選擇 64 位版本的。還有一個 27.2M 的 Windows(x86, 32-bit) 版本,下載下來需要自己編譯,有經驗的高級用戶可以選用。

本實驗在 2 臺安裝 Windows Server 2003(sp2) 的機器上進行。節(jié)點分配及 IP 配置如下:

第一臺機器,IP 為 10.0.0.201,作為管理節(jié)點(MGM),SQL節(jié)點1(SQL1),數(shù)據(jù)節(jié)點1(NDBD1)。
第二臺機器,IP 為 10.0.0.202,作為SQL節(jié)點2(SQL2),數(shù)據(jù)節(jié)點2(NDBD2)。

管理節(jié)點最好不要與數(shù)據(jù)節(jié)點部署在同一臺服務器上,否則可能會因為該數(shù)據(jù)節(jié)點服務器的當機,而導致管理節(jié)點服務器的問題,從而導致整個群集系統(tǒng)的崩潰。

二,配置管理節(jié)點:

    在第一臺機器上,建文件夾 D:\mysql-cluster,在其下建立文件 config.ini,內容如下:

復制代碼 代碼如下:

    [NDBD DEFAULT]
    NoOfReplicas=1

    [MYSQLD DEFAULT]

    [NDB_MGMD DEFAULT]

    [TCP DEFAULT]

    # Managment Server
    [NDB_MGMD]
    hostname=10.0.0.201

    # Storage Engines
    [NDBD]
    hostname=10.0.0.201
    datadir= D:\data

    [NDBD]
    hostname=10.0.0.202
    datadir= D:\data

    # SQL Engines
    [MYSQLD]
    hostname=10.0.0.201

    [MYSQLD]
    hostname=10.0.0.202


    Cluster 管理節(jié)點的默認端口是1186,數(shù)據(jù)節(jié)點的默認端口是 2202。從 MySQL 5.0.3開始,該限制已被放寬,Cluster 能夠根據(jù)空閑的端口自動地為數(shù)據(jù)節(jié)點分配端口。如果你的版本低于5.0.22,請注意這個細節(jié)。

    Cluster 管理節(jié)點作為一個服務端(通過運行 db_mgmd.exe 程序讀取本配置文件來啟動),通過本機上的客戶端 ndb_mgm.exe 來連接和操作。

  三、配置 MySQL 數(shù)據(jù)庫服務器:

    在2臺機器上,分別依次操作。

    解壓 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 文件夾下,把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\bin 加到 Windows 的系統(tǒng) path 中。

    打開DOS命令行窗口(配置完系統(tǒng)path后,在再次打開新的命令行窗口),執(zhí)行以下語句,讓 MySQL 作為 Windows 服務運行:

復制代碼 代碼如下:

    mysqld.exe -install mysql

    再在 Windows 服務管理界面里,配置 mysql 服務,手動啟動(不要自動啟動)。

    把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 下的某個備用的配置文件(例如my-small.ini)復制為 my.ini 文件。

    建立 D:\tmp 文件夾。

四、配置SQL節(jié)點和數(shù)據(jù)節(jié)點:

    在2臺機器上,分別依次操作。

    建立文件夾 D:\data。

    編輯 NySQL 配置文件 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\my.ini,在 [mysqld] 節(jié)末尾加語句:

復制代碼 代碼如下:

    #SQL群集節(jié)點
    ndbcluster
    ndb-connectstring=10.0.0.201

    有了 ndbcluster 語句,mysql 服務將作為群集的 SQL 節(jié)點啟動。mysqld.exe 命令帶參數(shù) –ndbcluster 運行是一樣的效果。
    mysql 服務連接到數(shù)據(jù)節(jié)點的 2202 默認端口,或自動分配的別的可用端口。
    (問題:SQL節(jié)點如何獲得數(shù)據(jù)節(jié)點的IP地址?是否通過連接管理節(jié)點,取得所有數(shù)據(jù)節(jié)點的IP地址的列表?)
    這里的連接字符串的值在 MySQL 服務啟動時使用,用于連接到管理節(jié)點。

    在末尾加語句:

復制代碼 代碼如下:

    #NDB集群節(jié)點
    [mysql_cluster]
    ndb-connectstring=10.0.0.201

    注:好像以下形式也可:
復制代碼 代碼如下:

    [ndbd]
    ndb-connectstring=10.0.0.201

    這里的連接字符串的值在數(shù)據(jù)節(jié)點啟動時使用,用于連接到管理節(jié)點。

五,啟動群集各服務器

    啟動順序依次是:管理節(jié)點、數(shù)據(jù)節(jié)點、SQL節(jié)點。

    1,啟動管理節(jié)點

    在第一臺服務器的DOS窗口,運行命令:

復制代碼 代碼如下:

    C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

    注:如果不帶 –configdir=d:\mysql-cluster 參數(shù),將默認為 C:\mysql\mysql-cluster 文件夾。

    屏幕顯示:

復制代碼 代碼如下:

    C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Reading cluster configuration from ‘d:\mysql-cluster.conf\config.ini'
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Got initial configuration from ‘d:\mysql-cluster.conf\config.ini', will try to set it when all ndb_mgmd(s) started
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Id: 1, Command port: *:1186
    ==INITIAL==
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Starting initial configuration change
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Configuration 1 commited
    2010-06-10 01:16:57 [MgmtSrvr] INFO     — Config change completed! New generation: 1
    ==CONFIRMED==

    2,啟動數(shù)據(jù)節(jié)點

    分別在2臺服務器的DOS窗口運行命令。

    第一次,或初始化群集節(jié)點時,運行命令:

復制代碼 代碼如下:

    ndbd.exe –initial

    初始化之后,只運行 ndbd.exe 即可。若帶參數(shù) –initial 運行,將使正常運行的群集系統(tǒng)中,數(shù)據(jù)節(jié)點的數(shù)據(jù)全部丟失。

    數(shù)據(jù)節(jié)點依賴管理節(jié)點服務器,進行數(shù)據(jù)的自動復制和同步,使各個數(shù)據(jù)節(jié)點的數(shù)據(jù)保持一致,并在某個數(shù)據(jù)節(jié)點意外關閉又恢復后,進行數(shù)據(jù)的恢復重建。

    3,啟動SQL節(jié)點

    有了 ndbcluster 語句,啟動 mysql 服務,就啟動了SQL節(jié)點。應在前2種節(jié)點啟動后,分別在2臺服務器上進行。

六、群集管理

    在所有的數(shù)據(jù)節(jié)點和SQL節(jié)點未啟動之前,運行群集管理節(jié)點服務的客戶端 ndb_mgm.exe,只能獲得以下信息:

復制代碼 代碼如下:

    C:\>ndb_mgm.exe
    — NDB Cluster — Management Client –
    ndb_mgm> show
    Cluster Configuration
    ———————
    [ndbd(NDB)]     2 node(s)
    id=2 (not connected, accepting connect from 10.0.0.201)
    id=3 (not connected, accepting connect from 10.0.0.202)

    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @10.0.0.201  (mysql-5.1.44 ndb-7.1.3)

    [mysqld(API)]   2 node(s)
    id=4 (not connected, accepting connect from 10.0.0.201)
    id=5 (not connected, accepting connect from 10.0.0.202)

    ndb_mgm>


    說明數(shù)據(jù)節(jié)點、SQL節(jié)點均未連接到管理節(jié)點服務。

    在所有的數(shù)據(jù)節(jié)點和SQL節(jié)點正確啟動之后,將獲得以下信息:

復制代碼 代碼如下:

    ndb_mgm> show
    Cluster Configuration
    ———————
    [ndbd(NDB)]     2 node(s)
    id=2    @10.0.0.201  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
    id=3    @10.0.0.202  (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)

    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @10.0.0.201  (mysql-5.1.44 ndb-7.1.3)

    [mysqld(API)]   2 node(s)
    id=4    @10.0.0.201  (mysql-5.1.44 ndb-7.1.3)
    id=5    @10.0.0.202  (mysql-5.1.44 ndb-7.1.3)

    ndb_mgm>


    關閉群集的DOS命令:
復制代碼 代碼如下:

    ndb_mgm -e shutdown

    或在 ndb_mgm 環(huán)境下執(zhí)行 shutdown 命令。

    以上命令或關閉管理節(jié)點服務和所有的數(shù)據(jù)節(jié)點。隨意、強行關閉群集系統(tǒng)(關機或關閉進程),會導致數(shù)據(jù)沒有全部寫回磁盤而導致的數(shù)據(jù)丟失。

    關閉SQL節(jié)點的 mysqld 服務:

復制代碼 代碼如下:

    C:\>net stop mysql,或:

    C:\>mysqladmin -u root shutdown

七、測試

    正常運行的 MySQL 群集系統(tǒng),通過SQL節(jié)點可以對數(shù)據(jù)節(jié)點進行數(shù)據(jù)庫操作,各數(shù)據(jù)節(jié)點可以自動進行數(shù)據(jù)同步。某一個數(shù)據(jù)節(jié)點關閉后,不影響SQL節(jié)點的使用。某些數(shù)據(jù)節(jié)點出錯后,可以進行恢復。需要注意的是,SQL節(jié)點建立數(shù)據(jù)庫時,必須選擇“ndbcluster”數(shù)據(jù)庫引擎。如果不選擇“ndbcluster”引擎,建立的數(shù)據(jù)庫將不會進入MySQL群集系統(tǒng)中,但是可以獨立使用。

    另外,每個 NDB 表必須有一個主鍵。如果在創(chuàng)建表時未定義主鍵,NDB Cluster 存儲引擎將自動生成隱含的主鍵。該隱含的鍵也將占用空間,就像任何其他的表索引一樣。由于沒有足夠的內存來容納這些自動創(chuàng)建的鍵,出現(xiàn)問題并不罕見。

    測試實例:

    在某臺 SQL 節(jié)點上登錄 mysql,建表 city,并插入數(shù)據(jù):

復制代碼 代碼如下:

    C:\>mysql -u root test
    mysql>create table city (nId mediumint unsigned not null auto_increment primary key, sName varchar(20) not null)
          engine = ndbcluster default charset utf8;
    mysql>insert city values(1, ‘city-1′);
    mysql>insert city values(1, ‘city-2′);

    在另一臺 SQL 節(jié)點上登錄 mysql,從表 city 里得到記錄:
    C:\>mysql -u root test
    mysql>select * from city;

    在群集系統(tǒng)正常工作的情況下,應當能取到先前插入的所有記錄。

    另外的測試(單點故障測試):

    1,還可以人為停止某一個數(shù)據(jù)節(jié)點(Ctrl+C中斷DOS命令ndbd.exe,停止該服務),看看所有的 SQL 節(jié)點是不是能正常工作。
    2,在某一個數(shù)據(jù)節(jié)點停止后,進行數(shù)據(jù)庫操作。然后重新開啟該數(shù)據(jù)節(jié)點,看看群集中的所有的 SQL 節(jié)點能不能得到完整的數(shù)據(jù)。

八、常見問題與擴展

    配置和管理 MySQL 群集系統(tǒng)并不是一件簡單的事情。由于不合理的配置導致的系統(tǒng)問題非常常見,比如網絡故障、內存限制等,會導致仲裁體統(tǒng)強制關閉數(shù)據(jù)節(jié)點。

    如果機器上原來已經安裝過 MySQL Server,則一定要卸載干凈原來的數(shù)據(jù)庫系統(tǒng)。注意群集系統(tǒng)中的 mysql.exe 程序與非群集系統(tǒng)的管理 Client 是不同的。

    還可以與負載均衡系統(tǒng)結合,以提供更強的可用性和數(shù)據(jù)存取效率。

    可能由于未知的Bug或別的原因,導致群集系統(tǒng)出現(xiàn)一些意外故障。所以建議選取版本時,選擇已經得到大多數(shù)人認可的版本,不一定選取最新的版本,最新的版本往往不太穩(wěn)定。當然也不要選用太陳舊的功能有限制的版本。

相關文章

  • MySQL中幾種插入和批量語句實例詳解

    MySQL中幾種插入和批量語句實例詳解

    這篇文章主要給大家介紹了關于MySQL中幾種插入和批量語句的相關資料,在mysql數(shù)據(jù)庫中,實現(xiàn)批量插入數(shù)據(jù)與批量更新數(shù)據(jù)的例子,即批量insert、update的方法,需要的朋友可以參考下
    2021-09-09
  • MySQL8中隱藏索引與降序索引的新特性

    MySQL8中隱藏索引與降序索引的新特性

    本文主要介紹了MySQL8中隱藏索引與降序索引的新特性,隱藏索引和降序索引為數(shù)據(jù)庫的性能優(yōu)化和靈活性提供了有力支持,感興趣的可以了解一下
    2024-08-08
  • MySQL5.6.17數(shù)據(jù)庫安裝 如何配置My.ini文件

    MySQL5.6.17數(shù)據(jù)庫安裝 如何配置My.ini文件

    這篇文章主要為大家詳細介紹了MySQL數(shù)據(jù)庫安裝教程,教大家如何配置My.ini文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • mysql8.0.11 winx64安裝配置教程

    mysql8.0.11 winx64安裝配置教程

    這篇文章主要為大家詳細介紹了mysql8.0.11 winx64安裝配置教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • mysql?體系結構和存儲引擎介紹

    mysql?體系結構和存儲引擎介紹

    這篇文章主要介紹了mysql?體系結構和存儲引擎,通過mysql數(shù)據(jù)庫常見的數(shù)據(jù)庫引擎展開各個引擎之間的特性和區(qū)別。下文更多相關資料介紹感興趣的小伙伴可以參考一下
    2022-05-05
  • Javaweb之MySQL中的多表查詢語句

    Javaweb之MySQL中的多表查詢語句

    初學者比較容易理解的多表查詢,就是直接查詢兩張表的字段,當然,星號可以改為對應的字段名,這篇文章主要介紹了Javaweb?MySQL中的多表查詢,需要的朋友可以參考下
    2023-07-07
  • MySQL中count()和count(1)有何區(qū)別以及哪個性能最好詳解

    MySQL中count()和count(1)有何區(qū)別以及哪個性能最好詳解

    count是一個函數(shù),用來統(tǒng)計數(shù)據(jù),但是count函數(shù)傳入的參數(shù)有很多種,比如count(1)、count(*)、count(字段)等,下面這篇文章主要給大家介紹了關于MySQL中count()和count(1)有何區(qū)別以及哪個性能最好的相關資料,需要的朋友可以參考下
    2022-08-08
  • 詳解MySQL拼接函數(shù)CONCAT的使用心得

    詳解MySQL拼接函數(shù)CONCAT的使用心得

    這篇文章主要介紹了詳解MySQL拼接函數(shù)CONCAT的使用心得,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Mysql數(shù)據(jù)庫5.7升級到8.4的實現(xiàn)

    Mysql數(shù)據(jù)庫5.7升級到8.4的實現(xiàn)

    很多情況需要升級MySQL的數(shù)據(jù)庫版本,本文主要介紹了Mysql數(shù)據(jù)庫5.7升級到8.4的實現(xiàn),文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • MySQL UNION操作符基礎知識點

    MySQL UNION操作符基礎知識點

    在本文里小編給大家整理了關于MySQL UNION操作符的相關知識點內容,需要的朋友們跟著學習下。
    2019-02-02

最新評論

浦东新区| 邵武市| 广水市| 宝应县| 竹溪县| 武冈市| 婺源县| 南召县| 响水县| 富锦市| 承德县| 靖州| 临夏市| 南靖县| 淮南市| 乌拉特前旗| 汕头市| 泗阳县| 车险| 志丹县| 紫金县| 双城市| 华阴市| 信宜市| 兴隆县| 新乡市| 木里| 社旗县| 泾阳县| 乐昌市| 乐东| 宿松县| 哈密市| 寿宁县| 马关县| 嘉荫县| 英山县| 万山特区| 湖口县| 洪湖市| 大渡口区|