文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[原创]Mysql Cluster(Mysql 集群)安装配置

[原创]Mysql Cluster(Mysql 集群)安装配置

时间:2007-01-30  来源:shiyaowen

Mysql Cluster(Mysql 集群)安装配置

作者:大蚊子

一、MySQL Cluster概述

MySQL丛集是一种技术,该技术允许在无共享的系统中部署「內存中」资料库的丛集。通过无共享体系结构,系统能夠使用廉价的硬件,而且对软硬件无特殊要求。此外,由於每个组件有自己的內存和磁盘,不存在单鲇故障。

MySQL丛集将标準的MySQL伺服器与名为NDB的「內存中」丛集式储存引擎集成了起来。在我们的文档中,术语NDB指的是与储存引擎相关的设置部分,而术语「MySQL丛集」指的是MySQL和NDB储存引擎的组合。

二、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节点是使用命令“mysqld –ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“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。

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

三、安装配置需求

软硬件配置

操作系统CENTOS 4.3

三台服务器

218.107.243.2(网通)

60.173.7.35(电信)

60.173.7.2(电信)

项目要求

实现218.107.243.2(网通)与60.173.7.35(电信)两台服务器的负载均衡,

60.173.7.2(电信)为管理节点

节点

IP地址

管理(GMG)节点C

60.173.7.2

数据(NDBD)节点A

60.173.7.35 (master)

数据(NDBD)节点B

218.107.243.2

后续.........................................................................................

作者:大蚊子

在节点A,B安装 MYSQL

http://www.mysql.com下载mysql-max-5.0.27-linux-i686-glibc23.tar.gz

这里一宝要注意版本号,因为我在安装的时候,碰到了不少问题,强烈推荐使用max版本

在节点A,B上各执行如下的操作

shell>cd /server/soft

shell>wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.27-linux-i686-glibc23.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/

shell> groupadd mysql shell> useradd -g mysql mysql shell>tar -C /server -xzvf mysql-max-5.0.27-linux-i686-glibc23.tar.gz shell>cd /server shell>mv mysql-max-5.0.27-linux-i686-glibc23 mysql shell>cd mysql shell>scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> cp support-files/mysql.server /etc/rc.d/init.d/ shell> chmod +x /etc/rc.d/init.d/mysql.server shell> chkconfig --add mysql.server 在管理节点C上执行如下命令

shell>cd /server/soft

shell>wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.27-linux-i686-glibc23.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/

shell>tar xzvf mysql-max-5.0.27-linux-i686-glibc23.tar.gz

shell>cd mysql-max-5.0.27-linux-i686-glibc23

shell>cp bin/ndb_mgm* /usr/local/bin

shell> cd /usr/local/bin shell> chmod +x ndb_mgm*

四.配置节点A,B

节点A执行以下命令

shell> vi /etc/my.cnf #增加内容如下  # options for mysqld process: [MYSQLD] ndbcluster # run NDB engine ndb-connectstring=60.173.7.2 # location of MGM node # options for ndbd process: [MYSQL_CLUSTER] ndb-connectstring=60.173.7.2 # location of MGM node 在节点B执行如下命令 shell> vi /etc/my.cnf #增加内容如下   options for mysqld process: [MYSQLD] ndbcluster # run NDB engine ndb-connectstring=60.173.7.2 # location of MGM node # Options for ndbd process: [MYSQL_CLUSTER] ndb-connectstring=60.173.7.2 # location of MGM node 配置管理节点C 在节点C执行如下的命令 shell> mkdir /var/lib/mysql-cluster shell> cd /var/lib/mysql-cluster shell> vi config.ini 增加内容如下: [NDBD DEFAULT] NoOfReplicas=2 # Number of replicas [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] hostname=60.173.7.2 # Hostname or IP address of MGM node datadir=/var/lib/mysql-cluster # Directory for MGM node log files # Options for data node "A": [NDBD]  # (one [NDBD] section per data node) hostname=60.173.7.35 # Hostname or IP address datadir=/server/mysql/data # Directory for this data node's data files # Options for data node "B": [NDBD] hostname=218.107.243.2 # Hostname or IP address datadir=/server/mysql/data # Directory for this data node's data files # SQL node options: [MYSQLD] [MYSQLD] 五、启动Mysql集群 这里有一个较为合理的启动顺序,先启动节点管理C,然后启动存储节点服务器A,B,如果有sql节点,放到最后启动。 在节点C执行如下命令启动 shell>/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini 细节提示:必须用参数“-f”或“--config-file”告诉 ndb_mgm 配置文件所在位置,默认是在ndb_mgmd相同目录下。 在节点A,B执行如下命令启动 shell>/server/mysql/bin/ndbd --initial 细节提示:参数--initial参数仅在ndbd首次启动,或在备份/恢复数据或者配置文件发生变化后重启ndbd时才使用--initial参数,如果不是第一次启动,可以不加--initial参数 最后启动mysql,这里相当于启动了节点服务器 shell>/server/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf & 六、Mysql集群测试 在节点C上运行如下命令 shell>/usr/local/bin/ndb_mgm 显示信息如下: Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @60.173.7.35 (Version: 5.0.27, Nodegroup: 0, Master) id=3 @218.107.243.2 (Version: 5.0.27, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @60.173.7.2 (Version: 5.0.27) [mysqld(API)] 2 node(s) id=4 @60.173.7.35 (Version: 5.0.27) id=5 @218.107.243.2 (Version: 5.0.27) 为了测试是否能够实现同步,在节点A上执行如下命令 shell>/server/mysql/bin/mysql -uroot test mysql> mysql>CREATE TABLE `wcity` ( `ID` int(11) NOT NULL auto_increment, `Name` char(35) NOT NULL default '', `CountryCode` char(3) NOT NULL default '', `District` char(20) NOT NULL default '', `Population` int(11) NOT NULL default '0', PRIMARY KEY (`ID`) ) ENGINE=NDBCLUSTER DEFAULT CHARSET=latin1; mysql>INSERT INTO `wcity` VALUES (1,'shanghai','aisan','china',1780000); 然后在节点B上查看 shell>/server/mysql/bin/mysql -uroot test mysql>select * from wcity; 如果你能看到刚才加入的那条信息,应该就没问题了.......... 
参考:
http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html
http://imysql.cn/docs/MySQL_51_zh/mysql_51.html
http://imysql.cn/?q=node/96
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-multi-install.html
http://fanqiang.chinaunix.net/db/mysql/2006-05-31/4372.shtml
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载