MySQL_Cluster集群配置方案

合集下载

MySQL CLUSTER 集群方案

MySQL CLUSTER 集群方案
五、检查工作状态
在任意一台机子上启动管理终端:
# ndb_mgm
键入show命令查看当前工作状态:(下面是一个状态输出示例)
– NDB Cluster — Management Client –
ndb_mgm> show
Connected to Management Server at: 192.168.1.111:1186
MySQL CLUSTER 集群方案
来源:网络
(1.双机实现高可用)
一、介绍
这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。加下后续的(keepalived+lvs+mysql cluster文档),可以实现Mysql双机的高可用及负载均衡。
启动管理节点Server2为:
# ndb_mgmd –ndb_nodeid=2
注:在启动时有一个警告提示
Cluster configuration warning:
arbitrator with id 1 and db node with id 3 on same host 192.168.1.111
Id=1
HostName= 192.168.1.111
[ndb_mgmd]
Id=2
HostName= 192.168.1.110
[ndbd]
Id= 3
HostName= 192.168.1.111
[ndbd]
Id= 4
HostName= 192.168.1.110
[mysqld]
TimeBetweenWatchDogCheck= 30000

MySQL集群之五大常见的MySQL高可用方案(转)

MySQL集群之五大常见的MySQL高可用方案(转)

MySQL集群之五⼤常见的MySQL⾼可⽤⽅案(转)1. 概述我们在考虑MySQL数据库的⾼可⽤的架构时,主要要考虑如下⼏⽅⾯:如果数据库发⽣了宕机或者意外中断等故障,能尽快恢复数据库的可⽤性,尽可能的减少停机时间,保证业务不会因为数据库的故障⽽中断。

⽤作备份、只读副本等功能的⾮主节点的数据应该和主节点的数据实时或者最终保持⼀致。

当业务发⽣数据库切换时,切换前后的数据库内容应当⼀致,不会因为数据缺失或者数据不⼀致⽽影响业务。

关于对⾼可⽤的分级在这⾥我们不做详细的讨论,这⾥只讨论常⽤⾼可⽤⽅案的优缺点以及⾼可⽤⽅案的选型。

2. ⾼可⽤⽅案2.1. 主从或主主半同步复制使⽤双节点数据库,搭建单向或者双向的半同步复制。

在5.7以后的版本中,由于lossless replication、logical多线程复制等⼀些列新特性的引⼊,使得MySQL原⽣半同步复制更加可靠。

常见架构如下:通常会和proxy、keepalived等第三⽅软件同时使⽤,即可以⽤来监控数据库的健康,⼜可以执⾏⼀系列管理命令。

如果主库发⽣故障,切换到备库后仍然可以继续使⽤数据库。

优点:1. 架构⽐较简单,使⽤原⽣半同步复制作为数据同步的依据;2. 双节点,没有主机宕机后的选主问题,直接切换即可;3. 双节点,需求资源少,部署简单;缺点:1. 完全依赖于半同步复制,如果半同步复制退化为异步复制,数据⼀致性⽆法得到保证;2. 需要额外考虑haproxy、keepalived的⾼可⽤机制。

2.2. 半同步复制优化半同步复制机制是可靠的。

如果半同步复制⼀直是⽣效的,那么便可以认为数据是⼀致的。

但是由于⽹络波动等⼀些客观原因,导致半同步复制发⽣超时⽽切换为异步复制,那么这时便不能保证数据的⼀致性。

所以尽可能的保证半同步复制,便可提⾼数据的⼀致性。

该⽅案同样使⽤双节点架构,但是在原有半同复制的基础上做了功能上的优化,使半同步复制的机制变得更加可靠。

mysql cluster常用参数配置

mysql cluster常用参数配置
MaxNoOfLocalOperations=110000
Байду номын сангаас
#该参数定义了全局检查点操作之间的时间间隔。默认值为2000毫秒。
TimeBetweenGlobalCheckpoints=1000
#这个参数定义mysql cluster复制同步的间隔时间,默认是100毫秒。
TimeBetweenEpochs=200
BackupMemory=20M
#线程的数量,和ndb节点是否采用超线程ndbmtd有关。
MaxNoOfExecutionThreads=4
#该超时参数指明了放弃事务之前,事务协调器等候另一节点执行查询的时间长短
TransactionDeadLockDetectionTimeOut=10000
#设置redo日志缓存
RedoBuffer=32M
#定义线程在进入睡眠状态之前多少毫秒被执行
SchedulerSpinTimer=400
#定义线程在被发送前多少毫秒被执行
SchedulerExecutionTimer=100
#设置ndbcluster线程启用真实时间的时序安排
RealTimeScheduler=1
[MYSQLD]
id=13
HostName=192.168.100.221
[MYSQLD]
id=14
HostName=192.168.100.222
[MYSQLD]
#mysqld多设置几个空连接用于恢复和线程池
[MYSQLD]
[MYSQLD]
[MYSQLD]
[MYSQLD]
#设置事务的buffer缓存

Mysql-cluster安装配置

Mysql-cluster安装配置

Mysql-cluster 7.2.5的安装配置OS:UbuntuData1 10.0.0.102 数据节点,SQL节点Data2 10.0.0.103 数据节点,SQL节点Ndb 10.0.0.104 管理节点1、下载解压到/usr/local/mysqltar -zxvf mysql-cluster-gpl-7.2.5-linux2.6-x86_64.tar.gzmv mysql-cluster-gpl-7.2.5-linux2.6-x86_64 /usr/local/mysql2、创建mysql用户useradd mysqlchown -R mysql:mysql /usr/local/mysql/3、安装支持库sudo apt-get install libaio14、修改/etc/profile以方便使用PATH=$PATH:/usr/local/mysql/binexport PATH5、安装mysqlcd /usr/local/mysql/scripts./mysql_install_db–basedir=/usr/local/mysql/–datadir=/usr/local/mysql/data/ --user=mysql6、配置管理节点ndb拷贝/usr/local/mysql/bin/ndb_mgm,ndb_mgmd两个文件到/usr/local/bincp /usr/local/mysql/bin/ndb_mgm* /usr/local/binmkdir /var/lib/mysql-clustervim /var/lib/mysql-cluster/config.ini[ndbd default]NoOfReplicas=1 #每个数据节点的镜像数量DataMemory=100M #每个数据节点中给数据分配的内存IndexMemory=10M #每个数据节点中给索引分配的内存[ndb_mgmd] #配置管理节点NodeId=1hostname=10.0.0.104datadir=/var/lib/mysql-cluster/ #管理节点数据(日志)目录[ndbd] #配置数据节点NodeId=2hostname=10.0.0.102datadir=/usr/local/mysql/data #数据节点目录(数据存储位置)[ndbd]NodeId=3hostname=10.0.0.103datadir=/usr/local/mysql/data[mysqld]#配置SQL节点hostname=10.0.0.102[mysqld]hostname=10.0.0.103[mysqld] #一定要留一个空的,以备扩展使用,否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误7、配置数据节点和SQL节点mysql服务启动时会默认加载/etc/f作为其配置文件,因此vim /etc/f[mysqld]ndbclusterdatadir=/usr/local/mysql/databasedir=/usr/local/mysqlport=3306[mysql_cluster]ndb-connectstring=10.0.0.104#声明管理节点8、启动服务节点的启动顺序为管理节点->数据节点->SQL节点启动管理节点:ndb_mgmd是mysqlcluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。

MySQLCluster方案概述

MySQLCluster方案概述

MySQLCluster方案概述分两点:一. MySQL NDB Cluster的概述MySQL NDB Cluster是一个适用于分布式计算环境的高可用性、高冗余版本的MySQL。

