感谢您的回复。
我需要你的帮助以下面的方式configurationMySQL-Clustering服务器。
我有两个主机, 1] 192.168.1.107 2] 192.168.1.125 每个主机都有节点条目, 在主机上:192.168.1.107: ======================= 1] MGMT节点 2] DATA节点 3] MYSQL [API]节点 在主机上:192.168.1.125: ======================= 1] MGMT节点 2] DATA节点 3] MYSQL [API]节点
这两台服务器都放在“负载均衡器”后面来pipe理传入的连接。 因此,负载均衡器pipe理(分配)到服务器的传入连接或请求,以控制服务器上的stream量。
负载平衡器已经被configuration成这样的方式,就像一个服务器发生故障(由于系统崩溃),负载均衡器将负责转发所有传入的请求,或者所有的请求或连接都应该由活动的一个(服务器) 。
我目前的configuration文件如下: ---------------------------------------------- “my.cnf”在主机上:192.168.1.107: ================================ #MySQL服务器 [mysql_cluster] NDB-CONNECTSTRING = 192.168.1.107:1186 [NDBD] 连接串= 192.168.1.107:1186,192.168.1.125:1186 [ndb_mgm] 连接串= 192.168.1.107:1186 [ndb_mgmd] configuration文件中=的/ var / lib中/ MySQL的簇/ config.ini中 的[mysqld] NDBCLUSTER NDB-CONNECTSTRING = 192.168.1.107 “my.cnf”主机上:192.168.1.125: ================================ #MySQL服务器 [mysql_cluster] NDB-CONNECTSTRING = 192.168.1.125:1186 [NDBD] 连接串= 192.168.1.125:1186,192.168.1.107:1186 [ndb_mgm] 连接串= 192.168.1.125:1186 [ndb_mgmd] configuration文件中=的/ var / lib中/ MySQL的簇/ config.ini中 的[mysqld] NDBCLUSTER NDB-CONNECTSTRING = 192.168.1.125 和 “config.ini”在主机上:192.168.1.107: ==================================== [NDBD默认] NoOfReplicas = 2#副本数量 DataMemory = 3500M#为数据存储分配多less内存 IndexMemory = 1000M#为索引存储分配多less内存 datadir = / usr / local / mysql / data#这个数据节点的数据文件的目录 #MaxNoOfConcurrentOperations = 1048576 #MaxNoOfConcurrentTransactions = 1048576 #MaxNoOfLocalOperations = 1048576 #MaxNoOfConcurrentIndexOperations = 16384 #等于MaxNoOfConcurrentScans乘以= 500 #LockPagesInMainMemory = Y #TCP / IP选项: [TCP默认] portnumber = 2202#这是默认值; 不过,你可以使用任何 #pipe理stream程选项: [NDB_MGMD默认] datadir = / var / lib / mysql-cluster#MGM节点日志文件的目录 [NDB_MGMD] hostname = 192.168.1.107#MGM节点的主机名或IP地址 #数据节点“A”的选项: [NDBD] id = 3#(每个数据节点一个[NDBD]节) 主机名= 192.168.1.107#主机名或IP地址 #数据节点“B”的选项: [NDBD] ID = 4 主机名= 192.168.1.125#主机名或IP地址 #SQL节点选项: [MYSQLD] ID = 5 主机名= 192.168.1.107 “config.ini”在主机上:192.168.1.125: ==================================== [NDBD默认] NoOfReplicas = 2#副本数量 DataMemory = 3500M#为数据存储分配多less内存 IndexMemory = 1000M#为索引存储分配多less内存 datadir = / usr / local / mysql / data#这个数据节点的数据文件的目录 #MaxNoOfConcurrentOperations = 1048576 #MaxNoOfConcurrentTransactions = 1048576 #MaxNoOfLocalOperations = 1048576 #MaxNoOfConcurrentIndexOperations = 16384 #等于MaxNoOfConcurrentScans乘以= 500 #LockPagesInMainMemory = Y #TCP / IP选项: [TCP默认] portnumber = 2202#这是默认值; 不过,你可以使用任何 #pipe理stream程选项: [NDB_MGMD默认] datadir = / var / lib / mysql-cluster#MGM节点日志文件的目录 [NDB_MGMD] hostname = 192.168.1.125#MGM节点的主机名或IP地址 #数据节点“A”的选项: [NDBD] id = 3#(每个数据节点一个[NDBD]节) 主机名= 192.168.1.107#主机名或IP地址 #数据节点“B”的选项: [NDBD] ID = 4 主机名= 192.168.1.125#主机名或IP地址 #SQL节点选项: [MYSQLD] ID = 5 主机名= 192.168.1.125
关于上述configuration我试图configuration服务器,
在两个数据节点之间创build复制。 意思是说,如果一台服务器发生故障或崩溃,那么相同的数据应该由另一台服务器提供服务。
简而言之,节点“A”和“B”之间应该有数据复制,并且如果一个节点将closures,则应该提供相同的数据。 所有传入请求或连接都由负载均衡器pipe理。
我已经尝试在两台服务器上使用以下步骤来实现上述configuration,但也存在一些问题,
在主机192.168.1.107上 ===================== 1] [root @ ns mysql-cluster]#ndb_mgmd -f /var/lib/mysql-cluster/config.ini 2009-09-07 17:48:24 [MgmSrvr] INFO - NDB集群pipe理服务器。 mysql-5.1.34 ndb-7.0.6 2009-09-07 17:48:24 [MgmSrvr] INFO - 加载configuration '//mysql-cluster/ndb_1_config.bin.1' 2] [root @ ns mysql-cluster]#/ usr / local / mysql / bin / ndbd 2009-09-07 17:49:36 [ndbd] INFO - 取自configuration '192.168.1.107:1186',代:1 3] [root @ ns mysql-cluster]#mysqld_safe --ndbcluster --ndb-connectingtring = 192.168.1.107& [12] 12189 [root @ ns mysql-cluster]#090907 17:50:17 mysqld_safelogin到 '/var/lib/mysql/ns.err'。 090907 17:50:17 mysqld_safe从数据库启动mysqld守护进程 在/ var / lib中/ MySQL的 输出(ndb_mgm -e显示): ============================= [root @ ns mysql-cluster]#ndb_mgm -e show 连接到pipe理服务器:192.168.1.107:1186 群集configuration --------------------- [ndbd(NDB)] 2个节点 id = 3 @ 192.168.1.107(mysql-5.1.34 ndb-7.0.6,Nodegroup:0,Master) id = 4(不连接,接受来自192.168.1.125的连接) [ndb_mgmd(MGM)] 1个节点 id = 1 @ 192.168.1.107(mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 1个节点 id = 5 @ 192.168.1.107(mysql-5.1.34 ndb-7.0.6) 之后,执行相同的步骤, 在主机192.168.1.125上: ========================= 1] [root @ test mysql-cluster]#ndb_mgmd -f /var/lib/mysql-cluster/config.ini 2009-09-07 17:55:24 [MgmSrvr] INFO - NDB集群pipe理服务器。 mysql-5.1.34 ndb-7.0.6 2009-09-07 17:55:24 [MgmSrvr]信息 - 加载configuration '//mysql-cluster/ndb_1_config.bin.1' 2] [root @ test mysql-cluster]#/ usr / local / mysql / bin / ndbd 2009-09-07 17:55:59 [ndbd] INFO - 取自configuration '192.168.1.125:1186',代:1 3] [root @ test mysql-cluster]#mysqld_safe --ndbcluster --ndb-connectingtring = 192.168.1.125& [2] 5276 [root @ test mysql-cluster]#090907 17:56:30 mysqld_safelogin到 '/var/lib/mysql/test.testmachine.com.err'。 090907 17:56:30 mysqld_safe从数据库启动mysqld守护进程 在/ var / lib中/ MySQL的 输出(ndb_mgm -e显示): ============================= [root @ test mysql-cluster]#ndb_mgm -e show 连接到pipe理服务器:192.168.1.125:1186 群集configuration --------------------- [ndbd(NDB)] 2个节点 id = 3(不连接,接受来自192.168.1.107的连接) id = 4 @ 192.168.1.125(mysql-5.1.34 ndb-7.0.6,Nodegroup:0,Master) [ndb_mgmd(MGM)] 1个节点 id = 1 @ 192.168.1.125(mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 1个节点 id = 5 @ 192.168.1.107(mysql-5.1.34 ndb-7.0.6)
上述结果表明,来自每个服务器的两个数据节点不能相互通信。 所以请告诉我适当的configuration或适当的步骤来实现我的scheme完美。
等待您的回复。
您的群集devise中存在根本性问题。 Mysql集群需要3台服务器。 假设连接2台服务器的电线被切断,但两台机器仍在运行。 如果它们都继续运行,它们将获得不同的数据并且不同步。
所以有了两台机器,他们都必须关机,以防止群集中的每个节点具有不同数据的裂脑情形。
您可以添加仅运行与数据节点配合使用的pipe理节点(需要有限资源)的第三台机器,以决定如何处理故障。 如果pipe理节点消失,但两个数据节点仍在运行,它们将继续运行。
以下是有关2数据节点+ 1pipe理节点configuration的说明: http : //dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html
试试这个关于howtoforge的教程。