Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1380250
  • 博文数量: 247
  • 博客积分: 10147
  • 博客等级: 上将
  • 技术积分: 2776
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-24 15:18
文章分类

全部博文(247)

文章存档

2013年(11)

2012年(3)

2011年(20)

2010年(35)

2009年(91)

2008年(87)

我的朋友

分类: Mysql/postgreSQL

2010-07-31 16:17:51

  --- mysql 在线参考手册
 
******************************************************************
 
一:下载安装包
Mysqlcluster的rpm下载地址http://dev.mysql.com/downloads/cluster
包列表:
  MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-clusterj-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-debuginfo-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-devel-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-embedded-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-extra-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-shared-7.1.4b-1.rhel5.x86_64.rpm
  MySQL-Cluster-gpl-test-7.1.4b-1.rhel5.x86_64.rpm
 
 
实际安装时要用到其中的5个包即可,(其他包还不干什么用的?)
管理节点:
  MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64.rpm (ndb_mgmd管理服务)
  MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm (ndb_mgm 管理服务客户端)
存储节点:
  MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64.rpm (ndbd)
SQL节点:(服务节点)
  MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm  (服务端)
  MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64.rpm  (客户端)
 
二:安装 & 简单配置
 计划建立有5个节点的MySQL CLuster体系,因此需要用到5台机器,分别做如下用途:
节点(用途) IP地址(主机名)
-----------------------------------------------
管理节点(MGM) 192.168.0.1(db1)
数据节点1(NDBD1)    192.168.0.2(db2)
数据节点2(NDBD2)    192.168.0.3(db3)
SQL节点1(SQL1) 192.168.0.4(db4)
SQL节点2(SQL2)  192.168.0.5(db5)
 
1.安装准备
 a.新建用户mysql ,组mysql ,使用此mysql账号进行安装;
 b.若安装过程中提示权限不足,可使用root将权限放开
    (注意:权限放开可能会导致系统用户无法登录系统);
 c.若安装时提示“MySQL conflicts with mysql-xx ”,可能是系统已安装旧版本。
   rpm -qa mysql or  rpm -qa | grep mysql  -- 查询旧版本安装包
   rpm -e mysql-4.1.20-2.RHEL4.1.i386 -- 卸载旧版本
   rpm -e mysql-4.1.20-2.RHEL4.1.i386 --nodeps  -- 卸载时报错,强制卸载
   rpm -e --allmatches mysqlclient10-3.23.58-4.RHEL4.1  -- 卸载时报错(specifies multiple packages)
 d.查询包装到哪了
   rpm -ql MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm 
 
e.不想rpm安装,直接解压后是否可用??
  rpm2cpio kchmviewer-3.1-1.el5.5.x86_64.rpm | cpio -div
 
2.安装管理节点
 a.安装
 rpm -ivh MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64.rpm
 # 安装后文件
  rpm -ql MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64
  /usr/sbin/ndb_mgmd
  /usr/share/man/man8/ndb_mgmd.8.gz
 rpm -ivh MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm 
 # 安装后文件
rpm -ql MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64
/usr/sbin/ndb_mgmd
/usr/share/man/man8/ndb_mgmd.8.gz
[root@aiwm152 manager_source]# rpm -ql MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm
package MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm is not installed

b.配置
 新建配置文件config.ini ,路径可随便指定,启动服务端时指定路径即可。一般和服务端程序放在同一目录。
 增加常用配置项:
 vi /usr/sbin/config.ini
 [NDBD DEFAULT]
 NoOfReplicas=2
 [NDB_MGMD]
 ID=1
 hostname=192.168.0.1
 datadir=/var/lib/mysql/data_log
 [NDBD]
 ID=2
 hostname=192.168.0.2
 datadir=/var/lib/mysql/data_4
 [NDBD]
 ID=3
 hostname=192.168.0.3
 datadir=/var/lib/mysql/data_5
 [MYSQLD]
 ID=4
 hostname=192.168.0.4
 [MYSQLD]
 ID=5
 hostname=192.168.0.5
c. 启动服务端
   ndb_mgmd -f /usr/sbin/config.ini --configdir=.
d. 通过客户端查看 cluster(此时其他节点均未启动)
ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2 (not connected, accepting connect from 192.168.0.2)
id=3 (not connected, accepting connect from 192.168.0.3)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.1  (mysql-5.1.44 ndb-7.1.4)
[mysqld(API)]   2 node(s)
id=4    (not connected, accepting connect from 192.168.0.4)
id=5    (not connected, accepting connect from 192.168.0.5)
 
3.安装存储节点
a.安装
rpm -ivh MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64.rpm
 # 安装后文件
rpm -ql MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64
/usr/sbin/ndbd
/usr/sbin/ndbmtd
/usr/share/man/man8/ndbd.8.gz
/usr/share/man/man8/ndbmtd.8.gz
b.配置
新建配置文件my.cnf ,路径可随便指定,启动服务端时指定路径即可。一般放是/etc/my.cnf,启动时无需指定目录。
 增加常用配置项:
vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.1
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.1
#连接串指向管理节点
c.启动
# 直接启动
ndbd
# 指定配置文件
ndbd --defaults-file=/etc/my.cnf
# 第一次启动时使用,因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件
ndbd --initial
d.安装另一台存储节点,启动后,查看管理节点:
ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.0.2  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)
id=3    @192.168.0.3  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.1  (mysql-5.1.44 ndb-7.1.4)
[mysqld(API)]   2 node(s)
id=4    (not connected, accepting connect from 192.168.0.4)
id=5    (not connected, accepting connect from 192.168.0.5)

3.安装SQL节点
a. 安装
  rpm -ivh MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm
 # 安装后文件
rpm -ql MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64
/etc/init.d/mysql
/etc/logrotate.d/mysql
/etc/my.cnf
/etc/mysqlmanager.passwd
/usr/bin/innochecksum
......................
/usr/lib64/mysql/mysqld-debug.sym
/usr/lib64/mysql/mysqld.sym
/usr/sbin/mysqld
/usr/sbin/mysqld-debug
/usr/sbin/mysqlmanager
/usr/sbin/rcmysql
..........................
/usr/share/mysql/slovak/errmsg.sys
/usr/share/mysql/spanish/errmsg.sys
/usr/share/mysql/swedish/errmsg.sys
/usr/share/mysql/ukrainian/errmsg.sys
 rpm -ivh MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64.rpm
 # 安装后文件
rpm -ql MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64
/usr/bin/msql2mysql
/usr/bin/mysql
...............................
/usr/share/man/man1/mysqlshow.1.gz
/usr/share/man/man1/mysqlslap.1.gz
 
b.配置
复制一封配置文件/usr/share/mysql/my-large.cnf 到 /etc/my.cnf
在原来的基础上,增加配置项
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.1
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.1
 
c.启动
SQL节点和普通的MySQL类似,启动指令如下:
./mysqld_safe --defaults-file=/etc/my.cnf &
 
d.安装另一个SQL节点,启动后查看管理节点
ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.0.2  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)
id=3    @192.168.0.3  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.1  (mysql-5.1.44 ndb-7.1.4)
[mysqld(API)]   2 node(s)
id=4    @192.168.0.4  (mysql-5.1.44 ndb-7.1.4)
id=5    @192.168.0.5  (mysql-5.1.44 ndb-7.1.4)
 
三: 测试
 
与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
  • 表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。
  • 另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。

下面是一个例子:
在SQL_1(192.168.0.4)上,创建数据表,插入数据:

mysql -uroot test
mysql> create table city(
mysql> id mediumint unsigned not null auto_increment primary key,
mysql> name varchar(20) not null default ''
mysql> ) engine = ndbcluster default charset utf8;
mysql> insert into city values(1, 'city1');
mysql> insert into city values(2, 'city2');

在SQL_2(192.168.0.5)上,查询数据:

mysql -uroot test
mysql> select * from city;
+-----------+
|id | name  |
+-----------+
|1  | city1 |
+-----------+
|2  | city2 |
+-----------+
之前设置的参数:config.ini | [NDBD DEFAULT]  NoOfReplicas=2 # 2 表示两个副本

停止存储节点1(192.168.0.2),查询正常。

mysql -uroot test
mysql> select * from city;
+-----------+
|id | name  |
+-----------+
|1  | city1 |
+-----------+
|2  | city2 |
+-----------+

四:安全关闭
要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:

root# /usr/local/mysql/ndb_mgm -e shutdown
运行以下命令关闭SQL节点的mysqld服务:
root# /usr/local/mysql/bin/mysqladmin -uroot shutdown
五:增加存储节点?
 增加时有点奇怪,ndbd始终启动不了,后来单独启动新增的节点,启动ok后,再配置所有ndbd一起启动。就可以了
六:注意事项
1:如果发现关闭一台机器的ndbd进程,另一台机器的ndbd的进程也关闭,则需要修改参数NoOfReplicas。
2:ndbd –initial 不能同时在所有数据节点机器上执行,如执行,会删除所有数据
3:可以像操作非簇类型的数据库那样,操作mysqld节点
4:每次修改config.ini文件,重启ndb_mgmd时,需要删除/mysql-cluster/文件下的ndb_1_config.bin.1文件,因为他默认调用此文件
5:NDB簇不支持自动发现数据库的功能,这点很重要,一旦在一个数据节点上创建了世界(world)数据库和它的表,在簇中的每个SQL节点上还需要发出命令CREATE DATABASE world,后跟FLUSH TABLES。这样,节点就能识别数据库并读取其表定义。
6.启动顺序:管理节点--数据节点--SQL节点
 
 
 
阅读(2104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~