MySQL 的集群是比较有意思的 share nothing .意味着所有的数据要load到内存中,不知道这个内存要多大才行。按oracle中的一般规则 SGA是内存一半 ,buffer cache是SGA一半算的话, 10G数据要有40G内存了才行。
整个过程还是蛮简单的,和oracle 的rac相比,也就是个玩具了。不过现在毕竟还是测试 下面一步是要更改写 参数进行调试。
这个集群有4个节点
一个管理节点,一个数据节点,2个SQL节点,其实还准备再增加一个数据节点,让2个数据节点做master-slave不知道行否,但觉得很重要,是一定要做的。否则一个数据节点挂了,整个系统就完了。
在一台机器上 模拟4个或者多个节点,好处就是在办公桌上 就可以玩了,MYSQL的玩具性质 一览无疑。
我记得阿里巴巴的简朝阳先生出的书的第一个序 就是另外大牛的一句话:时至今日估计已近没有人把mysql当玩具了。当时我就觉得有点滑稽,没见过序时这么写的,但今天算是明白了。
其实我很想对我老板说 : 金融用MySQL,一看你就不专业,不像是搞金融的。还好你还没有去叫我整 NOSQL。
好了闲话少说,上配置
每个部分的配置分别如下:
管理节点:
[NDBD DEFAULT]
NoOfReplicas=1 # Number of replicas
DataMemory=50M # How much memory to allocate for data storage
IndexMemory=10M # 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 # 各个节点之间通信的端口号
# Management process options:
[NDB_MGMD]
nodeid=1
hostname=192.168.1.141 # MGM node的IP
PortNumber=1000
datadir=D:\mysql\ctest\M\lib\mysql-cluster # MGM node的日志地址
#MGM node使用的端口号
#config-file=D:\mysql\ctest\M\lib\mysql-cluster\config.ini
[NDBD]
nodeid=2 # (one [NDBD] section per data node)
hostname=192.168.1.141 # Data node 1的IP
ServerPort=2000
datadir=D:\mysql\ctest\N\data\ndbdata #Data node 1存放数据的地址
FileSystemPath=D:\mysql\ctest\N\data\ndbdata
BackupDataDir=D:\mysql\ctest\N\data\ndbdata\backup
[MYSQLD]
nodeid=3
hostname=192.168.1.141
[MYSQLD]
nodeid=4
hostname=192.168.1.141
数据节点配置如下:
# DEFAULT]
#NoOfReplicas=1 #Number of replicas
#DataMemory=50M
#IndexMemory=10M
# DataMemory How much memory to allocate for data storage
#IndexMemory 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.
[mysqld]
DataDir=D:\mysql\ctest\N\data\ndbdata
#port = 2000
NodeId=2
ndbcluster=true
ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
[mysql_cluster]
ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
#[NDBD]
# (one [NDBD] section per data node)
#HostName=192.168.1.141 # Data node 1的IP
#ServerPort=2000
#datadir=D:\mysql\ctest\N\data\ndbdata
SQL1节点配置:
#[mysqld]
#DataDir=D:\mysql\ctest\SQL1\data\ndbdata
#port = 3000
#NodeId=3
#ndbcluster=true
#ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
#[mysql_cluster]
#ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
[client]
port = 3000
#socket = /home/oracle/mysql/data1/mysql1.sock
#default-character-set=utf8
[mysqld]
port = 3000
#这里我使用3001端口跑MySQL server进程
#socket = /home/oracle/mysql/data1/mysql1.sock
#datadir = D:\mysql\ctest\SQL1\data\ndbdata
ndbcluster
# run NDB engine
ndb-connectstring=192.168.1.141:1000
# MGM node的IP和端口
[mysql_cluster]
ndb-connectstring=192.168.1.141:1000
SQL2节点配置如下:
#[mysqld]
#DataDir=D:\mysql\ctest\SQL1\data\ndbdata
#port = 3000
#NodeId=3
#ndbcluster=true
#ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
#[mysql_cluster]
#ndb-connectstring=192.168.1.141:1000
#MGM节点IP地址和端口号
[client]
port = 4000
#socket = /home/oracle/mysql/data1/mysql1.sock
#default-character-set=utf8
[mysqld]
port = 4000
#这里我使用3001端口跑MySQL server进程
#socket = /home/oracle/mysql/data1/mysql1.sock
#datadir = D:\mysql\ctest\SQL1\data\ndbdata
ndbcluster
# run NDB engine
ndb-connectstring=192.168.1.141:1000
# MGM node的IP和端口
[mysql_cluster]
ndb-connectstring=192.168.1.141:1000
come from http://blog.sina.com.cn/s/blog_713958530100lppj.html