MySQL cluster 在windows上的实现

来源:互联网 发布:淘宝网怎么买东西 编辑:程序博客网 时间:2024/05/01 07:53
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