MySQL集群簡(jiǎn)介與配置詳解
1. 先了解一下你是否應(yīng)該用MySQL集群。
減少數(shù)據(jù)中心結(jié)點(diǎn)壓力和大數(shù)據(jù)量處理,采用把MySQL分布,一個(gè)或多個(gè)application對(duì)應(yīng)一個(gè)MySQL數(shù)據(jù)庫(kù)。把幾個(gè)MySQL數(shù)據(jù)庫(kù)公用的數(shù)據(jù)做出共享數(shù)據(jù),例如購(gòu)物車,用戶對(duì)象等等,存在數(shù)據(jù)結(jié)點(diǎn)里面。其他不共享的數(shù)據(jù)還維持在各自分布的MySQL數(shù)據(jù)庫(kù)本身中。
2. 集群MySQL中名稱概念.(如上圖)
1)Sql結(jié)點(diǎn)(SQL node--上圖對(duì)應(yīng)為MySQLd):分布式數(shù)據(jù)庫(kù)。包括自身數(shù)據(jù)和查詢中心結(jié)點(diǎn)數(shù)據(jù).
2)數(shù)據(jù)結(jié)點(diǎn)(Data node -- ndbd):集群共享數(shù)據(jù)(內(nèi)存中).
3)管理服務(wù)器(Management Server – ndb_mgmd):集群管理SQL node,Data node.
3.配置
MySQL-max版本,當(dāng)然現(xiàn)在MySQL集群系統(tǒng)windonws平臺(tái)上面不被支持.
安裝MySQL就不多說(shuō)了,網(wǎng)上一大堆,簡(jiǎn)明扼要。
A:192.168.1.251 – Data node和Management Server.
B:192.168.1.254 – SQL node.
當(dāng)然,你也可以讓一個(gè)機(jī)器同時(shí)為3者。
A,B my.inf加上:
- [MySQLD]
- ndbcluster # run NDB engine
- ndb-connectstring=192.168.1.251 # location of MGM node
- # Options for ndbd process:
- [MySQL_CLUSTER]
- ndb-connectstring=192.168.1.251 # location of MGM node
- A: /var/lib/MySQL-cluster/config.ini
- [NDBD DEFAULT]
- NoOfReplicas=1 # 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 Cluster setup.
- # TCP/IP options:
- [TCP DEFAULT]
- portnumber=2202 # This the default; however, you can use any
- # port that is free for all the hosts in cluster
- # Note: It is recommended beginning with MySQL 5.0 that
- # you do not specify the portnumber at all and simply allow
- # the default value to be used instead
- # Management process options:
- [NDB_MGMD]
- hostname=192.168.1.251 # Hostname or IP address of MGM node
- datadir=/var/lib/MySQL-cluster # Directory for MGM node logfiles
- # Options for data node "A":
- [NDBD]
- # (one [NDBD] section per data node)
- hostname=192.168.1.251 # Hostname or IP address
- datadir=/usr/local/MySQL/data # Directory for this data node's datafiles
- # SQL node options:
- [MySQLD]
- hostname=192.168.1.254
- #[MySQLD] #這個(gè)相當(dāng)于192.168.1.251
4. 啟動(dòng)測(cè)試
在管理服務(wù)器上面(這里是192.168.1.251
):
- shell>ndb_mgmd -f /var/lib/MySQL-cluster/config.ini
在數(shù)據(jù)結(jié)點(diǎn)服務(wù)器上面(依然是192.168.1.251
and more):
- shell>ndbd--initial (***次時(shí)加--initial參數(shù))
SQL結(jié)點(diǎn)服務(wù)器上面(192.168.1.254
):
- shell>MySQLd &
在251上面察看
- ./ndb_mgm
- -- NDB Cluster -- Management Client --
- ndb_mgm> show
- Connected to Management Server at: 192.168.1.251:1186
- Cluster Configuration
- ---------------------
- [ndbd(NDB)] 1 node(s)
- id=2 @192.168.1.251 (Version:5.0.22, Nodegroup: 0, Master)
- [ndb_mgmd(MGM)] 1 node(s)
- id=1 @192.168.1.251 (Version:5.0.22)
- [MySQLd(API)] 1 node(s)
- id=3 @192.168.1.254 (Version:5.0.22)
ok
關(guān)閉集群:
- shell>ndb_mgm -e shutdown
5.基本的集群說(shuō)明
1)在MySQL集群中.當(dāng)table引擎為NDBCLUSTER時(shí)才做集群,其他非NDBCLUSTER表和一般MySQL數(shù)據(jù)庫(kù)表一樣,不會(huì)共享數(shù)據(jù). NDBCLUSTER表數(shù)據(jù)存儲(chǔ)在Data node服務(wù)器內(nèi)存中,Data Node可以為1臺(tái)或多臺(tái)服務(wù)器,它們之間存放共享數(shù)據(jù)。Data Node服務(wù)器可以分組數(shù)據(jù)copy。
例如:2,3,4,5為四臺(tái)Data Node服務(wù)器ID. 2,3為組0。 4,5為組1。 2,3維持?jǐn)?shù)據(jù)相同,4,5維持?jǐn)?shù)據(jù)相同。 組0和組1維持?jǐn)?shù)據(jù)不同。
2)sql node服務(wù)器中,非NDBCLUSTER數(shù)據(jù)存在本身數(shù)據(jù)庫(kù)中,table引擎為NDBCLUSTER時(shí),數(shù)據(jù)存儲(chǔ)在Data Node中。當(dāng)查詢NDBCLUSTER表時(shí),它會(huì)從Data node集群中提起數(shù)據(jù).
3)Manager server
管理SQl node和Data node狀態(tài)。
6深入了解http://dev.MySQL.com/doc/refman/5.0/en/ndbcluster.html
原文鏈接:http://blog.19lou.com/10131711/viewspace-338346
【編輯推薦】