MySQL Cluster MySQL叢集

來源:互聯網
上載者:User

標籤:host   32位   install   aries   glib   init.d   啟動順序   sock   value   

原文:http://lizhenliang.blog.51cto.com/7876557/1290451

 

Linux最新版本7.3.2

 

檔案 大小 md5
mysqlcluster-7.3.2-linux-x32.tar.gz 431.0MB 03093541b6416fc93935750d614d875b
mysqlcluster-7.3.2-linux-x64.tar.gz 441.8MB 330c71a87fbf8f0468ec9c5e0ad6e794

 官方:http://dev.mysql.com/downloads/cluster/

Window最新版本7.3.2
檔案 大小 md5
mysqlcluster-7.3.2-windows-x32.msi 100.2MB 9d25735d7e8af1a2e805f9a1fecc3a1f
mysqlcluster-7.3.2-windows-x64.msi 95.5MB 6fe30e2045f074f471761cb17f0c3d1c
基本概念:

 

“NDB” 是一種“記憶體中”的儲存引擎,也是事務型儲存引擎,具備ACID屬性。

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

資料節點:用於儲存 Cluster的資料。資料節點的數目與副本的數目相關,是片段的倍數。資料節點是用命令“ndbd”啟動的。

SQL節點:用來訪問 Cluster資料的節點。也就是Mysql服務,可以使用service mysqld start啟動。

 

管理伺服器(MGM節點)負責管理 Cluster設定檔和 Cluster日誌。 Cluster中的每個節點從管理伺服器檢索配置資料,並請求確定管理伺服器所在位置的方式。當資料節點內出現新的事件時,節點將關於這類事件的資訊傳輸到管理伺服器,然後,將這類資訊寫入 Cluster日誌。

叢集配置概述:

安裝版本:mysql cluster 7.3.2

作業系統 :centos6.3(X64)

軟體名稱 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)

管理節點IP:192.168.0.202

資料節點-SQL節點IP:192.168.0.203

資料節點-SQL節點IP:192.168.0.204

安裝依賴包:yum install -y glibc perl libaio-devel

x32位系統要安裝相容庫組:yum groupinstall “Compatibility libraries”

一、管理節點安裝配置

1、安裝mysql-cluster

 

 

groupadd mysqluseradd -g mysql -s /sbin/nologin mysqltar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gzmv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-clusterchown -R root.mysql /usr/local/mysql/chown -R mysql.mysql /usr/local/mysql/data//usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql &  #初始化資料庫cp -rf /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/ #複製ndb節點管理命令到本地,方便使用

 

 

2、修改mysql主設定檔

 

 

vi /etc/my.cnf[MYSQLD] user = mysql socket = /tmp/mysql.sock basedir = /usr/local/mysql #安裝目錄 datadir = /usr/local/mysql/data #資料庫存放目錄 character-set-server=UTF8 ndbcluster #運行NDB儲存引擎 ndb-connectstring=192.168.0.202 lower_case_table_names=1 #表名是否區分大小寫1為不區分,不然linux下表名是區分大小寫[MYSQL_CLUSTER]ndb-connectstring=192.168.0.202 #Mysql Cluster管理節點IP

 

 

3、建立mysql叢集設定檔

mkdir /var/lib/mysql-clustervi /var/lib/mysql-cluster/config.ini[ndbd default]NoOfReplicas=2 #定義在Cluster環境中相同資料的份數,最大為4DataMemory=256M #分配的資料記憶體大小,根據本機伺服器記憶體適量來分配IndexMemory=256M #設定用於存放索引(非主鍵)資料的記憶體段大小#一個NDB節點能存放的資料量是會受到DataMemory和IndexMemory兩個參數設定的約束,兩者任何一個達到限制數量後,都無法再增加能儲存的資料量。如果繼續存入資料系統會報錯“table is full”。[ndb_mgmd]nodeid=1hostname=192.168.0.202datadir=/var/lib/mysql-cluster/[ndbd]nodeid=2hostname=192.168.0.203datadir=/usr/local/mysql/data[ndbd]nodeid=3hostname=192.168.0.204datadir=/usr/local/mysql/data[mysqld]nodeid=4hostname=192.168.0.203[mysqld]nodeid=5hostname=192.168.0.204儲存退出!chown mysql.mysql /var/lib/mysql-cluster/config.ini

 

 

二、兩台資料節點和SQL節點配置相同

1、安裝mysql-cluster

 

tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gzmv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysqlgroupadd mysqluseradd -g mysql -s /sbin/nologin mysqlchown -R root.mysql /usr/local/mysqlchown -R mysql.mysql /usr/local/mysql/data/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql & #初始化資料庫cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldcp /usr/local/mysql/support-files/medium.cnf /etc/my.cnfchmod +x/etc/init.d/mysqld

 

2、修改mysql設定檔

 

vi /etc/my.cnf[MYSQLD]user=mysqlcharacter_set_server=utf8ndbclusterndb-connectstring=192.168.0.202default-storage-engine=ndbcluster #設定預設是NDB儲存引擎datadir=/usr/local/mysql/databasedir=/usr/local/mysql[MYSQL_CLUSTER]ndb-connectstring=192.168.0.202 #mysql cluster 管理節點IP

 

三、測試(先關閉三台伺服器的防火牆(IPTABLES)與 Selinux)

 

1、啟動管理節點

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initialnetstat -tuplna | grep 1186 #預設串連連接埠1186,啟動成功tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369/ndb_mgmd

 

#--initial:第一次啟動時加上,其它時候不要加,不然會資料清空,除非是在備份、恢複或配置變化後重啟時。

如果啟動出現報錯:把config.ini裡設定的nodeid都給刪除即可!

2、啟動兩台資料節點和SQL節點

資料節點:/usr/local/mysql/bin/ndbd --initial

SQL節點:bin/mysqld_safe --user=mysql & 或 service mysqld start

3、查看叢集狀態

ndb_mgm -e show #顯示管理節點和資料節點則配置成功

4、建立一個資料庫驗證是否同步

 

mysql -u root -pMysql>create database test;Mysql>use test;Mysql>create table abc (id int) engine=ndbcluster;#指定資料庫表的引擎為NDB,否則同步失敗Mysql>Insert into abc ()values (1);Mysql>select * from abc;

 

#此時看兩個資料是否資料一致,如果一致說明叢集已經成功!

注意事項:

1.在建表的時候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB叢集儲存引擎,或用ALTER TABLE選項更改表的儲存引擎。
2.NDB表必須有一個主鍵,因此建立表的時候必須定義主鍵,否則NDB儲存引擎將自動產生隱含的主鍵。
3.Sql節點的使用者權限表仍然採用MYISAM儲存引擎儲存的,所以在一個Sql節點建立的MySql使用者只能訪問這個節點,如果要用同樣的使用者訪問別的Sql節點,需要在對應的Sql節點追加使用者。

四、管理和維護命令

關閉mysql叢集:ndb_mgm -e shutdown

重啟mysql叢集:ndb_mgmd -f /var/lib/mysql-cluster/config.ini

重啟資料節點:/usr/local/mysql/bin/ndbd

啟動SQL節點:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld restart

查看mysql狀態:ndb_mgm -e show

啟動順序:

管理節點 -> 資料節點 -> SQL節點

關閉順序:

SQL節點 -> 資料節點 -> 管理節點

MySQL Cluster MySQL叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.