NDB集群由一组计算机组成,称为主机,每个计算机运行一个或多个进程。

这些进程称为节点,可能包括MySQL服务器(用于访问NDB数据)、数据节点(用于存储数据)、一个或多个管理服务器,以及可能的其他专门的数据访问程序。

在NDB集群中这些组件的关系如下所示:NDB集群所有这些程序一起工作来形成一个NDB集群。

当数据被NDB存储引擎存储时,表(和表数据)存储在数据节点中。

这样的表可以直接从集群中的所有MySQL服务器(SQL节点)访问。

因此,在一个将数据存储在集群中的工资单应用程序中,如果一个应用程序更新了雇员的工资,那么查询这些数据的所有其他MySQL服务器都可以立即看到这个变化。

NDB集群核心概念NDB CLUSTER(也称为NDB)是一个内存存储引擎,提供高可用的数据持久化功能。

NDB CLUSTER存储引擎可以配置一系列故障转移和负载平衡。

集群节点集群节点有三种类型,在最小的NDB集群配置中,至少会有三个节点。

1. Management node这种类型节点的作用是管理NDB集群中的其他节点,执行诸如提供配置数据、启动和停止节点以及运行备份等功能。

因为这个节点类型管理其他节点的配置,所以应该首先启动这种类型的节点,在任何其他节点之前。

执行ndb_mgmd命令启动该节点。

2. Data node这种类型节点的作用是存储集群数据。

一个副本足以用于数据存储,但不提供冗余;因此,建议使用2(或更多)副本来提供冗余,从而获得高可用性。

执行ndbd或ndbmtd(多线程)命令启动该节点。

NDB集群表通常存储在内存中,而不是在磁盘上(这就是为什么我们将NDB集群称为内存中的数据库)。

然而,一些NDB集群数据可以存储在磁盘上。

3. SQL node在NDB Cluster中SQL节点是一个使用NDBCLUSTER存储引擎的传统MySQL服务器。

mysql数据库集群配置详解

mysql数据库集群配置详解

mysql数据库集群配置详解环境:Vmware workstation6.5操作系统:Centos 5.2 (2台)第一台:主机名:mysql1 IP:192.168.1.30第二台主机名:mysql2 IP:192.168.1.32软件下载安装下载软件地址:/downloads/select.php?id=14选择操作系统是RedHat Enterprise 版本如下:MySQL-Cluster-gpl-client-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-debuginfo-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-devel-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-embedded-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-extra-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-management-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-server-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-shared-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-storage-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-test-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-tools-7.0.8a-0.rhel5.i386.rpm将软件包上传到服务器Rpm –ivh *.rpm具体配置在两台机器上做(同样的配置文件)1、创建配置文件目录:(mysql1 mysql2)#mkdir /var/lib/mysql-cluster –p在/var/lib/mysql-cluster 下创建集群配置文件config.ini编辑,添加如下内容:[NDBD DEFAULT]NoOfReplicas=2DataMemory=128MIndexMemory=64MMaxNoOfConcurrentOperations=2000000[MYSQLD DEFAULT][NDB_MGMD DEFAULT]DataDir= /var/lib/mysql-cluster[TCP DEFAULT]# Section for the cluster management node[NDB_MGMD]# IP address of the management node (this system) ID=1HostName= 192.168.1.30[NDB_MGMD]# IP address of the management node (this system) ID=2HostName= 192.168.1.32# Section for the storage nodes[NDBD]ID=3# IP address of the first storage nodeHostName=192.168.1.30[NDBD]ID=4# IP address of the second storage node HostName=192.168.1.32# one [MYSQLD] per storage node[MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD]2、创建API文件(mysql1 mysql2)编辑/etc/f 添加如下内容:[mysqld]default-storage-engine=ndbclusterlog=queryLoglog-slow-queries=slowquerylogmax_connections = 1000#NDBCLUSTERndbclusterndb-connectstring = 192.168.1.30,192.168.1.32[ndb_mgm]connect-string = 192.168.1.30,192.168.1.32[ndbd]connect-string = 192.168.1.30,192.168.1.32[mysql_cluster]ndb-connectstring= 192.168.1.30,192.168.1.32[ndb_mgmd]config-file=/var/lib/mysql-cluster/config.ini集群的启动:启动管理节点在mysql1 上启动管理节点# ndb_mgmd –ndb_nodeid=1在mysql2上启动管理节点# ndb_mgmd –ndb_nodeid=2第一次会有警告:Cluster configuration warning:arbitrator with id 1 and db node with id 3 on same host 192.168.1.30 arbitrator with id 2 and db node with id 4 on same host 192.168.1.32 Running arbitrator on the same host as a database node maycause complete cluster shutdown in case of host failure.是说:节点1和3,2和4的arbitrator一样,可能引起整个集群失败这个无所谓,继续启动NDB在mysql1 上运行:# ndbd –nodeid=3 –initial在mysql2上运行:# ndbd –nodeid=4 –iniitial注意:在第一次启动ndb或者修改了config.ini 文件才加上-initiail 参数查看状态:在任意一台机器上查看:[root@mysql1 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.30:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)[ndb_mgmd(MGM)] 2 node(s)id=1 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 (not connected, accepting connect from any host)id=8 (not connected, accepting connect from any host)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)看到上面的信息就正常了启动API在mysql1中:#mysqld_safe –ndb_nodeid=5 –user=mysql &在mysql2 中:#mysqld_safe –ndb_nodeid=6 –user=mysql &再次查看:[root@mysql1 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.30:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master) id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)[ndb_mgmd(MGM)] 2 node(s)id=1 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=8 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)显示两个API节点正常集群测试在mysql1中创建库# /usr/local/mysql/bin/mysql -u root -pmysql >create database love;mysql > use love;mysql > create table love (i INT)mysql > insert into love () VALUES (1);在mysql2上查询:mysql > select * from love;mysql> show tables;+----------------+| Tables_in_love |+----------------+| love |+----------------+1 row in set (0.03 sec)mysql> select * from love;+------+| i |+------+| 1 |+------+1 row in set (0.08 sec)已经同步:下面我将mysql1 停掉网卡:看一下状态:[root@mysql2 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.32:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 (not connected, accepting connect from 192.168.1.30)id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)[ndb_mgmd(MGM)] 2 node(s)id=1 (not connected, accepting connect from 192.168.1.30)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 (not connected, accepting connect from any host)id=8 (not connected, accepting connect from any host)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)mysql2 对外提供服务成为主服务器看能否查询:mysql> select * from love;ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER mysql> select * from love;ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER 暂时不能查询,出现错误:稍等片刻再次查询,没有错误,这段时间是故障转移,时间不是很长具体时间没计算在mysql2 上创建表:mysql > create table love1 (i INT)mysql > insert into love1 () VALUES (1);接下来将mysql1的网卡启动在mysql1上查询数据:[root@mysql1 ~]# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.1.37-ndb-7.0.8a-cluster-gpl-log MySQL Cluster Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use love;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables ;+----------------+| Tables_in_love |+----------------+| love || love1 |+----------------+2 rows in set (0.01 sec)mysql> select * from love1;+------+| i |+------+| 1 |+------+1 row in set (0.00 sec)可以看到在mysql2上创建的表love2正常运行但是mysql1成为主服务器,这个怎么改变过来,还不清楚The end !。

如何在一台计算机上安装配置mysql-cluster

如何在一台计算机上安装配置mysql-cluster

1.据说从mysql 5.1 以后mysql安装包里就不包含mysql cluster ,而是单独作为一个产品发布,目前mysql网站上最新的版本是mysql cluster 7.2.7。

