MySQL集羣架構以及本人配置過程中出現的問題及解決辦法

首先說下MySQL的優缺點

優點        

解決單點故障

自動實現數據冗餘


缺點就是維護起來太麻煩。



集羣的條件就是所有的機器上都要安裝MySQL的集羣軟件,我安裝的是MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar的rpm包,解包之後所有的軟件都要安裝。不是源碼包安裝。如果系統裏面安裝了mysql-server等數據庫服務軟件的要自行卸載掉即可。


MySQL集羣中有三種角色,下面是三種角色以及其的作用

角色

數據節點:ndbd節點 存儲在表裏的數據(表中的記錄)

SQL節點:不存儲數據,供用戶訪問和執行SQL操作

管理節點:用來管理集羣,在主機本機啓動管理進程的時候,指定使用的配置文件



接下來就是重點了。集羣的配置文件。這個配置文件要自己手動建立的

首先是管理節點的主配置文件,這個主配置文件首先要以.ini結尾的文件,我存放的目錄放在/etc/mysql-cluster.ini之中,其就是我的管理節點的配置文件。

格式:

   標籤:下面[]中括號內的就是標籤。

[ndbd default] 指定數據節點的公共配置,對所有節點都適用的。

[ndb_mgmd] 指定管理節點的配置

[ndbd] 指定數據節點的配置

[mysqld] 指定SQL節點的配置

注意:此時你有幾個節點就要寫幾次標籤,也就是說如果你有2臺機器是做SQL節點的,就必須定義2個[mysqld]標籤。數據節點亦是如此。下面是我自己的配置。


[ndbd default]

NoOfReplicas=2  一份數據備份幾份,一般情況下和數據節點個數相同

DataMemory=80M  用多來物理內存來保存執行的SQL語句和執行結果

IndexMemory=18M 用多來物理內存來保存執行的索引字段語句和執行結果


[ndb_mgmd]

nodeid=1    (同一個網絡內id號不能重複,必須唯一。一般情況下可以設置成本機ip地址的主機位,但是在RedHat6中,好像nodeid不能超過50的。)

hostname=192.168.1.1    管理主機的ip地址

datadir=/usr/local/cluster/ndbddata管理集羣時收集的集羣信息的存放路徑

(系統內必須存在此目錄,沒有手動建立,權限沒關係)

[ndbd]

nodeid=30

Hostname=192.168.1.30

Datadir=/usr/local/cluster/ndbddata SQL節點存儲數據的路徑

(系統內必須存在此目錄,沒有手動建立,權限沒關係)

[ndbd]

nodeid=40

Hostname=192.168.1.40

Datadir=/usr/local/cluster/ndbddata

[mysqld]    不用指定數據存儲的位置,因爲其只提供mysql服務

nodeId=10

Hostname=192.168.1.10

[mysqld]

nodeId=20

Hostname=192.168.1.20


注:千萬不要忘記上面寫的目錄,等下用到的。我們把主配置文件寫好了,然後就去創建我們的datadir吧。千萬不要忘記。



配置數據節點:

手寫配置文件(所有的數據節點都需要配置,可以複製一份到其他數據節點上去然後修改即可)

其配置文件和mysql-server的配置文件同名,即my.cnf,注意把mysql-server的配置文件mv走或者改名

[mysqld]

datadir=/usr/local/cluster/ndbdata //此目錄必須和管理配置文件中指定的目錄一致,沒有手動建立

ndb-connectstring=192.168.1.1    指向由誰管理我的主機的ip地址

ndbcluster  運行的是什麼存儲引擎

[mysql_cluster]指定的是誰來管理集羣

ndb-connectstring=192.168.1.1 管理集羣的主機



配置sql節點:

編寫配置文件

vim  /etc/my.cnf 也是需要手動建立的配置文件

[mysqld]

ndbcluster  

default-storage-engin=ndbcluster 指定使用的數據庫存儲引擎

[mysql_cluster]指定的是誰來管理集羣

ndb-connectstring=192.168.1.1



到此,所有集羣的計算機配置完畢,接下來我們就可以啓動服務了。


啓動集羣的順序:

   先啓動管理節點的進程

   ndb_mgmd -f /管理主配置文件的路徑  ,其使用的是本機的1186端口,在命令行下進行輸入


   進入集羣管理

   ndb_mgm    在命令行下進行輸入

   ndb_mgm>show查看信息


啓動數據節點的數據進程

   ndbd


   啓動sql節點的數據庫服務

   service mysql start和原來啓動數據庫服務器一樣



安全關閉集羣服務

 要想關閉 Cluster,可在MGM節點所在的機器上,在Shell中簡單地輸入下述命令:

  [ndb_mgmd]root# /usr/local/mysql/ndb_mgm -e shutdown

  運行以下命令關閉SQL節點的mysqld服務:

  [ndb_mgmd]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown

   停止ndbd的時候通過kill -9 進程號來停止




總結:在搭建的過程中,出現了很多的小問題,只要大家細心下就可以避免,比方說我在配置的時候遇到的問題。


第一個問題:管理節點的服務啓動不了

ndb_mgmd -f /etc/mysql-cluster.ini

[root@localhost data]# ndb_mgmd -f /etc/mysql-cluster.ini

MySQL Cluster Management Server mysql-5.6.17 ndb-7.3.5

2014-05-13 03:23:47 [MgmtSrvr] ERROR    -- Directory '/usr/local/cluster/ndbdata' specified with DataDir in configuration does not exist.

剛開始我以爲ndbdata是個文件,,目錄只建到cluster,所有就報錯,看了配置文件沒有問題,後來找就發現了ndbdata也是一個目錄。這是一點需要注意的,而且此目錄要和主配置文件中定義的datadir一致。


第二個問題:ndbd啓動不了,報錯的文件就是說和管理節點聯繫不上,後來去看ndbd節點上的配置文件,發現指定誰管理我的集羣的時候少了一個cluster,即正確的是[mysql_cluster]而我寫成了[mysqld],就啓動不了。改正確即可



配置集羣服務器不容易出錯,只要自己夠細心,完全能夠一次性配置成功。之後就是調優的問題了,各位可以依據各自的環境進行調優。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章