mysql集群整理版.docx
《mysql集群整理版.docx》由会员分享,可在线阅读,更多相关《mysql集群整理版.docx(21页珍藏版)》请在冰豆网上搜索。
mysql集群整理版
mysql集群整理版
mysql集群架构主要分为:
数据节点(ndbd),管理节点(mgmd),服务节点(mysqld)
附件是mysql集群整体架构图
1.下载:
可以从这里下载mysql-5.0.45-linux-i686.tar.gz
此包里已经包含了mysql-max包(mysql集群需要安装mysql-max包)。
2.解压:
tar-zxvfapache-tomcat-5.5.25.tar.gz
下载的这个.tar.gz是编译后的文件,只需要解压即可。
3.配置
比如解压后的文件都放在:
/home/mahaibo/mysql-5.0.45-linux-i686目录下。
数据节点(ndbd),管理节点(mgmd),服务节点(mysqld)三个启动顺序是
mgmd--->ndbd--->mysqld
可以在同一台电脑上做个简单的配置和测试。
以在同一台电脑上不同端口为例。
实际中肯定是需要分布在不同的服务器上的。
A:
配置mgmd,并启动
在/home/mahaibo/mysql-5.0.45-linux-i686建立一个f和mgmd的数据目录mgmddata,编辑f文件:
#Optionsaffectingndbdprocessesonalldatanodes:
[NDBDDEFAULT]
NoOfReplicas=1#Numberofreplicas
DataMemory=80M#Howmuchmemorytoallocatefordatastorage
IndexMemory=18M#Howmuchmemorytoallocateforindexstorage
#ForDataMemoryandIndexMemory,wehaveusedthe
#defaultvalues.Sincethe"world"databasetakesup
#onlyabout500KB,thisshouldbemorethanenoughfor
#thisexampleClustersetup.
#TCP/IPoptions:
[TCPDEFAULT]
#portnumber=2202#Thisthedefault;however,youcanuseany
#portthatisfreeforallthehostsincluster
#Note:
ItisrecommendedbeginningwithMySQL5.0that
#youdonotspecifytheportnumberatallandsimplyallow
#thedefaultvaluetobeusedinstead
#Managementprocessoptions:
[NDB_MGMD]
hostname=127.0.0.1#HostnameorIPaddressofMGMnode,mgmd'shostname
datadir=/home/mahaibo/mysql-5.0.45-linux-i686/mgmddata#DirectoryforMGMnodelogfiles
PortNumber=2203#defaultvalue:
1186
#Optionsfordatanode"A":
[NDBD]
#(one[NDBD]sectionperdatanode)
hostname=127.0.0.1#HostnameorIPaddress,allowtoaccess
datadir=/home/mahaibo/mysql-5.0.45-linux-i686/mgmddata#Directoryforthisdatanode'sdatafiles
#Optionsfordatanode"B":
[NDBD]
hostname=127.0.0.1#HostnameorIPaddress
datadir=/home/mahaibo/mysql-5.0.45-linux-i686/mgmddata#Directoryforthisdatanode'sdatafiles
[MYSQLD]
hostname=127.0.0.1#HostnameorIPaddress
#(additionalmysqldconnectionscanbe
#specifiedforthisnodeforvarious
#purposessuchasrunningndb_restore)
可以看到配置了2个数据节点ndbd,也就是说改管理节点可以管理小于或等于2个数据节点。
管理节点mgmd的端口为2203。
启动mgmd服务:
bin/ndb_mgmd-ff
启动后,登录mgmd的客户端mgm可以查看具体信息:
bin/ndb_mgm 127.0.0.1 2203 //因为mgmd服务用的端口是2203,所以要通过该端口链接
[mahaibo@clientmysql-5.0.45-linux-i686]$bin/ndb_mgm127.0.0.12203
--NDBCluster--ManagementClient--
ndb_mgm>show
ConnectedtoManagementServerat:
127.0.0.1:
2203
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2(notconnected,acceptingconnectfrom127.0.0.1)
id=3(notconnected,acceptingconnectfrom127.0.0.1)
[ndb_mgmd(MGM)]1node(s)
id=1@127.0.0.1(Version:
5.0.45)
[mysqld(API)]1node(s)
id=4(notconnected,acceptingconnectfrom127.0.0.1)
ndb_mgm>
可以看到ndbd和mysqld都是notconnected状态,因为这2个服务都还没有启动。
B:
启动数据节点(ndbd)
以启动2个数据节点为例。
分别建立f,ndbd1data数据目录
编辑f:
[mysqld]
DataDir=/home/mahaibo/mysql-5.0.45-linux-i686/ndbd1data//数据目录
skip-locking
key_buffer=16M
max_allowed_packet=1M
table_cache=64
sort_buffer_size=512K
net_buffer_length=8K
read_buffer_size=256K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
ndbcluster
ndb-connectstring=127.0.0.1:
2203
[mysql_cluster]
ndb-connectstring=127.0.0.1:
2203//连接mgmd服务的ip与端口
启动第一个ndbd数据节点:
bin/ndbd --defaults-file=f –initial
第一次启动需要加--initial参数。
第2个数据节点(ndbd)也需要做同样的配置和启动操作。
分别建立f,ndbd2data数据目录
f的配置和f的配置几乎是一样的,只是数据目录不一样。
启动第2个数据节点ndbd:
bin/ndbd--defaults-file=f--initial
这时,如果登录到mgmd管理节点的客户端mgm,
[mahaibo@clientmysql-5.0.45-linux-i686]$bin/ndb_mgm127.0.0.12203
--NDBCluster--ManagementClient--
ndb_mgm>show
ConnectedtoManagementServerat:
127.0.0.1:
2203
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@127.0.0.1(Version:
5.0.45,Nodegroup:
0,Master)
id=3@127.0.0.1(Version:
5.0.45,Nodegroup:
1)
[ndb_mgmd(MGM)]1node(s)
id=1@127.0.0.1(Version:
5.0.45)
[mysqld(API)]1node(s)
id=4(notconnected,acceptingconnectfrom127.0.0.1)
ndb_mgm>
可以看到ndbd的2个节点都是连接状态了,而不是notconnected状态了,但是mysqld还是notconnected状态。
C:
启动mysqld服务。
打开mysql-5.0.45-linux-i686下的configure文件,可以看到其内容为:
#!
/bin/sh
iftest!
-x./scripts/mysql_install_db
then
echo"Ididn'tfindthescript'./scripts/mysql_install_db'."
echo"Pleaseexecutethisscriptinthemysqldistributiondirectory!
"
exit1;
fi
echo"NOTE:
ThisisaMySQLbinarydistribution.It'sreadytorun,youdon't"
echo"needtoconfigureit!
"
echo""
echo"Tohelpyouabit,IamnowgoingtocreatetheneededMySQLdatabases"
echo"andstarttheMySQLserverforyou.Ifyourunintoanytrouble,please"
echo"consulttheMySQLmanual,thatyoucanfindintheDocsdirectory."
echo""
./scripts/mysql_install_db--no-defaults
if[$?
=0]
then
echo"Startingthemysqldserver.Youcantestthatitisupandrunning"
echo"withthecommand:
"
echo"./bin/mysqladminversion"
./bin/mysqld_safe--no-defaults默认会去根据/etc/f这个配置文件进行启动,并且生成的sock端口会放在/tmp/mysql.sock
fi
可以看到:
它实际是上先执行./scripts/mysql_install_db,然后在去通过./bin/mysqld_safe去启动mysql服务的,用的参数是--no-defaults,也就是默认会去根据/etc/f这个配置文件进行启动,并且生成的sock端口会放在/tmp/mysql.sock.
如果想让mysql启动时调用自己指定的f的位置。
可以把configure文件内容里的./bin/mysqld_safe--no-defaults&修改为:
./bin/mysqld_safe --defaults-file=f & #当前目录下的f,也可以自己指定绝对路径
建立f和数据目录data3
编辑f:
[mysqld]
port=3306
socket=/home/mahaibo/mysql-5.0.45-linux-i686/mysql3.sock
datadir=/home/mahaibo/mysql-5.0.45-linux-i686/data3
ndbcluster#runNDBengine
ndb-connectstring=127.0.0.1:
2203#locationofMGMnode
skip-locking
key_buffer=16M
max_allowed_packet=1M
table_cache=64
sort_buffer_size=512K
net_buffer_length=8K
read_buffer_size=256K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
启动mysqld服务:
./configure3
如果这时在登录到mgmd管理节点的客户端mgm,
[mahaibo@clientmysql-5.0.45-linux-i686]$bin/ndb_mgm127.0.0.12203
--NDBCluster--ManagementClient--
ndb_mgm>show
ConnectedtoManagementServerat:
127.0.0.1:
2203
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@127.0.0.1(Version:
5.0.45,Nodegroup:
0,Master)
id=3@127.0.0.1(Version:
5.0.45,Nodegroup:
1)
[ndb_mgmd(MGM)]1node(s)
id=1@127.0.0.1(Version:
5.0.45)
[mysqld(API)]1node(s)
id=4@127.0.0.1(Version:
5.0.45)
可以看到mysqld也是连接状态了
登录到mysqld的客户端,然后
show variables like 'have%';
可以看到
have_ndbcluster为YES,说明ndbcluster引擎已经打开。
可以建立一个ndbcluster引擎的表测试下看是否成功
createtabletable1(aaint)engine=ndbcluster;
insertintotable1values(11);
insertintotable1values(22);
都没有问题。
showcreatetabletable1;
可以看到:
mysql>showcreatetabletable1;
+--------+------------------------------------------------------------------------------------------------+
|Table|CreateTable|
+--------+------------------------------------------------------------------------------------------------+
|table1|CREATETABLE`table1`(
`aa`int(11)defaultNULL
)ENGINE=ndbclusterDEFAULTCHARSET=latin1|
+--------+------------------------------------------------------------------------------------------------+
1rowinset(0.00sec)
以上只是记录的配置流水账过程,也许有些说的不对的地方,请多指点。
具体项目应用还需要具体参考mysql文档进行配置
mysqlcluster双机集群部署(转)
本帖转自转载请注明出处
mysqlcluster双机集群部署
一、介绍
如何安装配置基于2台服务器的MySQL集群。
并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。
加下后续的(keepalived+lvs+mysqlcluster文档),可以实现Mysql双机的高可用及负载均衡。
安装环境及软件包:
vmwareworkstation5.5.3
mysql-5.2.3-falcon-alpha.tar.gz
gentoo2006.1
Server1:
192.168.1.111
Server2:
192.168.1.110
二、在Server1和Server2上安装MySQL
以下步骤需要在Server1和Server2上各做一次
#mvmysql-5.2.3-falcon-alpha.tar.gz/tmp/package
#cd/tmp/package
#groupaddmysql
#useradd-gmysqlmysql
#tar-zxvfmysql-5.2.3-falcon-alpha.tar.gz
#rm-fmysql-5.2.3-falcon-alpha.tar.gz
#mvmysql-5.2.3-falcon-alphamysql
#cdmysql
#./configure--prefix=/usr--with-extra-charsets=complex--with-plugin-ndbcluster--with-plugin-partition--with-plugin-innobase
#make&makeinstall
#ln-s/usr/libexec/ndbd/usr/bin
#ln-s/usr/libexec/ndb_mgmd/usr/bin
#ln-s/usr/libexec/ndb_cpcd/usr/bin
#ln-s/usr/libexec/mysqld/usr/bin
#ln-s/usr/libexec/mysqlmanager/usr/bin
#mysql_install_db--user=mysql
三、安装并配置节点
以下步骤需要在Server1和Server2上各做一次
1.配置管理节点配置文件:
#mkdir/var/lib/mysql-cluster
#cd/var/lib/mysql-cluster
#viconfig.ini
在config.ini中添加如下内容:
[ndbddefault]
NoOfReplicas=2
MaxNoOfConcurrentOperations=10000
DataMemory=80M
IndexMemory=24M
TimeBetweenWatchDogCheck=30000
DataDir=/var/lib/mysql-cluster
MaxNoOfOrderedIndexes=512
StartPartialTimeout=100
HeartbeatIntervalDbDb=5000
[ndb_mgmddefault]
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
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
Arbitrati=1
Arbitrati(非常重要,全靠有它,才可以形成仲裁竞争,从而当另一个机子当了时,此机还可以有知道partion完整的节点)
[tcpdefault]
PortNumber=63132
2.配置通用f文件
mysqld及ndbd,ndb_mgmd均使用此文件.
#vi/etc/f
在f中添加如下内容:
default-storage-engine=ndbcluster避免在sql语句中还要加入ENGINE=NDBCLUSTER。
ndbcluster
ndb-c.168.1.111,192.168.1.110
[ndbd]
connect-string=192.168.1.111,192.168.1.110
[ndb_mgm]
connect-string=192.168.1.111,192.168.1.110
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
ndb-connectstring=192.168.1.111,192.168.1.110
保存退出后,启动管理节点Server1为:
#ndb_mgmd--ndb_nodeid=1
启动管理节点Server2为:
#ndb_mgmd--ndb_nodeid=2
注:
在启动时有一个警告提示
Clusterconfigurationwarning:
arbitratorwithid1anddbnodewithid3onsamehost192.168.