下载地址:/downloads/cluster/#downloads2.建立有5个节点的MySQL CLuster体系( OS : REDHAT 6.1 )管理节点(MGM) 192.168.251.141SQL节点1(SQL1) 192.168.251.141SQL节点2(SQL2) 192.168.251.141数据节点1(NDBD1) 192.168.251.141数据节点2(NDBD2) 192.168.251.1413.首先去下载文件mysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz4.解压文件到/mysqlData/ 并重命名为mysql-cluster[root@dbcp-db01 mysqlData]# pwd/mysqlData[root@dbcp-db01 mysqlData]# lsmysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz mysql-cluster5.建立软连ln -s /mysqlData/mysql-cluster/ /usr/local/mysql6.在/etc/profile 加入export PATH=$PATH:/usr/local/mysql/binecho “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profilesource /etc/profile7.配置管理节点[root@dbcp-db01 config]# vi /data/config/mysqlcluster.ini[NDBD DEFAULT]NoOfReplicas=1[TCP DEFAULT]portnumber=3388#[NDB_MGMD]NodeId = 1hostname=192.168.251.141#datadir=/mysqlData/clustermgmd-data/#[NDBD]NodeId = 2hostname=192.168.251.141datadir=/mysqlData/clusterndb1-data/#[NDBD]NodeId = 3hostname=192.168.251.141datadir=/mysqlData/clustern db2-data/#[MYSQLD]NodeId = 4hostname=192.168.251.141#[MYSQLD]NodeId = 5hostname=192.168.251.141[MYSQLD]8.配置存储节点和SQL节点(配置两个cnf 配置不同的参数路径)[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb1-data/socket=/data/socket/my-n1.sockpid-file=/data/socket/n1.pidlog-error = /mysqlLog/n1_err.logslow_query_log_file = /mysqlLog/n1_slow.logport = 3399ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.141[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb2-data/socket=/data/socket/my-n2.sockpid-file=/data/socket/n2.pidlog-error = /mysqlLog/n2_err.logslow_query_log_file = /mysqlLog/n2_slow.logport = 3398ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.1419.建立mysql用户组和mysql用户groupadd mysqluseradd -g mysql mysql10.创建配置文件中所用到的目录mkdir -p /mysqlData/clusterndb2-data/mkdir -p /mysqlData/clusterndb1-data/mkdir -p /data/socket/mkdir -p /mysqlLog/mkdir -p /mysqlData/clustermgmd-data/11.更改相关目录的权限chown -R mysql.mysql /mysqlData/chown -R mysql.mysql /mysqlLog/12.初始化SQL节点[root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24447[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:/mysqlData/mysql-cluster//bin/mysqladmin -u root password 'new-password'/mysqlData/mysql-cluster//bin/mysqladmin -u root -h dbcp-db01 password 'new-password'Alternatively you can run:/mysqlData/mysql-cluster//bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd /mysqlData/mysql-cluster/ ; /mysqlData/mysql-cluster//bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd /mysqlData/mysql-cluster//mysql-test ; perl mysql-test-run.plPlease report any problems with the /mysqlData/mysql-cluster//scripts/mysqlbug script![root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24508[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OK.......13.启动mysql-cluster,启动顺序为管理节点->存储节点->SQL节点A. 启动管理节点[root@dbcp-db01 ~]# ndb_mgmd -f /data/config/mysqlcluster.iniMySQL Cluster Management Server mysql-5.5.25 ndb-7.2.7[root@dbcp-db01 ~]#B. 启动存储节点[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:13 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:13 [ndbd] INFO -- Angel allocated nodeid: 2[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:25 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:25 [ndbd] INFO -- Angel allocated nodeid: 3[root@dbcp-db01 scripts]#C. 启动SQL节点[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[1] 24649[root@dbcp-db01 scripts]# 120810 11:26:41 mysqld_safe Logging to '/mysqlLog/n1_err.log'.120810 11:26:41 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb1-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.1 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 1.2 2.2 953944 46772 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24760 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[2] 24761[root@dbcp-db01 scripts]# 120810 11:27:18 mysqld_safe Logging to '/mysqlLog/n2_err.log'.120810 11:27:18 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb2-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.0 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 0.8 2.2 953944 47184 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24761 0.2 0.0 106012 1320 pts/1 S 11:27 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24844 2.6 2.2 953944 46932 pts/1 Sl 11:27 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb2-data/ --user=mysql --log-error=/mysqlLog/n2_err.log --pid-file=/data/socket/n2.pid --socket=/data/socket/my-n2.sock --port=3398root 24873 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]#14.所有节点都启动了用ndb_mgm 查看[root@dbcp-db01 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)id=3 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 1)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)[mysqld(API)] 2 node(s)id=4 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)id=5 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)ndb_mgm>15.在SQL节点端口3399上创建数据库,表,插入数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n1.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database cluster_one;Query OK, 1 row affected (0.12 sec)mysql> use cluster_oneDatabase changedmysql> create table c_tb_a (id int ,tname varchar(10)) engine = ndbcluster default charset utf8;Query OK, 0 rows affected (0.25 sec)mysql> insert into c_tb_a values (1,'qqqqqq');Query OK, 1 row affected (0.01 sec)mysql> insert into c_tb_a values (2,'dddddd');Query OK, 1 row affected (0.00 sec)mysql>16.在SQL节点端口3398 上查询数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n2.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || cluster_one || mysql || ndb_3_fs || ndbinfo || performance_schema || test |+--------------------+7 rows in set (0.04 sec)mysql> use cluster_oneReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-----------------------+| Tables_in_cluster_one |+-----------------------+| c_tb_a |+-----------------------+1 row in set (0.00 sec)mysql> select * from c_tb_a;+------+--------+| id | tname |+------+--------+| 1 | qqqqqq || 2 | dddddd |+------+--------+2 rows in set (0.00 sec)mysql>以上就是在一台计算机上安装配置mysql cluster 的过程,其实跟在多台机器上配置差不多,只是在配置cnf的时候要用不同的路径,要注意的是在初始化的时候把--defaults-file --datadir --basedir 几个参数加上。

mysql集群之MYSQLCLUSTER

mysql集群之MYSQLCLUSTER

mysql集群之MYSQLCLUSTER1. 参考⽂档2. 简介MySQL-Cluster是⼀种技术,该技术允许在⽆共享的系统中部署“内存中”数据库的簇。

通过⽆共享体系结构,系统能够使⽤廉价的硬件,⽽且对软硬件⽆特殊要求。

此外,由于每个组件都有⾃⼰的内存和磁盘,所以不存在单点故障。

MySQL簇将标准的MySQL服务器与名为NDB的“内存中”的簇式存储引擎集成了起来。

术语NDB指的是与存储引擎相关的设置部分,⽽术语“MySQL簇”指的是MySQL和NDB存储引擎的组合。

MySQL簇由⼀组计算机构成,每台计算机上均运⾏着多种进程,包括MySQL服务器,NDB簇的数据节点,管理服务器(MGM),以及(可能)专门的数据访问程序。

关于簇中组件的关系,如下图:所有这些程序⼀起构成了MySQL簇。

将数据保存到NBD簇引擎中时,表将保存在数据节点内。

能够从簇中所有其他MySQL服务器直接访问这些表。

因此,假如在将数据保存在簇内的⼯资应⽤程序中,如果某⼀应⽤程序更新了⼀位雇员的⼯资,所有查询该数据的其他MySQL 服务器能⽴刻发现这种变化。

对于MySQL簇,保存在数据节点的数据可被映射,簇能够处理单独数据节点的故障,除了少数事物将因事物状态丢失⽽被放弃外,不会产⽣其他影响。

