阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL Cluster实现向正在运行的数据库中联机添加节点和更新内容

133次阅读
没有评论

共计 4245 个字符,预计需要花费 11 分钟才能阅读完成。

我的 MySQL-Cluster 集群结构是 1 台服务器单独作为管理节点,两台服务器作为数据节点和 mysql 节点

配置文件如下:

管理节点配置文件 config.ini

[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 500000
MaxNoOfLocalOperations=500000
MaxNoOfConcurrentTransactions=500000
MaxNoOfConcurrentIndexOperations=50000
# Amount of memory required=(SizeofDatabase * NumberOfReplicas * 1.1) / NumberOfDataNodes
DataMemory= 49152M
IndexMemory= 6144M
TimeBetweenWatchDogCheck= 30000
DataDir=/var/lib/mysql/data
MaxNoOfAttributes=500000
MaxNoOfTables=1000
MaxNoOfOrderedIndexes= 512
#StartPartialTimeout=100
#StartPartitionedTimeout=100
#ArbitrationTimeout=5000
#MaxNoOfFiredTriggers=8000
#TransactionBufferMemory=5M
TransactionDeadlockDetectionTimeout=90000
HeartbeatIntervalDbDb=5000

#StopOnError=1

[ndb_mgmd default]
DataDir=/var/lib/mysql/data
[ndb_mgmd]
NodeId=1
HostName= 172.16.1.78
[ndbd]
NodeId= 2
HostName= 172.16.1.74
[ndbd]
NodeId= 3
HostName= 172.16.1.75
[mysqld]
ArbitrationRank=2
[mysqld]
ArbitrationRank=2
[mysqld]
[mysqld]
[mysqld]
[mysqld]
[tcp default]
portnumber=2279

ndb 节点和 mysql 节点的配置文件 my.cnf

[mysqld]
datadir=/var/lib/mysql/data/
socket=/var/lib/mysql/mysql.sock
lower_case_table_names=1
ndb_cluster_connection_pool=2
tmp_table_size=512M
max_heap_table_size=512M
max_connections =400
thread_stack=1M
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

default-storage-engine=ndbcluster
ndbcluster
ndb-connectstring=172.16.1.78
[ndbd]
connect-string=172.16.1.78
[ndb_mgm]
connect-string=172.16.1.78
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
[mysql_cluster]
ndb-connectstring=172.16.1.78
[mysql.server]
user=mysql
basedir=/usr
[mysqld_safe]
log-error=/var/log/mysqld.log

#pid-file=/var/run/mysqld/mysqld.pid
[mysql]
#socket=/usr/local/var/mysql.sock
[mysqladmin]
#socket=/usr/local/var/mysql.sock
[ndb_restore default]

第一步:确保数据节点和 mysql 节点运行正常,在管理节点服务器上杀掉管理节点的进程(此时只杀掉管理节点进程,不会对 NDB 节点和 mysql 节点产生影响,数据库功能一样可以进行运行)。

第二步:如果只是调整当前数据库的配置参数,可以直接修改 /var/lib/mysql-cluster/config.ini,修改完成之后保存,同时将 /usr/mysql-cluster/ 目录下的 config.ini.bin.1 文件删除掉,然后执行管理节点启动命令 ndb_mgmd -f /var/lib/mysql-cluster/config.ini 启动管理节点即可,已经修改的内容即可生效。

如果是需要添加数据节点或者 mysql 节点的话。同样需要先停掉管理节点的管理进程,原有的数据节点和 mysql 节无需进行任何操作。直接在管理服务器上修改 /var/lib/mysql-cluster/config.ini 文件。比如需要新增两台服务器 172.16.1.76、172.16.1.77 来做数据节点,先在两台服务器上安装 MySQL-Cluster-server-gpl-7.2.13-1.rhel5.i386.rpm, 然后修改管理节点上的 config.ini 文件为如下:

[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 500000
MaxNoOfLocalOperations=500000
MaxNoOfConcurrentTransactions=500000
MaxNoOfConcurrentIndexOperations=50000
# Amount of memory required=(SizeofDatabase * NumberOfReplicas * 1.1) / NumberOfDataNodes
DataMemory= 49152M
IndexMemory= 6144M
TimeBetweenWatchDogCheck= 30000
DataDir=/var/lib/mysql/data
MaxNoOfAttributes=500000
MaxNoOfTables=1000
MaxNoOfOrderedIndexes= 512
#StartPartialTimeout=100
#StartPartitionedTimeout=100
#ArbitrationTimeout=5000
#MaxNoOfFiredTriggers=8000
#TransactionBufferMemory=5M
TransactionDeadlockDetectionTimeout=90000
HeartbeatIntervalDbDb=5000

#StopOnError=1

[ndb_mgmd default]
DataDir=/var/lib/mysql/data
[ndb_mgmd]
NodeId=1
HostName= 172.16.1.78
[ndbd]
NodeId= 2
HostName= 172.16.1.74
[ndbd]
NodeId= 3
HostName= 172.16.1.75
[ndbd]
NodeId= 4
HostName= 172.16.1.76
[ndbd]
NodeId= 5
HostName= 172.16.1.77

[mysqld]
ArbitrationRank=2
[mysqld]
ArbitrationRank=2
[mysqld]
[mysqld]
[mysqld]
[mysqld]
[tcp default]
portnumber=2279
在 172.16.1.76 和 172.16.1.77 服务器上在 /etc/ 目录下,添加 my.cnf 配置文件,配置文件内容如下:

default-storage-engine=ndbcluster
ndbcluster
ndb-connectstring=172.16.1.78
[ndbd]
connect-string=172.16.1.78
[ndb_mgm]
connect-string=172.16.1.78
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
[mysql_cluster]
ndb-connectstring=172.16.1.78
[ndb_restore default]

配置文件准备好之后,需要先执行 ndb_mgmd -f /var/lib.mysql-cluster/config.ini 启动管理节点(启动管理节点之前记得删除 config.ini.bin.1),管理节点启动成功之后,在 172.16.1.76 和 172.16.1.77 服务器上分别执行 ndbd 命令,启动数据节点,数据节点启动过程中会自动将原有的数据库中的所有内容同步到 76 和 77 服务器上。

Ubuntu 下 MySQL Cluster 安装和配置  http://www.linuxidc.com/Linux/2016-04/130100.htm

MySQL 集群之 MySQL Cluster  http://www.linuxidc.com/Linux/2016-04/130099.htm

MySQL Cluster 备份与恢复 http://www.linuxidc.com/Linux/2013-06/85295.htm

MySQL Cluster 安装配置 http://www.linuxidc.com/Linux/2013-07/87705.htm

MySQL Cluster 3 台机器搭建集群环境 DOC http://www.linuxidc.com/Linux/2013-01/78249.htm

MySQL Cluster7.2 在线增加数据节点存在重大弊端 http://www.linuxidc.com/Linux/2012-08/67605.htm

MySQL Cluster 的详细介绍 :请点这里
MySQL Cluster 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134600.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4245字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中