SQL SERVER 2005的群集必须在实现了WINDOWS群集的基础上才可以。
首先我们先来看一下SQL SERVER 2005群集的一些相关介绍:
在SQL SERVER 2005中主要可以使用镜像和群集两种方法来实现高可用性,至于数据库镜像作为SQL SERVER 2005的新特性之一,我在前面的博文已经做了介绍,今天我们就来看一下群集的配置方法:当然它们都可以实现数据库的高可用性,但还是有一定的区别的:
数据库镜像和故障转移群集最主要的差异就是提供了不同级别的冗余。数据库镜像提供的保护是数据库级别的,而群集提供的保护是服务器实例级别的。另一个主要差别就是在数据库镜像中,主服务器和镜像服务器是独立的 SQL SERVER实例,两个实例有不同的名称;而群集中的 SQL SERVER实例则使用相同的虚拟服务器名称和IP地址,而且无论哪个节点主持群集实例,虚拟服务器名称和IP地址始终保持不变。
因此,在服务器一级的数据库保护(程序需要同时访问统一服务器上的多个数据库),故障转移群集将是更适合的选择。但是,如果每次只须为一个数据库提供可用性,那么数据库镜像具有更多优势。
数据库镜像不像群集那样需要专门的硬件,也没有共享存储介质失败的潜在危险。数据库镜像可以在最短时间内让备用数据库开始提供服务,其速度快于任何其它的高可用技术。此外,数据库镜像能够与ADO。NET和SQL Native Access Client很好的配合在一起,从而实现客户端的故障转移。
下面我们就来看一下数据库群集的具体配置
实现过程:
1. 已经搭建了WINDOWS 2003的群集
2. 为私有网卡禁用NETBIOS
3. 指定一个SQL SERVER可用的共享磁盘阵列
4. 安装微软分布式事务协调器(MSDTC)不可缺少。
5. 节点上不要安装防毒软件和终端服务。安装了终端服务器,群集安装不了。
6. 最好为服务帐号指定一个帐户。
现在我们前面三步已经前面的博文中做了讲解。可以参考一下!我们从第四步开始做。
我的群集拓扑如图所示:
步骤1: 创建MSDTC资源,这个服务是必不可少的
我们现在需要有一块硬盘用来存放MSDTC资源,我们可以再加一块硬盘,用来存放MSDTC资源。这个服务可以和数据库放在同一个磁盘中,如F,那么这里为什么要单独放在一个磁盘中,也就是说为什么不和SQL SERVER共享一个磁盘,是因为如果MSDTC出现问题会造成 SQL SERVER也不能使用,这是因为SQL SERVER规定如果在同一个组中,有一个资源不能使用,会导致这个组中的其他资源也无法使用。
所以我们需要关机再增加一个共享磁盘 类型是SCSI
关闭 所有节点:
编辑节点1
SERVER1 开机:找到磁盘管理—分区—格式化—分配盘符:G 可以写入一个文件进行测试
SERVER1 关机: SERVER2 开机,直接分配盘:G 一定要保持一致。也可以测试一下。
然后可以把两个节点都打开,测试。群集可以正常使用。
这个时候,MSDTC所需要的磁盘我们已经准备好了,但是服务还没有安装,下面我们就看一下,如果把MSDTC给安装上。为什么必须安装MSDTC,主要是因为SQL SERVER的复制功能要使用MSTC资源。如果不创建,不会说安装SQL 群集失败,但会发现SQL SERVER的一些复制功能无法使用。
打开节点1:
那么下面就看一下如何在群集中创建MSDTC资源 :安装此服务有一个前提就是必须启用网络DTC
A. 所有节点上,都必须要启用网络DTC 注意所有节点都要安装。
下面就可以创建MSTDC资源了。
但是它要依赖于磁盘资源和网络名称资源,
磁盘资源已经有了。所以再创建一个网络名称资源。
网络名称资源又要依赖于IP地址。所以我们先要创建一个IP地址资源。
B. 创建一个IP地址资源
创建成功后默认是脱机,所以此处要联机
C. 创建一个MSDTC 网络名称资源
这里名称资源必须依赖于IP地址,没有为什么,必须要创建一个IP
这样我们就创建了MSDTC资源
可以再次进行群集的测试!略
步骤2: 终于可以安装SQL Server Cluster了 注意只需要在节点1上安装就行了,千万不要在其他节点上安装了。因为群集会自动配置。
我们现在在节点1上:运行SQL Server 企业版的安装程序——然后提示操作
大家看到了。这里群集就可以用了,也不是灰色的了。至于其他组件,大家可以根据需要来选择装还是不装。我这里因为磁盘空间不够,所以只选择以下如图所示的组件:SQL Server Database Services
SQLSLUSTER对应的IP地址就是 外网所对应的 192。168。1。105 注意:也是不能和现有的IP相同。
输入一个此帐户的口令,以开始安装远程安装,也就是在节点2上安装。
到此处设置基本上就已经结束了。系统准备开始安装了。接下来就是漫长的等待过程。。。。。
安装成功后,我们来测试一下群集的使用:
1. 打开F:有没有产生数据库所需要的文件。
2. 在群集中已经产生了相关的服务:
3. 测试在群集中能否实现故障转换:
4. 通过外围服务器来对群集进行相关的设置,因为在默认情况有,有些服务是关闭的。这里在连接的时候选择:SQLCLUSTER 群集虚拟服务器的名称,不是LOCAL本机了。在这里设置允许本机和远程访问
然后允许使用TCP/IP 远程访问
然后再重新启动SQL SERVER服务 我们为了干净利索这里就重新启动计算机。
1. 利用SQLCMD进行测试:
SQLCMD -S SQLCLUSTER –E
Use master;
Go
Select * from sys.databases;
Go 可以看到相关的数据。
然后将 SERVER1 关机或是网卡禁用或是直接使用群集移动组。再来测试,如果还能显示数据,则说明群集成功。只是要有一定的延迟!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110328.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...