由于事物性应⽤程序能够处理失败事宜,因⽽它不是问题源。

3. MySQL簇的基本概念NDB 是⼀种“内存中”存储引擎,它具有可⽤性⾼和数据⼀致性好的特点。

能够使⽤多种故障切换和负载平衡选项配置NDB 存储引擎,但以簇层⾯上的存储引擎开始最简单。

MySQL簇的NDB存储引擎包含完整的数据集,仅取决于簇本⾝内的其他数据。

下⾯名,我们将介绍设置由NDB存储引擎和⼀些MySQL服务器构成的MySQL簇的设置⽅法。

⽬前,MySQL簇的部分可以独⽴于MySQL服务器进⾏配置。

在MySQL簇中,簇的每个部分被视为⼀个节点。

注释:在很多情况下,术语“节点”⽤于指计算机,但在讨论MySQL簇时,它表⽰的是进程。

MySQL集群部署与配置指南

MySQL集群部署与配置指南

MySQL集群部署与配置指南引言MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序中。

在处理大规模数据和高并发访问时,单个MySQL服务器可能无法满足需求。

为了提高性能和可用性,使用MySQL集群来部署和配置数据库是一个不错的选择。

本文将详细介绍MySQL集群部署和配置的指南,帮助读者了解集群的概念,并提供一些实用的技巧。

1. 集群概述1.1 什么是MySQL集群MySQL集群是指由多个MySQL服务器组成的集合,通过共享数据和负载均衡来提供高性能和高可用性。

集群中的每个节点都存储相同的数据,并且可以处理来自客户端的查询请求。

如果其中一个节点发生故障,其他节点将继续提供服务,确保数据的有效性和可访问性。

1.2 集群的优势MySQL集群具有以下优势:- 高可用性:即使其中一个节点发生故障,其他节点也可以继续提供服务,避免了单点故障的风险。

- 负载均衡:通过将查询请求分发到不同的节点上,集群可以平衡负载,提高整个系统的性能。

- 扩展性:可以根据需求增加或减少集群节点,以应对不断增长的数据和用户访问量。

- 数据冗余:通过复制数据到多个节点,可以提供数据的冗余备份,避免数据丢失的风险。

2. 部署MySQL集群2.1 硬件要求部署MySQL集群需要考虑以下硬件要求:- 多台服务器:每个节点都需要一个独立的服务器来承载MySQL服务。

- 网络连接:节点之间需要可靠的网络连接,以便进行数据同步和通信。

2.2 软件要求部署MySQL集群还需要满足以下软件要求:- MySQL数据库:每个节点都需要安装并配置MySQL数据库。

- 集群管理软件:可以使用各种集群管理软件,如MySQL Cluster、Galera Cluster或Percona XtraDB Cluster等。

2.3 数据同步配置为了保持每个节点上的数据一致性,需要配置数据同步机制。

可以使用MySQL的复制功能来实现数据同步。

具体步骤如下:- 在一个节点上设置为主节点(master),并启用二进制日志功能。

mysql集群安装及配置

mysql集群安装及配置

一.Mysql集群安装一.Rpm包准备从/downloads下面找到cluster并下载相应的5个安装包。

