MySQLCluster部署配置文檔

MySQLCluster部署配置文檔node

本文借鑑了網上其餘人的文章,因爲你們關於mysql cluster的文章基本都差了很少,這裏我也就不寫從哪裏引用的了。mysql

環境sql

OS版本:CentOS 6.3 Finalshell

MySQL 版本:MySQL Server 5.1.73-3數據庫

MySQL Cluster版本(應採用NDB7.x版本,別的版本不支持不重啓動態就能增長數據節點):MySQL Cluster 7.3.4-1安全


1、MySQLCluster 概述服務器

核心的基本概念網絡

1.1設計目標負載均衡

一、沒有單點失敗;tcp

二、部署「內存中」的數據庫;

三、不能共享任何東西,如網絡文件系統或SAN等。

將標準的MySQL Server和NDB引擎集成在一塊兒。MySQL Cluster等於標準的MySQL Server+NDB。數據存在數據節點,全部MySQL Cluster都能訪問。存儲在數據節點裏面的數據能夠鏡像。MySQL Cluster裏面的節點指一個進程。不是指一臺機器,一臺機器上能夠裝多個節點。


1.2 三種節點:

管理節點(MGM node):管理其餘節點的節點。必須先於其餘節點啓動。ndb_mgmd;

數據節點:存儲數據的節點。多個複本保證高可用性。Ndbd;

SQL節點:訪問數據的節點。是一個標準的MySQL Server,不過帶了支持NDB引擎的選項。mysqld帶--ndbcluster和--ndb-connectstring選項。

其實是一個API節點,就是用NDB的API實現了對數據的訪問。

要實現冗餘,必須是多個數據節點和多個SQL節點。也高度推薦多個管理節點。MySQL Cluster認爲數據節點在處理器、內存空間、帶寬上應是同質的。另外,全部Cluster裏面的配置放在一個配置文件裏面以方便單點配置。

管理節點管理這個配置和cluster的日誌。每一個節點都從管理節點處得到這個配置。當數據節點發生某個事件時,它將信息傳給管理節點,管理節點寫日誌。
能夠有兩種類型的Client:

標準的MySQL Client: Connector/J5.0.6及以後的版本能夠用jdbc:mysql:loadbalance://URLs來實現透明的負載均衡。

管理Client:鏈接管理節點,下發管理指令如啓動關閉節點等。這樣的client好比ndb_mgm是用MGMAPI(C語言API)實現的。


*下文中若是單獨提到節點,都是指數據節點。


1.3節點、節點組、複本、分區

節點組內的一個數據節點存儲了分區的複本,一個分區指派給一個節點組。每一個數據節點應該位於單個機器上。節點組包含一個或多個節點,能夠存儲多個分區。一個cluster裏面的節點組數不是配置的,是複本個數(可配置NoOfReplicas)和數據節點個數的函數。

節點組數=總的節點數/複本個數

分區是指cluster存儲的一部分數據。數據節點越多,分區就越多。一般狀況下,MySQL Cluster自動將NDB表分區。每個節點組裏面,分區的複本數=組內節點數。

每一個節點組內至少須要1臺機器是活的,才能保證整個系統可用。
若是是2臺機器,複本個數配置爲2,那麼就只有1個節點組,包含這2臺機器,其中1個壞了,另外一臺仍可用。


2MySQL Cluster 多臺機器How-To

2、規劃

機器儘可能使用IP,不須要沒必要要的服務,只要網絡通就能夠了。至少百兆網絡,推薦千兆網絡。儘可能在子網裏面運行。在SQL節點上,要裝MySQL Server。管理節點和數據節點能夠不用裝MySQL Server。能夠採用RPM包安裝,對於MySQL Cluster,須要以下3個rpm包:

ServerRPM: 安裝MySQL Server,也能夠再裝MySQL Client RPM;

ClusterStorage Engine:帶有ndbd,裝在數據節點上;

ClusterStorage Engine Management RPM:帶有ndb_mgmd,裝在管理節點上;

另外,最好再裝NDB Cluster-Storage engine basic tools RPM:包含ndb_mgm;

NDBCluster-Storage engine extra tools RPM:包含一些測試和監控工具。注意:全部RPM的cluster版本號應該一致。


