天天看點

mysql cluster7.5叢集安裝指南

标簽: mysql cluster7.5

關于mysqlcluster的安裝,網上文章良莠不濟,大多數都是錯誤的過時的.

由于項目需要搭建一個mysql叢集,最後標明了 mysql cluster7.5

期間踩了各種坑,最後才在mysqlcluster的官網上熟讀了官網文檔後才搭建完成,投入使用.

最後總結出此文幫助後來者少踩坑.另外學習一門新知識最好去它的官網,少踩坑.

參考資料: mysqlcluster官網

​​​mysql cluster搭建​​

概念

 MySQL Cluster是基于無共享的可由多台伺服器組成的、同時對外提供資料管理服務的分布式叢集系統。通過合理的配置,可以将服務請求在多台實體機上分發實作負載均衡 ;同時内部實作了備援機制,在部分伺服器當機的情況下,整個叢集對外提供的服務不受影響,進而能達到99.999%以上的高可用性。

 

  MySQL Cluster設計之初出于性能考慮,将資料完全存放在記憶體當中,是以MySQL Cluster可以當作一種分布式的記憶體資料庫。随着MySQL Cluster技術的成熟和需求的增加,目前MySQL Cluster已支援磁盤存儲,可以指定資料表存儲在磁盤上,減少MySQL Cluster叢集對記憶體的需求,進而實作存儲更大的容量。

mysql cluster7.5叢集安裝指南

MySQL從結構看,由3類節點(計算機或程序)組成,分别是:

  • 管理(MGM)節點:這類節點的作用是管理MySQL Cluster内的其他節點,如提供配置資料、啟動并停止節點、運作備份等。由于這類節點負責管理其他節點的配置,應在啟動其他節點之前首先啟動這類節點。MGM節點是用指令“ndb_mgmd”啟動的。

    配置檔案為: config.ini

  • 資料節點:這類節點用于儲存 Cluster的資料。資料節點的數目與副本的數目相關,是片段的倍數。例如,對于兩個副本,每個副本有兩個片段,那麼就有4個資料節點。不過沒有必要設定多個副本。資料節點是用指令“ndbd”啟動的。

    配置檔案為:my.ini

  • SQL節點:這是用來通路 Cluster資料的節點。對于MySQL Cluster,用戶端節點是使用NDB Cluster存儲引擎的傳統MySQL伺服器。通常,SQL節點是使用指令“mysqld –ndbcluster”啟動的,或将“ndbcluster”添加到“my.cnf”後使用“mysqld”啟動。

    配置檔案為:my.ini

“MySQL實驗室”推薦使用MySQL Cluster 7.x版本。MySQL Cluster 7.x擁有線上增加節點、多線程等新特性。

工作原理

管理伺服器(MGM節點)負責管理 Cluster配置檔案和 Cluster日志。 Cluster中的每個節點從管理伺服器檢索配置資料,并請求确定管理伺服器所在位置的方式。當資料節點内出現新的事件時,節點将關于這類事件的資訊傳輸到管理伺服器,然後,将這類資訊寫入 Cluster日志。

​​安裝​​

節點說明:

mysql cluster7.5叢集安裝指南

表21.4示例群集中節點的網絡位址

節點 IP位址

管理節點(mgmd) 198.51.100.10

SQL節點(mysqld) 198.51.100.20

資料節點“A”(ndbd) 198.51.100.30

資料節點“B”(ndbd) 198.51.100.40

每個NDB群集主機必須安裝正确的可執行程式。

  • 運作SQL節點的主機必須在其上安裝MySQL伺服器二進制檔案(mysqld)。
  • 管理節點需要管理伺服器守護程序(ndb_mgmd);
  • 資料節點需要資料節點守護程序(ndbd或ndbmtd)。

沒有必要在管理節點主機和資料節點主機上安裝MySQL伺服器二進制檔案。建議您還在管理伺服器主機上安裝管理用戶端(ndb_mgm)。

1.在Linux上安裝NDB叢集二進制檔案(tar.gz檔案)