MySQL-Cluster-gpl-client-*.rpmMySQL-Cluster-gpl-management-*.rpmMySQL-Cluster-gpl-server-*.rpmMySQL-Cluster-gpl-storag-*.rpmMySQL-Cluster-gpl-tools-*.rpm二.管理节点安装一.安装管理包Rpm –ivh MySQL-Cluster-gpl-management-*.rpmRpm –ivh MySQL-Cluster-gpl-tools-*.rpm二.编辑配置文件Vi /etc/lib/mysql-cluster/config.ini【我用的最简化版本】[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=18M[tcp default]SendBufferMemory=2MReceiveBufferMemory=2M[NDB_MGMD DEFAULT]PortNumber=1186Datadir=/var/lib/mysql-cluster[ndb_mgmd]Hostname= 172.18.40.249[ndbd]Hostname=172.18.40.149datadir=/var/lib/mysql/data[ndbd]HostName=172.18.40.242datadir=/var/lib/mysql/data[mysqld]HostName=172.18.40.149[mysqld]HostName=172.18.40.242三.启动管理节点Ndb_mgmd –f /var/lib/mysql-cluster/config.ini 三.数据节点安装一.安装存储包Rpm –ivh MySQL-Cluster-gpl-storag-*.rpm 二.编辑配置文件Vi /etc/f[mysqld] #配置连接管理主机Max_connections=100Slow_query_log/var/mysql/slow_query.logLong_query_time=1Datadir=/var/lib/mysql/dataNdbclusterNdb-connectstring=172.18.40.249[mysql_cluster]Ndb-connectstring=172.18.40.249三.启动数据节点Ndbd – initial #注意仅第一次启动时加入- initial(初始化),其他情况使用ndbd即可四.Sql节点安装一.安装SQL包Rpm –ivh MySQL-Cluster-gpl-server-*.rpmRpm –ivh MySQL-Cluster-gpl-client-*.rpm二.编辑配置文件Vi /etc/f[mysqld]NdbclusterNdb-connectstring=192.168.0.171 #注意是横杠[mysql_cluster] #注意是下划线Ndb-connectstring=192.168.0.171三.启动sql节点Mysqld_safe二.群集测试在管理节点主机上(192.168.0.171)Ndb_mgmNdb_mgm>show若显示除了管理节点、数据节点、sql节点的相关信息,表示成功连接并启动了整个集群数据测试任何一台SQL节点连接MysqlMysql>create database clustertest;Mysql>use clustertest;Mysql>create table city (Id int NOT NULL auto_increment,Name char(35),Countrycod char(10),District char(20),Population int,Primary key (id)) engine=ndbcluster; #使用ndbcluster群集方式进行存储。

MySQLCluster7.3.5集群配置参数优化(优化篇)

MySQLCluster7.3.5集群配置参数优化(优化篇)

NodeId = 1 HostName = 172.16.10.160
[ndbd] NodeId = 11 HostName = 172.16.10.170
[ndbd] NodeId = 12 HostName = 172.16.10.171
[ndbd] NodeId = 13 HostName = 172.16.10.172
参考:
【推荐】
###Heartbeating HeartbeatIntervalDbDb = 15000 HeartbeatIntervalDbApi = 15000
FragmentLogFileSize = 256M NoOfFragmentLogFiles = 16
[mysqld default]
[ndb_mgmd]
StringMemory = 50 MaxNoOfTables = 4096 MaxNoOfOrderedIndexes = 2048 MaxNoOfUniqueHashIndexes = 1024 MaxNoOfAttributes = 24576 MaxNoOfTriggers = 10240
MaxNoOfConcurrentTransactions = 409600 MaxNoOfConcurrentOperations = 3276800 ###MaxNoOfLocalOperations = 55000 TimeBetweenGlobalCheckpoints = 1000 TimeBetweenEpochs = 100 TimeBetweenWatchdogCheckInitial = 60000 TransactionBufferMemory = 20M DiskCheckpointSpeed = 20M DiskCheckpointSpeedInRestart = 100M TimeBetweenLocalCheckpoints = 20

Open MQ与MySQL Cluster高可用性配置指南说明书

Open MQ与MySQL Cluster高可用性配置指南说明书

Set Up High-Availability Open MQ with MySQL Cluster Version 1.0Author: Phuong NguyenLast edited 07/15/2008IntroductionThis guide shows how to configure Open MQ with two brokers and MySQL Cluster with two storage nodes and one management node that provides high-availability for a minimal hardware configuration. This setup requires four servers.Server TopologyMySQL Cluster requires a minimum of three servers to provide true redundancy: two MySQL/NDB servers and one management server. As the management server is a light-weight process and does not use many resources, we can also run MQ Broker instance 1 on the same machine. This means that a fourth server is needed for the 2nd Broker instance. This topology is known as the Separate Tier Topology; the Broker instances and the MySQL/NDB nodes are on different machines (hence the name separate tier).Another variation known as the Co-located Topology, run the Broker instance and MySQL server on the same machine (hence the name co-located) so the NDB node can run by itself on a single server. For simplicity, we'll use the Separate Tier Topology in this setup.Server 3 Broker Instance 1 Management NodeServer 4 Broker Instance 2Server 1 MySQL Node 1 NDB Node 1Server 2 MySQL Node 2 NDB Node 2Step 1: Download and install MySQL Cluster 6.2Step 1: Download and install MySQL Cluster 6.2Download the appropriate MySQL Cluster binary distribution for you platform. Download linkAlex Davies has written an excellent writeup on MySQL Cluster: Two webserver setup. Please follow the steps described in his guide to setup MySQL Cluster with two storage nodes. If all goes well, you should have MySQL/NDB node running on both Server 1 and Server 2 with the management node running on Server 3.Step 2: Download Open MQ 4.2Download the appropriate Open MQ binary distribution for you platform. Download linkStep 3: Install Open MQ Community Bundles (Compressed Archive)Do the following to install MQ on both Server 3 and Server 4:Unzip the binary (.jar) bundleEdit the file $TOP/mq/etc/imqenv.conf to set IMQ_DEFAULT_JAVAHOME to JDK1.5 or later versionGenerate the instance configuration file by starting the broker:cd $TOP/mq/bin./imqbrokerd -ttyType CTRL-C to shutdown the brokerEdit the broker’s instance configuration file:$TOP/mq/var/instances/imqbroker/props/config.propertiesSet the following JDBC-related properties in the broker’s instance configuration file:imq.cluster.ha=trueimq.brokerid=broker1imq.cluster.clusterid=mqclusterimq.persist.store=jdbcer=<db_username>imq.persist.jdbc.mysql.password=<db_user_password>imq.persist.jdbc.mysql.password=<db_user_password>imq.persist.jdbc.dbVendor=mysqlimq.persist.jdbc.mysql.property.url=jdbc:mysql://<Server_1_hostn<Server_2_hostname>:3306/mqdbimq.persist.jdbc.mysql.tableoption=ENGINE=NDBCLUSTER Note: We use broker1 as the brokerID for the 1st instance and mqcluster asthe clusterID. You'll also need to specify the username and password for thedatabase, and the hostname of Server 1 and Server 2 for the JDBC's URLproperty of your setup.Place a copy of MySQL Connector/J JDBC driver in the following directory:Download link$TOP/mq/lib/extCreate the database schema needed for MQ persistence:cd $TOP/mq/bin./imqdbmgr create tblNote: You'll only need to do this step once on either MQ installation (Server 3or Server 4)For Server 4, change the brokerID to broker2 in the broker's configuration file.Step 4: Start the Broker ClustersStart the broker on both Server 3 and Server 4cd $TOP/mq/bin./imqbrokerd -ttyCheck the output on the console or the broker's log file for log message B1179& B1071 to verify that Broker 1 is connected to Broker 2 in an HA cluster;below is a snippet from an actual log file:...[15/Jul/2008:15:14:04 PDT] [B1185]: Starting heartbeatto broker2[15/Jul/2008:15:14:04 PDT] [B1181]: Added heartbeatendpoint /129.145.130.96:7676 [brokerID=broker2,brokerSession=4896287081875276288] (seq#=0,。

Mysql-cluster环境配置V2

Mysql-cluster环境配置V2

Mysql-cluster环境配置硬件环境4台机器192.168.1.10 管理节点192.168.1.11 存储节点SQL节点192.168.1.12 存储节点、SQL节点192.168.1.13 SQL节点软件环境:操作系统:CentOS 6 .5(64位)Mysql版本:MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tarmysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz(需要其中的两个文件)安装准备:1. 解压MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar:将解压后的MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm分发至每台机器;将解压后的MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm分发至SQL节点;2. 清理旧的Mysql安装:yum -y remove mysqlrpm -qa | grep mysql*对于找到的1个剩余mysql包,请按照如下的命令格式予以删除:rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_643. 安装依赖库:yum -y install libaio安装MySQL Cluster:创建文件夹(分如下3个类来创建对应的文件夹)存储节点:mkdir /var/lib/mysql/data管理节点:mkdir /var/lib/mysql-cluster SQL节点:可不用文件夹授权进程DIR: mkdir /var/run/mysqld使用如下的命令来变更权限保证可写入:chmod -R 1777 /var/lib/mysqlchmod -R 1777 /var/run/mysqldchmod -R 1777 /var/lib/mysql-cluster1. 在每台机器上安装MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm安装后会提示默认密码存放在/root/.mysql_secret文件中(也有时候不提示)2. 在SQL节点上安装MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm配置管理节点:1.解压mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz,进入其mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64\bin目录找到ndb_mgm和ndb_mgmd,将其复制到管理节点的/usr/local/bin,然后使这两个文件成为可执行的:cd /usr/local/binchmod +x ndb_mgm*2.在管理节点上执行:cd /var/lib/mysql-clustervi config.ini内容如下:[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=20M[ndb_mgmd]# Management process options:hostname=192.168.1.10 # Hostname or IP address of MGM nodedatadir=/var/lib/mysql-cluster # Directory for MGM node log files[ndbd]HostName=192.168.1.11DataDir=/var/lib/mysql/data[ndbd]HostName=192.168.1.12DataDir=/var/lib/mysql/data[mysqld]HostName=192.168.1.11[mysqld]HostName=192.168.1.12[mysqld]HostName=192.168.1.13配置两个管理节点,如下所示:[ndb_mgmd]hostname=192.168.1.10datadir=/var/lib/mysql-cluster[ndb_mgmd]hostname=192.168.1.13datadir=/var/lib/mysql-cluster需要配置两个ndb_mgmd同时存储节点和SQL节点修改如下:[mysqld]ndbclusterndb-connectstring=192.168.1.10,192.168.1.13[mysql_cluster]ndb-connectstring=192.168.1.10,192.168.1.13配置存储节点和SQL节点:在所有存储节点和SQL节点上建立配置文件:vi /etc/f内容如下:[client]socket=/var/lib/mysql/mysql.sock[mysqld]max_connections=100datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockndbclusterndb-connectstring=192.168.1.10[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysql_cluster]ndb-connectstring=192.168.1.10~启动各个节点:注意顺序。

如何在Windows系统中配置Mysql群集(Mysql Cluster)

如何在Windows系统中配置Mysql群集(Mysql Cluster)

如何在Windows系统中配置Mysql群集(Mysql Cluster)MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。

Mysql群集(Cluster)简介MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。

MySQL群集中有三种节点:管理节点、数据节点和SQL节点。

群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。

这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。

管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。

它监控其他节点的工作状态,能够启动、关闭或重启某个节点。

其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。

数据节点用于存储数据。

SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。

下图中画出了三种群集节点及应用程序间的关系:MySQL Cluster的下载我们使用的Mysql Server已经不能满足群集的要求,配置群集需要使用MySQL Cluster。

MySQL Cluster支持Linux、Mac OS X、Solaris和Windows操作系统。

鸡啄米以Windows 系统下的MySQL Cluster版本MySQL Cluster7.2.5为例说明MySQL Cluster的配置和启动。

MySQL Cluster的下载地址是/downloads/cluster。

如果你的操作系统是32位的,就选择Windows(x86,32-bit),ZIP Archive下载,大小为228.9M,如果是64位的,就下载Windows(x86,64-bit),ZIP Archive,大小为232.7M。

它们都是免安装的二进制版本。

Mysql集群配置

Mysql集群配置

Node1#system-config-cluster&查看配置是否正确,多播地址为228.0.0.15,这用多播技术就因为多播发送数据包到单个IP地址,由多个IP主机去处理和接收,而不去管IP互联网络上所处的位置。

对于一对多的数据传输,多播比单播和关播要高效。

与单播不同,多播仅发送数据的一个副本;与广播不同,多播流量仅由正在监听的主机进行接收和处理。

点击"Edit Cluster Properties" 调出"Cluster Properies" 配置 Cluster 的名称和相关属性。

"PostJoin Delay" 栅进程接收新节点的加入请求后等待节点确认加入的延迟秒数,默认值为 3,典型的设置为 20 至30,这个根据你的网路和集群的实际情况而定。

"PostFail Delay" 栅进程发现节点失效后将节点踢出错误恢复域的等待延迟时间,默认值为 0 代表立即踢出不延时,这个值要按你集群网络的实际情况而定。

RHCS v5 中添加了对 Xen fence的支持,所以多出了个 Run XVM Daemon 的选项框新增四个 cluster node, 分别为 node1、node2 、fence 和 sharestrg (这里的名称必须与/etc/hosts 中声明的一致)。

如果你是多网络接口,请设置 mulicast interface 为你公网接口。

如图4新增Fence Device 点击"Add a Fence Device" 如果有 Fence 设备请依照厂牌选择进行配置,键入名称、IP 位置、控制帐号、密码即可。

大多数情况下你也许没有专门的fence 设备,感谢RedHat 给我们带来了 Global Network Block Device(gnbd)方式。

请选择"Global Network Block Device" ,然后填入 Fence 设备的名字(在 Cluster 中为和其他设备区别而设,属于自定义范围),填入 Fence 服务器的 ip 或者你在/etc/hosts 声明过的 fence 节点名。

MySQL Cluster配置参数详细介绍

MySQL Cluster配置参数详细介绍
b) 1代表本节点有最高优先权,“一切由我来决策”
c) 2代表本节点参与决策,但是优先权较1低,但是比0高
ArbitrationRank参数不仅仅管理节点有,MySQL节点也有。而且一般来说,所有的管理节点一般都应该设置成1,所有SQL节点都设置成2。
2) [NDB_MGMD]是每个管理节点配置一组,所需配置项如下(下面的参数只能设置在[NDB_MGMD]参数组中):
c) 还可以计入syslog里面如:LogDestination=SYSLOG:facility=syslog;
d) 甚至多种方式共存:LogDestination=CONSOLE;SYSLOG:facility=syslog;FILE:filename=/var/log/cluster-log
MaxNoOfLocalScans:和上面的这个参数相对应,只不过设置的是在本节点上面的并发table scan和range scan数量。如果在系统中有大量的并发而且一般都不使用并行的话,需要注意此参数的设置。默认为MaxNoOfConcurrentScans * node数目;
BatchSizePerLocalScan:该参用于计算在Localscan(并发)过程中被锁住的记录数,文档上说明默认为64;
DataDir:指定本地的pid文件,trace文件,日志文件以及错误日志子等存放的路径,无系统默认地址,所以必须设定;
DataMemory:设定用于存放数据和主键索引的内存段的大小。这个大小限制了能存放的数据的大小,因为ndb存储引擎需属于内存数据库引擎,需要将 所有的数据(包括索引)都load到内存中。这个参数并不是一定需要设定的,但是默认值非常小(80M),只也就是说如果使用默认值,将只能存放很小的数 据。参数设置需要带上单位,如512M,2G等。另外,DataMemory里面还会存放UNDO相关的信息,所以,事务的大小和事务并发量也决定了 DataMemory的使用量,建议尽量使用小事务;