3、安裝

安裝數據節點前要作的事情(假設是YUM安裝版本):

shell>group add mysql

shell>useradd -g mysql mysql

shell> yum install mysql*

shell> cd /root/MySQL_Cluster

shell> yum install MySQL-Cluster-*

安裝後,在/usr/sbin目錄下會產生ndbd文件。


4、配置

每一個節點須要1個配置文件。其中每一個數據節點或SQL節點須要1個my.cnf文件。裏面包含2類信息:

1類信息定義如何去找管理節點。

1類信息定義啓用NDB引擎

管理節點須要1個config.ini文件,定義複本個數、爲每一個數據節點開多少內存、哪裏去找數據節點、數據存在數據節點的什麼地方、哪裏去找SQL節點。

配置數據節點和SQL節點:my.cnf文件應位於/etc目錄,文件內容很是簡單:

#mysqld進程的選項:

[mysqld]

ndbcluster                     # run NDB storage engine

ndb-connectstring=172.16.7.99 # 本地管理服務器的IP地址


#ndbd進程的選項

[mysql_cluster]

ndb-connectstring=172.16.7.99 #本地管理服務器的IP地址

一旦按照上述配置啓動mysqld,將不能進行create table或altert table操做,必須啓動cluster以後才能進行。

配置管理節點:建一個目錄放config.ini文件。

shell>cd /home/mysql

shell>vi config.ini

#全部數據節點上影響ndbd進程的選項:

[ndbddefault]

NoOfReplicas=2   # 副本的個數

DataMemory=80M   # 分配多少內存給數據存儲

IndexMemory=18M  # 分配多少內存給目錄存儲

                # 這裏的數據內存和目錄內存的配置咱們可使用

# 默認數值,自從「world」數據庫僅僅佔用了500

# KB的內存以後,這些默認配置足夠進行集羣的安裝。


#TCP/IP 選項:

[tcpdefault]

portnumber=2202  # 默認配置;默認配置;除非你要是用其它的端口

                    # 而且這個端口在集羣中全部其它的主機上都沒有

                    # 被佔用。

                #注意: It is recommended that youdo not specify the p

Ort

                # number at all and allow the default value to be used instead


#Management process options:

[ndb_mgmd]

hostname=172.16.7.99          # 管理節點的IP或主機名

datadir=/home/mysql/mysql-cluster # 管理節點存放日誌的目錄


#Options for data node "A":

[ndbd]

                              # (one [ndbd] section per data node)

hostname=172.16.7.94          # IP或主機名

datadir=/usr/local/mysql/data  #數據節點存放數據的目錄


#Options for data node "B":

#[ndbd]

#hostname=192.168.0.40          # Hostname or IP address

#datadir=/usr/local/mysql/data  # Directory for this data node's data files


#SQL node options:

[mysqld]

hostname=172.16.7.96          # Hostname or IP address

                              # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)


[mysqld]

hostname=172.16.7.98          # Hostname or IP address

                              # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)


缺省的cluster管理節點端口是1186,缺省的數據節點的端口是2202。


5、啓動

先啓動管理節點、再啓動數據節點、最後啓動SQL節點。

啓動管理節點:

shell>ndb_mgmd -f /home/mysql/mysql-cluster/config.ini

啓動數據節點:

shell>ndbd

啓動SQL節點:

shell>service mysqld start

或者

shell>/etc/init.d/mysqld start

  查看啓動狀態

shell>ndb_mgm

--NDB Cluster -- Management Client –

ndb_mgm>SHOW

......


倒數據時要轉換爲NDB引擎,應用程序訪問的應該是SQL節點。


6、關閉和重啓

關閉Cluster在管理節點上執行:

shell>ndb_mgm -e shutdown

將安全的關閉管理節點和數據節點。SQL節點能夠用mysqladmin shutdown或別的方式關閉。

重啓Cluster在管理節點上執行:

shell>ndb_mgmd -f /home/mysql/mysql-cluster/config.ini

在數據節點上執行:

shell>ndbd

在SQL節點上執行:

shell>mysqld_safe &

相關文章
相關標籤/搜索