熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

RHEL下架設MYSQL集群

2013-11-23 21:01:58  來源: MySQL 

  介紹

  這篇文檔旨在介紹如何安裝配置基於台服務器的MySQL集群並且實現任意一台服務器出現問題或宕機時MySQL依然能夠繼續運行

  雖然這是基於台服務器的MySQL集群但也必須有額外的第三台服務器作為管理節點但這台服務器可以在集群啟動完成後關閉同時需要注意的是並不推薦在集群啟動完成後關閉作為管理節點的服務器盡管理論上可以建立基於只有台服務器的MySQL集群但是這樣的架構一旦一台服務器宕機之後集群就無法繼續正常工作了這樣也就失去了集群的意義了出於這個原因就需要有第三台服務器作為管理節點運行

  另外可能很多朋友都沒有台服務器的實際環境可以考慮在VMWare或其他虛擬機中進行實驗

  下面假設這台服務的情況

  Server

  Server

  Server

  Servers和Server作為實際配置MySQL集群的服務器對於作為管理節點的Server則要求較低只需對Server的系統進行很小的調整並且無需安裝MySQLServer可以使用一台配置較低的計算機並且可以在Server同時運行其他服務

  在Server和Server上安裝MySQL

  從上下載mysqlmaxlinuxitargz

  注意必須是max版本的MySQLStandard版本不支持集群部署!

  以下步驟需要在Server和Server上各做一次

  # mv mysqlmaxlinuxitargz /usr/local/

  # cd /usr/local/

  # groupadd mysql

  # useradd g mysql mysql

  # tar zxvf mysqlmaxlinuxitargz

  # rm f mysqlmaxlinuxitargz

  # mv mysqlmaxlinuxi mysql

  # cd mysql

  # scripts/mysql_install_db ——user=mysql

  # chown R root

  # chown R mysql data

  # chgrp R mysql

  # cp supportfiles/mysqlserver /etc/rcd/initd/mysqld

  # chmod +x /etc/rcd/initd/mysqld

  # cp supportfiles/f /etc/f

  # chkconfig ——add mysqld

  此時不要啟動MySQL!

  安裝並配置管理節點服務器(Server

  作為管理節點服務器Server需要ndb_mgm和ndb_mgmd兩個文件從上下載mysqlmaxlinuxitargz

  # mkdir /usr/src/mysqlmgm

  # cd /usr/src/mysqlmgm

  # tar zxvf mysqlmaxlinuxitargz

  # rm mysqlmaxlinuxitargz

  # cd mysqlmaxlinuxi

  # mv bin/ndb_mgm

  # mv bin/ndb_mgmd

  # chmod +x ndb_mg*

  # mv ndb_mg* /usr/bin/

  # cd

  # rm rf /usr/src/mysqlmgm

  現在開始為這台管理節點服務器建立配置文件

  # mkdir /var/lib/mysqlcluster

  # cd /var/lib/mysqlcluster

  # vi configini

  在configini中添加如下內容

  [NDBD DEFAULT]

  NoOfReplicas=

  [MYSQLD DEFAULT]

  [NDB_MGMD DEFAULT]

  [TCP DEFAULT]

  # Managment Server

  [NDB_MGMD] HostName= #管理節點服務器Server的IP地址

  # Storage Engines

  [NDBD]

  HostName= #MySQL集群Server的IP地址

  DataDir= /var/lib/mysqlcluster

  [NDBD]

  HostName= #MySQL集群Server的IP地址

  DataDir=/var/lib/mysqlcluster

  # 以下個[MYSQLD]可以填寫Server和Server的主機名

  # 但為了能夠更快的更換集群中的服務器推薦留空否則更換服務器後必須對這個配置進行更改

  [MYSQLD]

  保存退出後啟動管理節點服務器Server

  # ndb_mgmd

  啟動管理節點後應該注意這只是管理節點服務並不是管理終端因而你看不到任何關於啟動後的輸出信息

  配置集群服務器並啟動MySQL

  在Server和Server中都需要進行如下改動

  # vi /etc/f

  [mysqld]

  ndbcluster

  ndbconnectstring= #Server的IP地址

  [mysql_cluster]

  ndbconnectstring= #Server的IP地址

  保存退出後建立數據目錄並啟動MySQL

  # mkdir /var/lib/mysqlcluster

  # cd /var/lib/mysqlcluster

  # /usr/local/mysql/bin/ndbd ——initial f /var/lib/mysqlcluster/configini

  # /etc/rcd/initd/mysqld start

  可以把/usr/local/mysql/bin/ndbd加到/etc/rclocal中實現開機啟動

  注意只有在第一次啟動ndbd時或者對Server的configini進行改動後才需要使用——initial參數!

  檢查工作狀態

  回到管理節點服務器Server並啟動管理終端

  # /usr/bin/ndb_mgm

  鍵入show命令查看當前工作狀態(下面是一個狀態輸出示例)

  [root@mysql root]# /usr/bin/ndb_mgm

  —— NDB Cluster —— Management Client ——

  ndb_mgm> show

  Connected to Management Server at localhost

  Cluster Configuration

  

  [ndbd(NDB)] node(s)

  id= @ (Version Nodegroup Master)

  id= @ (Version Nodegroup

  [ndb_mgmd(MGM)] node(s)

  id= @ (Version

  [mysqld(API)] node(s)

  id= (Version

  id= (Version

  ndb_mgm>

  如果上面沒有問題現在開始測試MySQL注意這篇文檔對於MySQL並沒有設置root密碼推薦你自己設置Server和Server的MySQL root密碼

  在Server

  # /usr/local/mysql/bin/mysql u root p

  > use test;
    > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
    > INSERT INTO ctest () VALUES ();
    > SELECT * FROM ctest;

  應該可以看到 row returned信息(返回數值

  如果上述正常則換到Server上重復上面的測試觀察效果如果成功則在Server中執行INSERT再換回到Server觀察是否工作正常

  如果都沒有問題那麼恭喜成功!

  破壞性測試

  將Server或Server的網線拔掉觀察另外一台集群服務器工作是否正常(可以使用SELECT查詢測試)測試完畢後重新插入網線即可

  如果你接觸不到物理服務器也就是說不能拔掉網線那也可以這樣測試在Server或Server# ps aux | grep ndbd將會看到所有ndbd進程信息

  root ? S ndbd

  root ? R ndbd

  root pts/ S grep ndbd

  然後殺掉一個ndbd進程以達到破壞MySQL集群服務器的目的

  # kill

  之後在另一台集群服務器上使用SELECT查詢測試並且在管理節點服務器的管理終端中執行show命令會看到被破壞的那台服務器的狀態

  測試完成後只需要重新啟動被破壞服務器的ndbd進程即可

  # ndbd

  注意!前面說過了此時是不用加——inital參數的!

  至此MySQL集群就配置完成了!


From:http://tw.wingwit.com/Article/program/MySQL/201311/29469.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.