mysql集群安装配置

mysql集群安装配置

mysql集群安装配置2010-01-07 11:33:14 标签:mysql集群[推送到技术圈]版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。

否则将追究法律责任。

http://w iliiw in.b lo g.51cto.co m/928128/259801看网上很多人说mysql集群不是很稳定,因此这2天做了下m ysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下:操作系统:Centos5.2软件包:m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz数据库管理节点: 192.168.100.151数据库数据节点: 192.168.100.65,192.168.100.58数据库sql节点: 192.168.100.65,192.168.100.58我这里数据节点和sql节点用相同的2台机器承担.1.管理节点的安装#groupadd m ysql#useradd m ysql -g m ysql#m v m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/#cd /usr/local/#tar zxvf m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz#rm -f m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz#m v m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23 m ysql#chown -R m ysql:m ysql mysql#cd m ysql#scripts/m ysql_install_db --user=m ysql2.管理节点的配置#mkdir /var/lib/m ysql-cluster#cd /var/lib/mysql-cluster#vi config.ini //这里需要手动添加如下内容[ndbd default]NoOfReplicas=2DataMem ory=80MIndexMemory=18M //这里有很多参数,大家可以自己找下相关资料[ndb_mgmd]Id=1Hostnam e=10.10.1.151 //管理节点IP datadir=/usr/local/m ysql/logs [ndbd]Id=2Hostnam e=10.10.1.65 //数据节点IPdatadir=/usr/local/mysql/data/ //数据节点的数据目录,这里要与数据节点的配置文件f的数据指定相同[ndbd]Id=3Hostnam e=10.10.1.58 //数据节点IPdatadir=/usr/local/mysql/data/[MYSQLD][MYSQLD]3.安装和配置数据节点这里2台机器数据节点安装是相同的.#groupadd m ysql#useradd m ysql -g m ysql#m v m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/#cd /usr/local/#tar zxvf m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz#rm -f m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz#m v m ysql-cluster-gpl-7.0.8a-linux-i686-glibc23 m ysql#chown -R m ysql:m ysql mysql#cd m ysql#scripts/m ysql_install_db --user=m ysql#cp support-files/m y-m f /etc/m f#cp support-files/m ysql.server /etc/init.d/m ysqld#vi /etc/m f //这里需要手动添加如下的内容datadir=/usr/local/mysql/data/ //这里要与管理节点的config.ini相同ndbclusterndb-connectstring=10.10.1.151[ndbd]connect-string=10.10.1.151[m ysql_cluster]ndb-connectstring=10.10.1.151[ndb_mgm]connect-string=192.168.1.151[ndb_mgmd]config-file=/var/lib/m ysql-cluster/config.ini //这里要指定管理节点配置文件路径4.启动相关服务在管理节点启动相关服务:#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini#netstat -lntputcp 0 0 0.0.0.0:1186 0.0.0.0:*LISTEN 22907/ndb_mgmd看到1186端口开放了说明启动是正常的.在数据节点启动相关服务:#/usr/local/mysql/bin/ndbd --initial#netstat -lntputcp 0 0 10.10.1.65:32975 0.0.0.0:*LISTEN 1901/ndbdtcp 0 0 10.10.1.65:32976 0.0.0.0:* LISTEN 1901/ndbdtcp 0 0 10.10.1.65:32977 0.0.0.0:* LISTEN 1901/ndbd#service m ysqld start#netstat -lntputcp 0 0 :::3306 :::* LISTEN 2258/mysqld可以看到相关的ndbd服务以及mysql已经启动ok了.5.功能测试到管理节点查看下相关服务状态# ndb_mgmndb_mgm> showConnected to Managem ent Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @10.10.1.65 (m ysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)id=3 @10.10.1.58 (m ysql-5.1.37 ndb-7.0.8, Nodegroup: 0)[ndb_mg md(MGM)] 1 node(s)id=1 @10.10.1.151 (mysql-5.1.37 ndb-7.0.8)[m ysqld(API)] 2 node(s)id=4 @10.10.1.65 (m ysql-5.1.37 ndb-7.0.8)id=5 @10.10.1.58 (m ysql-5.1.37 ndb-7.0.8)可以看到这里的数据节点、管理节点、sql节点都是正常的.现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步# /usr/local/mysql/bin/mysql -u root -pm ysql> show databases;+--------------------+| Database |+--------------------+| inform ation_schema || m ysql || ndb_2_fs || test |+--------------------+mysql> create database aa;mysql> use aamysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败mysql> INSERT INTO ctest2 () VALUES (1);mysql> SELECT * FROM ctest2;+------+| i |+------+| 1 |+------+现在到另外一个数据节点查看下aa数据库是否同步过来了.#/usr/local/m ysql/bin/m ysql -u root -pmysql> show databases;+--------------------+| Database |+--------------------+| inform ation_schema || aa || bb || m ysql || ndb_3_fs || test |+--------------------+mysql> use aamysql> select * from ctest2;+------+| i |+------+| 1 |+------+从上面可以看到数据已经同步了,m ysql集群环境已经搭建完成.6.破坏性测试大家在上面可以看到10.10.1.65作为主的数据节点,我现在把10.10.1.65这台机器关闭,看下有什么结果ndb_mgm> showCluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 (not connected, accepting connect from 10.10.1.65)id=3 @10.10.1.58 (m ysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)[ndb_mgmd(MGM)] 1 node(s)id=1 @10.10.1.151 (m ysql-5.1.37 ndb-7.0.8)[m ysqld(API)] 2 node(s)id=4 (not connected, accepting connect from any host)id=5 @10.10.1.58 (m ysql-5.1.37 ndb-7.0.8)从上面可以发现现在10.10.1.65这台机器的数据节点和sql节点已经连接不了,10.10.1.58成为了主数据节点,我们现在在10.10.1.58数据节点上创建一个表,然后恢复10.10.1.65的数据节点,看下它是否把数据同步过来了.先在10.10.1.58数据节点做如下操作:m ysql> create table ctest3(id int(11)) engine=NDB;m ysql> show tables;+--------------+| Tables_in_aa |+--------------+| ctest2 || ctest3 |+--------------+mysql> insert into ctest3 values(1);mysql> select * from ctest3;+------+| id |+------+| 1 |+------+然后我们恢复10.10.1.65数据节点,查看下ctest3数据是否同步过来了.mysql> show databases;+--------------------+| Database |+--------------------+| inform ation_schema || aa || bb || m ysql || ndb_2_fs || test |+--------------------+mysql> use aamysql> show tables;+--------------+| Tables_in_aa |+--------------+| ctest || ctest2 || ctest3 |+--------------+mysql> select * from ctest3;+------+| id |+------+| 1 |+------+可以看到10.10.1.65数据节点已经把10.10.1.58数据节点的数据同步过来了,说明m ysql集群是没有问题的了.随后做下m ysql性能相关的测试.本文出自“linux学习”博客,请务必保留此出处/928128/259801。