在Linux上安裝NDB叢集可以使用Oracle的預編譯二進制檔案(作為.tar.gz壓縮檔案下載下傳),RPM軟體包(也可從Oracle獲得)或源代碼完成

參考: ​​在Linux上安裝NDB群集二進制版本​​(用google chrome 打開翻譯該頁面)

按照上面安裝完成後,接下來開始下一步:配置

2.​​NDB叢集的初始配置​​

  • 每個資料節點或SQL節點都需要一個my.cnf檔案,該 檔案提供兩條資訊:一個連接配接字元串,告訴節點在哪裡找到管理節點,另一條是告訴該主機上的MySQL伺服器(托管資料節點的機器)以啟用該 NDBCLUSTER存儲引擎。
  • 管理節點需要一個config.ini 檔案,告訴它要維護多少副本,為每個資料節點上的資料和索引配置設定多少記憶體,在哪裡找到資料節點,在每個資料節點上将資料儲存到磁盤的位置以及在哪裡查找任何SQL節點。

配置資料節點和SQL節點。

my.cnf資料節點所需 的檔案非常簡單。配置檔案應該位于/etc目錄中,并且可以使用任何文本編輯器進行編輯。(如果該檔案不存在,則建立該檔案。)

對于我們示例設定中的每個資料節點和SQL節點, my.cnf應該如下所示:

[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.10      

輸入上述資訊後,儲存該檔案并退出文本編輯器。為托管資料節點“ A ”,資料節點“ B ”和SQL節點的計算機執行此操作

配置管理節點。

配置管理節點的第一步是建立可以找到配置檔案的目錄,然後建立檔案本身。

cd /var/lib/mysql-cluster
shell> vi config.ini

 ```
 對于我們的代表設定,該config.ini 檔案應該如下所示:

 ```bash

 [ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber 
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.5.

[ndb_mgmd]
# Management process options:
HostName=198.51.100.10          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]
# Options for data node "A":
                                # (one [ndbd] section per data node)
HostName=198.51.100.30          # Hostname or IP address
NodeId=2                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node "B":
HostName=198.51.100.40          # Hostname or IP address
NodeId=3                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
HostName=198.51.100.20          # Hostname or IP address
                                # (additional mysqld connections can be
                                # specified for this node for various
                                # purposes such as running ndb_restore)      

在建立了所有配置檔案并指定了這些最小選項後,即可開始啟動群集并驗證所有程序正在運作。

3 ​​NDB叢集的初始啟動​​

配置完成後啟動叢集并不是非常困難。每個群集節點程序必須分别啟動,并在其所在的主機上啟動。應首先啟動管理節點,然後啟動資料節點,最後啟動任何SQL節點

在管理主機上

從系統shell發出以下指令以啟動管理節點程序:

shell> ndb_mgmd -f      

首次啟動時, 必須使用 ​

​-f​

​ 選項告知ndb_mgmd在哪裡查找其配置檔案 。 -f–config-file

在每個資料節點主機上

運作以下指令啟動 ndbd程序:

shell> ndbd      

在每個sql節點上啟動mysql

shell> service mysql start      

或者

shell> mysqld_safe &      

注意此步驟不需要單獨安裝 mysql,如果你啟動不了,檢視是否之前在第一步安裝時已經把mysql.server 加到服務裡面

最後

如果一切順利,并且叢集已正确設定,則叢集現在應該可以運作。您可以通過調用ndb_mgm管理節點用戶端來進行測試。輸出結果應該如下所示,盡管您可能會在輸出中看到一些細微差異,具體取決于您使用的MySQL的确切版本:

shell> ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @198.51.100.30  (Version: 5.7.21-ndb-7.5.10, Nodegroup: 0, *)
id=3    @198.51.100.40  (Version: 5.7.21-ndb-7.5.10, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.10  (Version: 5.7.21-ndb-7.5.10)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.20  (Version: 5.7.21-ndb-7.5.10)      

此處引用SQL節點 [mysqld(API)],它反映了mysqld程序充當NDB叢集API節點的事實 。

您現在應該準備好使用NDB群集中的資料庫,表格和資料.

參考​​帶表格和資料的NDB群集示例​​