下面是小编收集整理的Windows下SQLSERVER故障转移集群案例(共含6篇),供大家参考借鉴,欢迎大家分享。同时,但愿您也能像本文投稿人“剑九”一样,积极向本站投稿分享好文章。
Windows下SQLSERVER故障转移集群案例
1. 整体拓扑图
杭州下沙医院Windows故障转移集群图
2. 安装环境说明
2.1. 安装需要三台服务器,以及三块共享虚拟磁盘,
服务器
作用
备注
Xsyy-c220-02
域控制器
Xxyy-c460-05
数据库服务器1
做主节点
Xxyy-c460-06
数据库服务器2
磁盘E
仲裁磁盘E
共享磁盘
磁盘F
数据存储磁盘F
共享磁盘
磁盘G
MSDTC磁盘G
共享磁盘
2.2 按照原有群集信息分配群集资源,如下:
2.2.3 IP地址和网络名称
IP地址
网络名称
备注
20.21.1.88/24
域控制器
20.21.1.30/24
Serv-SQLA
Serv-SQLA服务器对外服务地址
20.21.1.31/24
Serv-SQLB
Serv-SQLB服务器对外服务地址
20.21.1.32/24
HIS-CLUSTER
群集服务地址
20.21.1.33/24
HIS-MSDTC
MSDTC IP
20.21.1.34/24
HIS-SQL
SQL数据库实例地址
10.0.0.1
Sql-a服务器心跳线地址
10.0.0.2
Sql2008-b服务器心跳线地址
2.2.4 磁盘
磁盘符
空间大小
备注
磁盘E
100G
仲裁磁盘
磁盘G
100G
MSDTC磁盘
磁盘F
2T
数据存储磁盘
3. 准备工作:
网络配置(IP地址、优先级、NetBIOS设置)、机器名、共享磁盘连接测试(一次只开启一个节点连接共享磁盘)
加入域。
创建群集
(备注):
IP配置中,做心跳的那些网卡需禁用NetBIOS设置;
IP地址的优先级现在是一个疑点。
用的系统是:cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso和cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso。这样兼容性比较好。
(如果在08系统下安装sql server 数据库做故障转移集群,最好升级一下系统)
3. 准备域环境
3.1 建立域(在域服务器上面)
1. 配置域控制器的网卡信息,DNS要填写自身的IP地址。
2. dcpromo来安装域;建立域名:xsyy0.com;安装DNS;设定目录服务还原模式密码;安装完成后重新启动。
3.2 建立域账号
账号名称
类型
说明
Xsyy0\administrator
域账号
与管理员账号,拥有最高管理权限
Xsyy0\hiscluster
域账号
群集管理员账号
Xsyy0\sandbox
域账号
沙盒模式账号
OK;到这一步了,域服务器已经设置完毕;
4. 故障转移集群服务器搭建基础准备
4.1 两台节点服务器配置网卡信息等;不用的网卡需禁用;然后修改计算机名,加入域(xsyy0.com);
4.2 由于两台服务器需要连共享存储,需安装多路径I/O,
否则服务器上面会看到好多个磁盘;
4.3 将磁盘;联机、初始化、并分配盘符;
4.4分别在两台服务器中添加“故障转移群集”功能,按照安装向导完成安装;
5. 配置主节点的故障转移集群
5.1 打开故障转移集群控制器,然后创建一个集群(只在主节点服务器上面创建);
5.2 创建集群名称;分配IP;把两个节点加进去;很简单;
6. 安装和配置MSDTC群集
6.1 在安装MSDTC群集前,必须在两台服务器中安装配置相应的服务器角色“应用程序服务器”。
安装MSDTC所需要的服务器角色
6.2 只在主节点创建MSDTC群集
第一步,在“存储”G盘所在的节点服务器上,打开“故障转移群集管理”,右击“服务和应用程序”,选择“配置服务或应用程序”
第二步,开始运行高可用向导,选择我们要安装的“分布式事物协调器”,并下一步
确认配置完成后,确保服务处于联机状态
7. OK,到目前为止,故障转移集群已经创建完毕了。剩下的,需要在两台服务器上面搭建故障转移集群数据库了。
8. 安装sql server 2008集群整体准备。
安装账号准备
帐号名称
类型
说明
Xsyy0\administrator
域帐号
管理数据库服务器的域帐号,加入到SQLSERVER、SQLAgent、SQLAnalysis组,加入到两台服务器的本地管理员组。
Xsyy0\administrator
域帐号
数据库服务运行帐号,加入到SQLSERVER、SQLAgent、SQLAnalysis组,加入到两台服务器的本地管理员组。
Xsyy0\administrator
域组
数据库引擎组
Xsyy0\administrator
域组
数据库代理组
9. 安装主节点的数据库
启动 SQL 2008 安装程序。单击安装页上的“新SQL Server 故障转移群集安装”。
注意: 安装程序支持规则可确定在您安装SQL Server安装程序支持文件时可能发生的问题。必须更正所有失败,安装程序才能继续。
然后,在“功能选择”页上选择要安装的组件,输入安装目录(此为安装程序目录,选择本地D盘),单击“下一步”。
在“实例配置”页中,在“SQLServer 网络名称”框中输入名称:hissql,选择“命名实例”为his , “实例根目录”保留默认值 ,单击“下一步”
在“磁盘空间要求”页计算指定的功能所需的磁盘空间,并将磁盘空间要求与正在运行安装程序的计算机上的可用磁盘空间进行比较。单击“下一步”。
使用“群集资源组”页,单击“下一步”。www.dnzg.cn
在“群集磁盘选择”页上,为SQL Server 故障转移群集选择共享群集磁盘资源,选择F盘。单击“下一步”。
在“群集网络配置”页上,勾选第一行“IPv4”,输入SQL IP地址:20.21.1.34,单击“下一步”继续。
在“群集安全策略”页,选择“使用域组”,在“数据库引擎域组”、“SQL Server代理域组”和“Analysis Services域组”中分别输入域组“Xsyy0\administrator”,单击“下一步”
在“数据库引擎配置 - 帐户设置”页,选择“Windows身份验证”;将管理帐户“Xsyy0\administrator”添加到“指定SQL Server 管理员”中
在“数据库引擎配置 – 数据目录”页,确认数据库目录是否为磁盘阵列盘(S盘)。
在“AnalysisServices配置– 帐户设置”页,添加帐户“Xsyy0\administrator”,然后按照向导,完成SQL SERVER的安装。
打开“故障转移群集管理器”,在“服务和应用程序”看到已经安装了SQL Server的服务,并且所有资源都是正常的状态。
10. 安装第二个主节点的数据库
备注:主节点安装好之后,备节点需验证一下集群;然后在安装数据库;
启动SQL Server 2008 安装程序,选择“向 SQL Server 故障转移群集添加节点”。按照向导提示,完成SQL群集的安装。
11. 安装完成后,可以在远程客户端用IP来访问:IP是数据库实例的IP地址。
如果访问不到,则首先查看服务都开启了没,如果服务都开启了还是访问不到,那么先把防火墙关掉,然后设置端口;
Windows Server 2008之故障转移群集解析
故障转移群集(即服务器群集)是由单独的计算机组成的,用于改进应用和服务可用性的组合,集合的服务器(即节点)通过电缆或软件连接在一起。如果其中的一个节点出现了故障,则通过被称作故障转移的流程,使集群中的另一个节点接替故障节点的任务,确保对服务造成的影响最低。故障转移集群通常为需要为关键的服务应用提高可用性的IT人员所采用。在Windows Server 2008中,对于故障转移群集的改进目的是为了简化集群,使他们更安全,更稳定。
一、故障转移群集的新特性
1、新的确认向导功能
为了充分实现高可用性所带来的好处,必须谨慎进行全部的配置,包括服务器,网络和存储在内。Windows Server 2008所具备的新的故障转移群集安装与配置确认向导,使用户能够对系统,存储及网络的配置是否适于集成进行确认。新的确认向导所进行的部分测试包括:
节点测试,确认服务器是否正在运行同样的操作系统版本及是否进行了相同的软件更新。
网络测试,确定是否计划的群集网络符合具体的需求,如针对网络冗余是否具有至少两个独立的子网
存储测试,分析是否进行了正确的存储配置,以使所有共享的磁盘能通过全部的群集节点进行读取以及确认存储是否符合特定的需求。
2、大卷数据提高的可扩展性
Windows Server 2008包含对全球唯一标识符(GUID)或GUID分区表(GPT)以集群方式存储的支持。与主引导记录(MBR)磁盘不同,GPT磁盘能够具有大于GB的分区以及内置的冗余。GPT所具备的优点要大于MBR,这是因为它允许每个磁盘进行最多128个的分区,并支持18个艾字节的数据量,允许对冗余进行初始和备份分区,并支持唯一的磁盘与分区标识。
二、故障转移群集的改进
Windows Server 2008的故障转移群集包含以下对群集配置,管理和操作的改进:
改进的群集设置与迁移:简化了的群集设置向导使用户能够一次性完成群集的设置。同时也实现了群集的脚本可编写性,使配置流程自动化。现有群集的迁移流程也得到了简化。资源组的设置可以从运行Windows Server? 的群集当中进行并应用在运行了Windows Server 2008的群集中。
简化的管理界面:在改进了向导和界面之后,管理任务得到了简化,并使管理员能够集中对应用进行管理,而不需要关注它们的群集。
提高了的稳定性与安全性,使可用性提高。群集与存储互动的方式获得了改进,因此仲裁资源不再成为单点故障。
改进了的网络连接和安全性能:网络运行状况与安全性能通过集成Ipv6,使用不依赖旧有的NetBIOS(网络基本输入输出系统)的DNS(域名系统)服务器而获得了改进,同时其他的网络连接方面的改进也使企业网络更加稳定,配置更加安全。
1、服务器管理控制台
为简化群集的管理,群集管理界面经过改进能够让管理员集中于应用与数据的管理,而非群集的管理。新的界面基于任务设置并且更加直观,其中的向导能够帮助管理员完成之前复杂的操作,
Windows Server 2008新的故障管理群集能够使以下管理与操作任务得到简化:
改进的界面:用户界面基于任务设置,其中的向导能够帮助管理员完成之前复杂的操作,使现在的设置群集角色,如设置打印设备服务器角色等任务,只需几个简单的步骤便可完成。新的群集管理工具能够用于查看所有的群集角色,使配置选项成为了直观的,基于任务的菜单设置。
快速将群集资源添加到配置:改进的群集管理界面也使共享文件夹具有高可用性等类似的任务更加容易执行。
解决群集问题:Windows的事件跟踪功能取代了群集日志,使管理员能够通过它来轻松的搜集,管理并报告发生在群集上的事件。
使用卷映射拷贝服务来获得备份:与卷映射拷贝服务完全集成使备份及恢复群集的配置更加简单。
管理群集中共享文件夹的查看:系统提供了共享存储的查看,同时也提供了对共享文件夹的查看,这使用户能够更加轻易地了解哪些文件夹是群集,并可以进行向另一个节点的故障转移,并了解哪些共享文件夹属于本地的单一节点而不能进行故障转移。
此外,Windows Server 2008还支持针对故障转移群集的命令行及Windows 管理工具(WMI)选项。
2、提高的稳定性
Windows Server 2008所具备的故障转移群集功能,使群集架构获得了改进并提高了向用户提供的服务质量。一个最显著的改变便是系统维护“仲裁”的方式。仲裁是确定哪些节点是活动节点,哪些节点是备用节点的群集配置数据库。它用于在节点中断时,使一个单独的节点提供所需的应用与服务。如果群集节点之间失去了互联,则会启用问题回复协议来避免裂脑(split-brain)的发生。在失去互联时,节点的资源拥有者就会成为群集以及所有资源的唯一拥有者,避免了split brain的发生。然后这个唯一的拥有者会将所有的资源为客户可用。在拥有仲裁的节点发生故障时,现存的节点会对谁控制设备进行裁决。
故障转移群集的改进使管理员能够通过之前的Windows版本所具备的两种群集模式进行群集的配置:
仲裁磁盘模式:一个单独的磁盘作为决定允许哪部分集群继续运行的“投票者”
占多数节点设置模型:只有在占多数的节点是在运行良好状态及互联时才会使群集继续运行。
在Windows Server 2008上,这两种模式的混合操作作为默认的配置,使两种模式的优势都能够得到发挥。例如,在双节点的群集中,即使仲裁磁盘出现故障而完全不可用时群集也能够继续运行。管理员无需处理复杂的仲裁配置,这些都在设置群集的过程中得到了自动配置。在这种新的混合模式下,每个节点都有复制的仲裁资源,因此仲裁磁盘出现的故障不会导致群集出现故障。
3、存储集成
Windows Server 2008故障转移群集在存储集成方面的改进使功能与可靠性与之前的服务器群集版本相比有了很大的提高。主要表现在:
动态添加磁盘资源:资源在线时可对资源的相关性进行修改,意味着管理员可以添加磁盘,而不中断将要用到该磁盘的应用。
数据存储的性能与稳定性得到了提高:Windows Server 2008采用了持久保留功能及新的管理共享文件方式而获得了改进。它不再使用可能造成SAN中断的SCSI总线重设。Windows Server 2008的故障转移群集使磁盘不再处于不受保护的状态,意味着卷受到破坏的可能性减少了。故障转移群集还改进了对磁盘的查找和恢复,并支持3种类型的存储连接:序列连接SCSI(Serial Attached SCSI,SAS ),以及光纤通道。
步骤如下:
1、准备服务器
管理节点(MGM) 192.168.0.10(db1)
SQL节点1(SQL1) 192.168.0.20(db2)
SQL节点2(SQL2) 192.168.0.30(db3)
数据节点1(NDBD1) 192.168.0.40(db4)
数据节点2(NDBD2) 192.168.0.50(db5)
如果只想配置在两台服务器上可以将db1,db2,db4放在同一台服务器上,db3,db5放在同一服务器上,
2、下载mysql-cluster-gpl-7.0.8a-win32.msi,mysql的 上就可以下载。分别安装在准备好的服务器上。
3、在db1中创建C:mysqlmysql-cluster,并且在mysql-cluster文件夹中创建一个名为config.ini的文件,config.ini的内容如下:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.10 #管理节点服务器db1的IP地址
# Storage Engines
[NDBD]
HostName=192.168.0.10 #MySQL集群db1的IP地址
DataDir= E:data #如果不存在就创建一个
[NDBD]
HostName=192.168.0.30 #MySQL集群db3的IP地址
DataDir= E:data #如果不存在就创建一个
[MYSQLD]
HostName=192.168.0.10
[MYSQLD]
HostName=192.168.0.30
4、在第2步安装的mysql根目录下,一般是(D:Program FilesMySQLMySQL Server 7.0)这样的结构。在其中找到my.ini,在最后加入如下内容。
ndbcluster
ndb-connectstring=192.168.0.10
[mysql_cluster]
ndb-connectstring=192.168.0.10 #db1的IP地址
5、使用“D:Program FilesMySQLMySQL Server 7.0binndb_mgmd.exe” - f “C:mysqlmysql-clusterconfig.ini”启动管理节点服务器。
6、使用“D:Program FilesMySQLMySQL Server 7.0binndbd.exe” --initial分别启动节点服务,
7、启动mysql数据库服务。
8、使用“D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe”检查配置是否成功。一般地会输出如下内容:
C:Documents and SettingsAdministrator>“D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe”
-- NDB Cluster -- Management Client --
ndb_mgm>show
Connected to Management Server at: 192.168.0.10:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.10 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
id=3 @192.168.0.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.10 (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)] 2 node(s)
id=4 @192.168.0.10 (mysql-5.1.37 ndb-7.0.8)
id=5 @192.168.0.30 (mysql-5.1.37 ndb-7.0.8)
*可以使用quit或者bye退出程序。
9、在db1上使用mysql -uroot -pxxxxxxx test
create table city(
id mediumint unsigned not null auto_increment primary key,
name varchar(20) not null default ''
engine = ndbcluster default charset utf8;
insert into city values(1, 'city1');
insert into city values(2, 'city2');
在db3上使用mysql -uroot -pxxxxxxx test
mysql>select * from city;
+-----------+
|id | name |
+-----------+
|1 | city1 |
+-----------+
|2 | city2 |
+-----------+
OK。
最关键的是要使用ndbcluster 作为表的存储引擎。
10、使用“D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe” -e shutdown停止集群。否则可能不会将全部数据写到磁盘。
这篇文章主要介绍了Windows Server 2003 下配置 MySQL 集群(Cluster)教程,本文先是讲解了原理知识,然后给出详细配置步骤和操作方法,需要的朋友可以参考下
MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本,它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎。
MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。
管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置数据。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。
目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。
MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。
MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。
管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。
数据节点:主要是对数据的存储,不提供其他的服务。
SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。
而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。
一、软件下载机器操作环境
配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至6月初的最高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下载地址为:dev.mysql.com/downloads/cluster,选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。
根据自己的操作系统的位数,也可以选择 64 位版本的。还有一个 27.2M 的 Windows(x86, 32-bit) 版本,下载下来需要自己编译,有经验的高级用户可以选用。
本实验在 2 台安装 Windows Server 2003(sp2) 的机器上进行。节点分配及 IP 配置如下:
第一台机器,IP 为 10.0.0.201,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。
第二台机器,IP 为 10.0.0.202,作为SQL节点2(SQL2),数据节点2(NDBD2)。
管理节点最好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。
二,配置管理节点:
在第一台机器上,建文件夹 D:\mysql-cluster,在其下建立文件 config.ini,内容如下:
代码如下:
[NDBD DEFAULT]
NoOfReplicas=1
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
hostname=10.0.0.201
# Storage Engines
[NDBD]
hostname=10.0.0.201
datadir= D:\data
[NDBD]
hostname=10.0.0.202
datadir= D:\data
# SQL Engines
[MYSQLD]
hostname=10.0.0.201
[MYSQLD]
hostname=10.0.0.202
Cluster 管理节点的默认端口是1186,数据节点的默认端口是 2202。从 MySQL 5.0.3开始,该限制已被放宽,Cluster 能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。
Cluster 管理节点作为一个服务端(通过运行 db_mgmd.exe 程序读取本配置文件来启动),通过本机上的客户端 ndb_mgm.exe 来连接和操作。
三、配置 MySQL 数据库服务器:
在2台机器上,分别依次操作。
解压 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 文件夹下,把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\bin 加到 Windows 的系统 path 中。
打开DOS命令行窗口(配置完系统path后,在再次打开新的命令行窗口),执行以下语句,让 MySQL 作为 Windows 服务运行:
代码如下:
mysqld.exe -install mysql
再在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。
把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 下的某个备用的配置文件(例如my-small.ini)复制为 my.ini 文件。
建立 D:\tmp 文件夹。
四、配置SQL节点和数据节点:
在2台机器上,分别依次操作。
建立文件夹 D:\data。
编辑 NySQL 配置文件 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\my.ini,在 [mysqld] 节末尾加语句:
代码如下:
#SQL群集节点
ndbcluster
ndb-connectstring=10.0.0.201
有了 ndbcluster 语句,mysql 服务将作为群集的 SQL 节点启动。mysqld.exe 命令带参数 Cndbcluster 运行是一样的效果。
mysql 服务连接到数据节点的 2202 默认端口,或自动分配的别的可用端口。
(问题:SQL节点如何获得数据节点的IP地址?是否通过连接管理节点,取得所有数据节点的IP地址的列表?)
这里的连接字符串的值在 MySQL 服务启动时使用,用于连接到管理节点。
在末尾加语句:
代码如下:
#NDB集群节点
[mysql_cluster]
ndb-connectstring=10.0.0.201
注:好像以下形式也可:
代码如下:
[ndbd]
ndb-connectstring=10.0.0.201
这里的连接字符串的值在数据节点启动时使用,用于连接到管理节点。
五,启动群集各服务器
启动顺序依次是:管理节点、数据节点、SQL节点。
1,启动管理节点
在第一台服务器的DOS窗口,运行命令:
代码如下:
C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini Cconfigdir=d:\mysql-cluster
注:如果不带 Cconfigdir=d:\mysql-cluster 参数,将默认为 C:\mysql\mysql-cluster 文件夹。
屏幕显示:
代码如下:
C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini Cconfigdir=d:\mysql-cluster
-06-10 01:16:57 [MgmtSrvr] INFO ― NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Reading cluster configuration from ‘d:\mysql-cluster.conf\config.ini‘
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Got initial configuration from ‘d:\mysql-cluster.conf\config.ini‘, will try to set it when all ndb_mgmd(s) started
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Id: 1, Command port: *:1186
==INITIAL==
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Starting initial configuration change
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Configuration 1 commited
2010-06-10 01:16:57 [MgmtSrvr] INFO ― Config change completed! New generation: 1
==CONFIRMED==
2,启动数据节点
分别在2台服务器的DOS窗口运行命令,
第一次,或初始化群集节点时,运行命令:
代码如下:
ndbd.exe Cinitial
初始化之后,只运行 ndbd.exe 即可。若带参数 Cinitial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。
数据节点依赖管理节点服务器,进行数据的自动复制和同步,使各个数据节点的数据保持一致,并在某个数据节点意外关闭又恢复后,进行数据的恢复重建。
3,启动SQL节点
有了 ndbcluster 语句,启动 mysql 服务,就启动了SQL节点。应在前2种节点启动后,分别在2台服务器上进行。
六、群集管理
在所有的数据节点和SQL节点未启动之前,运行群集管理节点服务的客户端 ndb_mgm.exe,只能获得以下信息:
代码如下:
C:\>ndb_mgm.exe
― NDB Cluster ― Management Client C
ndb_mgm>show
Cluster Configuration
―――――――
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 10.0.0.201)
id=3 (not connected, accepting connect from 10.0.0.202)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 10.0.0.201)
id=5 (not connected, accepting connect from 10.0.0.202)
ndb_mgm>
说明数据节点、SQL节点均未连接到管理节点服务。
在所有的数据节点和SQL节点正确启动之后,将获得以下信息:
代码如下:
ndb_mgm>show
Cluster Configuration
―――――――
[ndbd(NDB)] 2 node(s)
id=2 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
id=3 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)
[mysqld(API)] 2 node(s)
id=4 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)
id=5 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3)
ndb_mgm>
关闭群集的DOS命令:
代码如下:
ndb_mgm -e shutdown
或在 ndb_mgm 环境下执行 shutdown 命令。
以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。
关闭SQL节点的 mysqld 服务:
代码如下:
C:\>net stop mysql,或:
C:\>mysqladmin -u root shutdown
七、测试
正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。某一个数据节点关闭后,不影响SQL节点的使用。某些数据节点出错后,可以进行恢复。需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。
另外,每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。
测试实例:
在某台 SQL 节点上登录 mysql,建表 city,并插入数据:
代码如下:
C:\>mysql -u root test
mysql>create table city (nId mediumint unsigned not null auto_increment primary key, sName varchar(20) not null)
engine = ndbcluster default charset utf8;
mysql>insert city values(1, ‘city-1′);
mysql>insert city values(1, ‘city-2′);
在另一台 SQL 节点上登录 mysql,从表 city 里得到记录:
C:\>mysql -u root test
mysql>select * from city;
在群集系统正常工作的情况下,应当能取到先前插入的所有记录。
另外的测试(单点故障测试):
1,还可以人为停止某一个数据节点(Ctrl+C中断DOS命令ndbd.exe,停止该服务),看看所有的 SQL 节点是不是能正常工作。
2,在某一个数据节点停止后,进行数据库操作。然后重新开启该数据节点,看看群集中的所有的 SQL 节点能不能得到完整的数据。
八、常见问题与扩展
配置和管理 MySQL 群集系统并不是一件简单的事情。由于不合理的配置导致的系统问题非常常见,比如网络故障、内存限制等,会导致仲裁体统强制关闭数据节点。
如果机器上原来已经安装过 MySQL Server,则一定要卸载干净原来的数据库系统。注意群集系统中的 mysql.exe 程序与非群集系统的管理 Client 是不同的。
还可以与负载均衡系统结合,以提供更强的可用性和数据存取效率。
可能由于未知的Bug或别的原因,导致群集系统出现一些意外故障。所以建议选取版本时,选择已经得到大多数人认可的版本,不一定选取最新的版本,最新的版本往往不太稳定。当然也不要选用太陈旧的功能有限制的版本。
问:近日由于无法忍受那个不完全汉化的所谓“Windows Vista中文版”于是又重新安装了英文版,但是安装后发现一个奇怪的问题,就是进入Windows Vista 时系统错将Vista的盘(应该是F盘)当作了C盘,而原来的C盘却成了D盘,其余的盘符也以此后退了一个字母,请问有人知道其中原因和解决方法吗?
答:这是微软的老问题了,微软的Windows安装光盘一向都按它自己的程序方式去确认硬盘分区的盘符,只不过这一次Vista更霸道。从光盘启动安装时,把它安装到的分区的盘符强行改成C,以下其他盘符也依照以往微软Windows安装惯例排列。
Vista盘符错乱了,只好调整过来后,再多安装一次了。方法是在Vista里将错乱的盘符恢复到先前的样子,比如前面所举的情况,应该把它恢复成: C: ->Z: ->F: , D: ->C: ,然后重启Vista,当然再进入时由于盘符都恢复了,会提示很多出错的地方,而且Explorer和Computer都浏览不了,
这时只能用“Win+R”快捷键启动“Run”框,来确认盘符都已恢复到原先的正常状态。然后就直接在现有这个Vista的Run框里键入你的Vista安装光盘(或者Vista安装ISO的虚拟光驱盘)下的Setup.exe,比如你的光驱盘符是X:,把安装光盘放入,在Run里输入X:\Setup.exe运行Vista安装。这样直接在盘符正常的Vista做升级或全新定制安装时,由于盘符都正常,安装光盘里的安装程序识别时就不会再错认和擅做主张了。当然如果某些硬件不标准,不兼容,可能升级安装不下去。那就全新安装好了,旧的Vista会被安装程序自动备份到一个Windows.old目录里。只是你一定要在这个现有的Vista下装啊,否则再从光驱启动装,盘符还会依旧错乱的。因为你这个现有Vista 里盘符已经调整好了,所以在它下面做升级性安装或全新安装时,安装程序才会参照原有的正确盘符。不过也够烦人的了,即便这样两次安装上了,盘符也正确,但安装光盘对分区盘符的识别仍是大问题。
比如你系统坏了,要用Vista的安装光盘进行修复,Vista安装光盘在进行System Recovery时仍是会很擅做主张地把盘符错认,就跟您从光盘启动安装时盘符错乱是一个道理。
笔者电脑使用的是ReahekRTL81391OMB/100MB自适应网卡,并且安装了WindowsXP操作系统,采用PPPOE方式拨号上网,某晚笔者拨号上网,电脑提示找不到调制解调器,根据笔者的经验判断,出现该故障一般是由于网卡被禁用了,由于上午还能正常上网,于是笔者首先打开网络连接窗口,发现本地连接不见踪影,在设备管理器列表中既找不到网卡,也没有黄色的?或!的设备选项。
点击操作扫描检测硬件改动,结果什么也没找到。难道系统对笔者的网卡视而不见?我本着先软后硬的原则,在系统属性对话框中点击硬件添加硬件向导,手动添加网卡并安装相应的驱动程序,再次拨号,提示信息仍然一样,
难道笔者的爱机没被高温烤坏却被雷击给劈坏了(笔者关机后忘记将主板电源断开,碰巧当天中午雷阵雨光临)?可笔者又不甘心也不想拆机检查,正寻思之际突然想到很多时候通过恢复主板的默认设置也可以解决问题。于是重新启动电脑并进入BIOS主菜单,将光标移动到LoadOptimizedDefaults选项(载入最优默认设置)上,按y并回车,然后按FIO再按Y保存设置。重启进入系统后试着拨号上网,系统托盘处弹出提示Connectionthrough1OOMbps,故障排除,系统终于恢复正常!
提示:故障产生的原因是因为雷击时网线上产生了轻微强度的电流,所以主板为保护网卡就暂时将其屏蔽了,而在恢复默认设置时也就解除了屏蔽。笔者强烈建议平时在关闭电脑后,最好将主板电源彻底断开且事先将电源接地,这样就可以避免很多的故障。
★ Windows Server 下配置 MySQL 集群(Cluster)教
★ 奥迪维修故障案例
★ SVNSVN设置日志提交限制和日志设置(windows下)
★ UnixWAre and Open unix8下如何配置SAMBA。Windows系统