mysql cluster集群配置与安装

mysql cluster集群配置与安装

安装版本:mysql cluster 7.2.6操作系统centos6.2 (X64)软件名称mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz管理节点数据节点SQL节点在IP 10.8.10.38(master)数据节点SQL节点在IP 10.8.10.35首先,检查系统是否装载了mysql使用命令rpm -qa|grep -i mysql如果有显示全部卸载,如果没有说明没有安装mysqlrpm -e MySQL-python-1.2.3-0.3.c1.1.el6.x86_64rpm -e mysql-5.1.52-1.el6_0.1.x86_64rpm -e mysql-connector-odbc-5.1.5r1144-7.el6.x86_64rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 –nodeps删除frm –fr /etc/ftar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz解压完成后运行mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 /usr/local/mysql添加用户mysqluseradd mysqlchown -R mysql:mysql /usr/local/mysql/进入安装脚本路径cd /usr/local/mysql/scripts/带参数运行安装程序./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &注意:&不带此符号,安装程序容易不进行安装,而且报错拷贝ndb_mgm ndb_mgmd 文件到/usr/local/bin/cp -fr /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/创建mysql-cluster文件夹mkdir /var/lib/mysql-cluster创建config.ini文件vi /var/lib/mysql-cluster/config.ini文件内容[NDBD DEFAULT]NoOfReplicas: 1 #定义在Cluster环境中相同数据的份数最大为4# Data Memory, Index Memory, and String Memory #DataMemory: 500M #分配的数据内存大小IndexMemory: 250M #设定用于存放索引(非主键)数据的内存段大小#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,#两者任何一个达到限制数量后,都无法再增加能存储的数据量。

mysql集群配置

mysql集群配置

MySQL-Cluster 配置流程1.MySQL-Cluster简介MySQL-Cluster主要有三种类型节点:数据节点,数据节点将保存数据库,它会自动复制所有的数据节点;整个数据库集群操作的所有物理数据及数据库对象保存在本类型节点。

Sql节点,sql节点完成和高层应用的交互,是应用访问集群的入口,在应用看来使用本节点的具体方式和单独mysql数据库无差别;管理节点,管理节点,用以监控和管理整个集群。

具有管理客户端功能,是一系列管理命令的集合,本身不参与数据库存储相关操作。

节点之间的通讯基于TCP协议,在搭建环境时需要配置通讯相关配置项。

2.安装环境及软件包2台PC机,通过VMWare创建虚拟机,然后安装操作系统软件包:MySQL-Cluster-client-gpl-7.3.7-1.rhel5.x86_64.rpmMySQL-Cluster-server-gpl-7.3.7-1.rhel5.x86_64.rpm操作系统:Redhat.Enterprise.Linux.v5.UPDATE.7.X86.DVD-HOTiSO.isoHostname1:192.168.17.109Hostname2:192.168.17.110数据库管理节点:192.168.17.109,192.168.17.110数据库数据节点:192.168.17.109,192.168.17.110数据库SQL节点(API节点):192.168.17.109,192.168.17.1103.安装以下步骤需要在两台机器,即Hostname1和Hostname2上各做一次1.首先检查linux操作系统中是否安装了自带的mysql数据库一般linux自带mysql版本都比较低一些,因此要安装比较新的版本需要先将自带的低版本卸载。

检查操作系统中是否安装了mysql的命令:rpm -qa |grep -i mysql卸载mysql的命令:rpm -e mysqlXXXX或者使用yum -remove mysqlXXX来删除,这样可以避免卸载过程中由于各个包之间的依赖造成卸载停止2.创建mysql用户和组groupadd mysqluseradd -g mysqlmysqlusermod -d /home/mysql mysql3.将MySQL-Cluster上传到/home/mysql/目录下,开始安装MySQL-Cluster。

《MySQL数据库运维与管理》项目8 搭建及运维MySQL Cluster

《MySQL数据库运维与管理》项目8 搭建及运维MySQL Cluster
统计事件。其具有统计性质,且提供事务和其他操作的数量、各个节点发送或接收的数 据量及 内存使用情况等信息 检查点事件。日志消息与检查点相关联 重启节点事件。事件与节点重启过程的成功或失败有关 连接事件。事件与集群节点之间的连接相关联 架构事件。事件与 NDB Cluster 模式操作有关 单用户事件。事件与进入和退出单用户模式相关
日志文件保存已提交的事务记录。
项目知识导入
五、 Cluster 的数据恢复
(1)启动管理节点: shell>/cluster80/bin/ndb_mgmd -f /cluster80/config.ini --reload
(2)启动数据节点: shell>/cl的任务手册。
项目任务分解
任务8-2:在 Windows 系统下建立并管理 MySQL Cluster
任务说明 本任务要求在 Windows 系统下建立并管理 MySQL Cluster。为了方便学习, 本任务中将 3
个节点部署在同一台服务器上。 任务实施过程
详见书上的任务手册。
项目任务分解
素养目标 安全防范意识 稳定、高效意识
思政目标
民族自豪感 国产软件振兴的使命担当
项目8 搭建及运维MySQL Cluster
项目场景:
天天电器商场的数据量越来越大,对 MySQL 的并发访问要求进一步提高。以前的大部分高可 用 方案通常存在一定的缺陷,例如 MySQL Replication 方案中的主库是否存活的检测需要一定时 间, 如果需要主从切换也需要一定的时间。随着 MySQL Cluster 的广泛应用,数据库在性能和高 可用性 方面得到了很大的提高。因此信息部门组织员工学习 MySQL Cluster,尝试利用现有的低 成本硬件横 向提高数据库的并发访问能力。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在为某证券公司设计其OA架构时,初期客户是30万用户在线;然而在项目实施中,客户又提出50万用户同时在线的需求,而且都有写的需求;这样初始的设计master-master-slave,读写分离满足不了客户的要求,所以我们打算采用Mysql Cluster方案;MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。

它采用了NDB Cluster 存储引擎,允许在1个Cluster中运行多个MySQL服务器。

在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。

一、MySQL Cluster概述MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。

通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。

此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。

所有的这些节点构成一个完成的MySQL集群体系。

数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。

应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。

通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性能和可缩放性的 Cluster 数据管理。

二、MySQL Cluster 基本概念“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。

MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。

目前,MySQL Cluster的 Cluster部分可独立于MySQL服务器进行配置。

在MySQL Cluster中, Cluster的每个部分被视为1个节点。

管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。

由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。

MGM节点是用命令“ndb_mgmd”启动的。

数据节点:这类节点用于保存 Cluster的数据。

数据节点的数目与副本的数目相关,是片段的倍数。

例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。

不过没有必要设置多个副本。

数据节点是用命令“ndbd”启动的。

SQL节点:这是用来访问 Cluster数据的节点。

对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。

通常,SQL节点是使用命令“mysql d –ndbcluster”启动的,或将“ndbcluster”添加到“f”后使用“mysqld”启动。

注释:在很多情况下,术语“节点”用于指计算机,但在讨论MySQL Cluster 时,它表示的是进程。

在单台计算机上可以有任意数目的节点,为此,我们采用术语“ Cluster主机”。

管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。

Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。

当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。

此外,可以有任意数目的 Cluster客户端进程或应用程序。

它们分为两种类型:标准MySQL客户端:对于MySQL Cluster,它们与标准的(非 Cluster类)MySQL没有区别。

换句话讲,能够从用PHP、Perl、C、C++、Java、Python、Ruby 等编写的现有MySQL应用程序访问MySQL Cluster。

管理客户端:这类客户端与管理服务器相连,并提供了启动和停止节点、启动和停止消息跟踪(仅调试版本)、显示节点版本和状态、启动和停止备份等的命令。

三、开始准备1、准备服务器现在,我们计划建立有5个节点的MySQL CLuster体系,因此需要用到5台机器,分别做如下用途:2、注意事项及其他每个节点的操作系统都是Linux,下面的描述中将使用主机名,不再使用IP 地址来表示。

由于MySQL Cluster采用TCP/IP方式连接,并且节点之间的数据传输没有加密,因此这个体系最好只在单独的子网中运行,并且考虑到传输的速率,强烈建议不要跨越公网使用这个体系。

为了测试环境的准备性,我这里所有hostname相关我全部写成ip,所需软件我推荐用mysql-max-5.0.24,下载地址为(已测)/_/?q=mysql-max-5.0.24-linux-i686.tar.gz四、开始安装1、假定条件在每个节点计算机上都采用mysql 用户来运行Cluster,因此执行如下命令添加相关用户(如果已经存在则略过,且用root用户执行):root# /usr/sbin/groupadd mysqlroot# /usr/sbin/useradd -g mysql mysql假设已经下载了mysql可直接使用的二进制安装包,且放在 /root 下了。

2、SQL节点和存储节点(NDB节点)安装(即4个机器重复执行以下步骤)root# cd /root/root# tar zxf mysql-max-5.0.24-linux-i686.tar.gzroot# mv mysql-max-5.0.24-linux-i686 /usr/local/mysql/root# cd /usr/local/mysql/root# ./configure --prefix=/usr/local/mysqlroot# ./scripts/mysql_install_dbroot# chown -R mysql:mysql /usr/local/mysql/3、配置SQL节点root# vim /etc/f然后输入如下内容:[mysqld]basedir = /usr/local/mysql/ datadir = /usr/local/mysql/data/ user = mysqlport = 3306socket = /tmp/mysql.sock ndbclusterndb-connectstring=192.168.5.101[mysql_cluster]ndb-connectstring=192.168.5.1014、配置存储节点(NDB节点)root# vi /etc/f然后输入如下内容:[mysqld]ndbclusterndb-connectstring=192.168.5.101[mysql_cluster]ndb-connectstring=192.168.51015、安装管理节点root# cd /root/root# tar zxf mysql-max-5.0.24-linux-i686.tar.gzroot# mkdir /usr/local/mysql/root# mkdir /usr/local/mysql/data/root# cd mysql-max-5.0.24-linux-i686/bin/ root# cp ndb_mgm* /usr/local/mysqlroot# chown -R mysql:mysql /usr/local/mysql 6、配置管理节点root# vi /usr/local/mysql/config.ini然后输入如下内容:[ndbd default]NoOfReplicas=1[tcp default]portnumber=3306#设置管理节点服务器[ndb_mgmd]hostname=192.168.5.101#MGM上保存日志的目录datadir=/usr/local/mysql/data/#设置存储节点服务器(NDB节点)[ndbd]hostname=192.168.5.102datadir=/usr/local/mysql/data/#第二个NDB节点[ndbd]hostname=192.168.5.103datadir=/usr/local/mysql/data/#设置SQL节点服务器[mysqld]hostname=192.168.5.104#第二个SQL节点[mysqld]hostname=192.168.5.105注释: [tcp default] 这项写成portnumber=3306,简朝阳大哥的书上这点有误。

五、启动MySQL Cluster较为合理的启动顺序是,首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器:在管理节点服务器上,执行以下命令启动MGM节点进程:root# /usr/local/mysql/ndb_mgmd -f /usr/local/mysql/config.ini必须用参数“-f”或“--config-file”告诉 ndb_mgm 配置文件所在位置,默认是在ndb_mgmd相同目录下。

在每台存储节点服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:root# /usr/local/mysql/bin/ndbd --initial注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。

因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。

如果不是第一次启动,直接运行如下命令即可:root# /usr/local/mysql/bin/ndbd最后,运行以下命令启动SQL节点服务器:root# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/f &如果一切顺利,也就是启动过程中没有任何错误信息出现,那么就在管理节点服务器上运行如下命令:root# /usr/local/mysql/ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showCluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=*********.5.102(Version:5.0.24,Nodegroup:0,Master)id=*********.5.103(Version:5.0.24,Nodegroup:1)[ndb_mgmd(MGM)] 1 node(s)id=*********.5.101(Version:5.0.24)[mysqld(API)] 2 node(s)id=*********.5.104(Version:5.0.24)44id=*********.5.105(Version:5.0.24)六、环境测试与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。

相关文档
最新文档