2023年11月27日发(作者:)

Sqlserver2008企业版在Windows server 2008 R2企业版上实现双机热备

一, 硬件介绍:

1,至少需要三台服务器和一台磁盘阵列柜。说明:用系统自带的故障转移群集实现双机热备至少需

要三台服务器,最好是四台;如果是用双机软件实现,两台服务器就可以。

2,一台作为域控制服务器,命名serverdc

3两台配置相同的服务器,都为双网卡,为域的2个节点,用作数据库服务器,分别命名sqlserver01

sqlserver02

4,磁盘阵列柜一台,通过BHA卡和SAS线连到服务器sqlserver01sqlserver02

5,说明:也可以再加一台服务器,用作备用域控制服务器。

二, 软件介绍

1 务器系统:Windows server 2008 R2 企业版(2008 R2中只有企业版和数据中心版支持群

集功能)

2 据库:Sqlserver2008集成SP3win2008 R2上安装故障群集,Sqlserver2008最低

也要集成SP1不然安装时会有提示、报错,如下图:

[]

LIJIBO201401

1

要把补丁集成到sqlserver2008的安装程序中,而不是安装完再打补丁。集成方法在最后。

三, 配置服务器双机热备

第一,配置网络及IP:三台服务器的IPV6都禁用,不用的网卡也都禁用

1,禁用IPV6方法如下:

1 首先把网络链接属性里面的IPV6去掉,如下图

2)然后打开CMD 运行以下命令 手动关闭IPV6的隧道,分别运行一下3条命令:

netsh interface teredo set state disable回车

netsh interface 6to4 set state disabled回车

netsh interface isatap set state disabled回车

这样就可以把IPV6禁用掉 再运行一下 ipconfig 可以看到IPV6 的地址和IPV6--IPV4的隧道不

见了。

2配置域控制器serverdc网络

服务器名

IP地址

Serverdc 255.255.255.0

192.168.10.5 192.168.10.5

子网掩码 网关

public

非必需 非必需

首选DNS 备用DNS

3,配置节点数据库服务器sqlserver01sqlserver02网络

每台服务器有两个网卡,它们分别用于互相通讯(心跳线,heartbeat)和外部网络流量(LAN

[]

LIJIBO201401

2

为了方便区分,所以我们在网络的属性中为它们重命名为private publicprivate

网络是用来用

来检测节点是否存活,不允许向客户端提供服务,而是向客户端提供相应的服务

public

服务器名

IP地址 首选DNS 备用DNS

子网掩码 网关

255.255.255.192.168.10.sqlserver01 192.168.10.192.168.10.5192.168.10.

0 1 3 (域控的IP 3(非必需)

255.255.255.192.168.10.sqlserver02 192.168.10.192.168.10.5192.168.10.

0 1 4 (域控的IP 4(非必需)

public

private

IP地址 首先DNS 备用DNS

子网掩码 网关

10.10.10.4 10.10.10.3 sqlserver01 10.10.10.3 255.255.255.0

10.10.10.3 10.10.10.4 sqlserver02 10.10.10.4 255.255.255.0

服务器名

空网关

空网关

说明:

1. 对于sqlserver01sqlserver02的网络,public一定要是第一网络顺序,private网络要处在第

二顺序。

[]

LIJIBO201401

3

选择“高级设置”

[]

LIJIBO201401

4

2. public网络为实际IPprivate网络为虚拟IP,下面群集服务还会用到IP,也是虚拟的IP,不

过要和public网络是一个网段的。

3. public的每块网卡只能设置一个IP,千万别在高级里设置双IP

4.设置private网络。

[]

LIJIBO201401

5

禁止DNS注册

[]

LIJIBO201401

6

第一, 配置域控制器,将serverdc服务器提升为域工作模式:

1)在serverdc上安装活动目录(Active Directory)

运行dcpromo出现以下窗口:

[]

LIJIBO201401

7

不选使用高级模式安装,下一步。

[]

LIJIBO201401

8

第一次建域要选新建,下一步

可运行“net user administrator”查看情况。

[]

LIJIBO201401

9

需要密码NO原因是在安装系统时没对administrator设置密码,后来只是对administrator

设置了登陆密码,两者没同步。运行“net user administrator空格/passwordreq:yes”使二者同步。

Win2008对密码要求比较高,大写、小写、数字、特殊字符,四者中必需包含三种,还要不低于8位。

提示成功后继续:

输入域的名字,下一步。

[]

10

LIJIBO201401

验证完,下一步。

[]

LIJIBO201401

11

林功能级别可根据操作系统的实际情况选择,下一步。

下一步。

此处有警告,如果每个网卡的IPV4已有固定IP,则报的是IPV6没有固定IP,可忽略,选择

继续。

[]

LIJIBO201401

12

选择

可默认,下一步。

[]

LIJIBO201401

13

输入密码,要使用强密码,下一步。

[]

LIJIBO201401

14

显示正在安装所需要的服务。

安装完成,可查看计算机已转为域工作模式:

[]

LIJIBO201401

15

说明:因为就一台域控制器(即serverdc,所以serverdc也是主域控制器,如果要安装备份域控制

器,就再加一台服务器,

同样运行dcpromo启动向导。

[]

LIJIBO201401

16

到这一步按如图选择,其他就按提示操作即可。

2)把sqlserver01sqlserver02加入域

[]

LIJIBO201401

17

Sqlserver01sqlserver02做同样的操作,输入域名,成功后会提示欢迎加入XXXX的提示,

如图。完成后重启,选择域管理员登陆,登录方式是:域名用户名

[]

LIJIBO201401

18

在默认界面选择“切换用户”

[]

LIJIBO201401

19

选择“其他用户”

[]

LIJIBO201401

20

[]

LIJIBO201401

21

登录方式是“域名用户名”

这时到sqlserverdc中看会发现sqlserver01sqlserver02已经加入域

第二, 配置磁盘阵列柜

1,安装IBM DS Storage Manager软件,根据操作系统情况安装32位的或者64位的

[]

LIJIBO201401

22

2,安装完后运行DS Storage Manager 10 Client

,

3,连接、配置,选择“Yes”

选择手动方式添加

[]

LIJIBO201401

23

选择管理方式:因为是通过网线连接的盘柜,选择“Out-of-band management”,并在Controller

中填写两个控制器的IP地址A控默认是192.168.128.101B控默认是192.168.128.102

点击“Add”

[]

LIJIBO201401

24

正在连接………

连接上了,选择“No”

[]

25

LIJIBO201401

添加子系统完成

双击进入,第一次会提示设置密码

[]

LIJIBO201401

26

选择“No”

4,正式开始配置盘柜

1)创建阵列(RAID

由于管理软件的版本不同,最上排的功能按钮名称会略有差别,找到显示未被配置的所有磁盘空间

Total unconfigured capacity

[]

LIJIBO201401

27

“Next”

[]

LIJIBO201401

28

输入阵列名称,Drive selection choices选择手动配置

[]

LIJIBO201401

29

选择raid级别,选择阵列磁盘,这里就创建一个阵列,所以鼠标左键拖住选择所有的阵列,然后点击

“Add>”

[]

LIJIBO201401

30

单击“Calculate Capacity”,计算所创建阵列容量,计算 完成,点击“Finish”

2)创建逻辑盘,需要创建三块逻辑盘,分别作为仲裁盘、DTC资源盘和数据库盘

[]

LIJIBO201401

31

1)输入磁盘空间大小,2)选择“Map later”3)根据应用需求选择逻辑磁盘条带种类(文件系统,

数据库,多媒体,自定义),三块磁盘做相同的操作,仲裁盘和DTC盘分10G左右即可。

[]

LIJIBO201401

32

[]

LIJIBO201401

33

完成后的情况如下图(Array的名字有的图片不一样,因为不是同一次截的图,不用管)

[]

LIJIBO201401

34

20T的卷初始化需要十几个小时。

3)创建热备盘,右键选择要作为热备盘的磁盘图标,选择“Hot Spare Coverage”

[]

LIJIBO201401

35

[]

LIJIBO201401

36

选择手动指定独立磁盘(Manually assign individual drives,单击“OK”

完成后的状态。

4)创建Host GroupHost以及设置主机和逻辑卷的映射(LUN Mapping做双机热备的盘柜

要先创建主机组(Host Group,再创建主机(Host如果不需要做双机热备可不用创建主机组,直

接创建主机。

1)创建主机组

[]

LIJIBO201401

37

输入名称,点击“OK”

[]

LIJIBO201401

38

2)创建主机(Host

[]

LIJIBO201401

39

输入名称

[]

LIJIBO201401

40

为每个主机端口设置别名,单击“Add?”

[]

LIJIBO201401

41

[]

LIJIBO201401

42

选择Host操作系统,以及对应配置选项。单击“Next >”

[]

LIJIBO201401

43

确认主机设置信息,点击“Finish”

[]

LIJIBO201401

44

3)映射磁盘,设置LUN Mapping:右键已创建Host

[]

LIJIBO201401

45

[]

LIJIBO201401

46

选择需要添加Mappinghost grouphost这里选择已创建的host group

选择LUN编号(默认即可),选择需要Mapping的逻辑磁盘,单击“Add”

[]

LIJIBO201401

47

[]

LIJIBO201401

48

[]

LIJIBO201401

49

5)修改缓存设置,这步可根据需要操作

1)选择需要修改的逻辑卷,右键菜单上选择“Change-Cache Settings”

[]

LIJIBO201401

50

针对各个选项的说明:

Enable Read caching(启用读缓存):启用读缓存不会造成数据丢失风险。很少情况下,需要关闭读

缓存为其它逻辑驱动器提供更多的缓存。

Enable Write caching(启用写缓存) 写缓存使存储系统先将数据写入缓存,而不是直接写入磁盘。

这会明显的改善性能,尤其是对于随机写的数据库应用。对于连续写的环境,性能会随写数据的大小不

同而变化。如果逻辑驱动器只用于读访问,关闭该逻辑驱动器的写缓存会提高整体性能。

Enable write caching without batteries(启用无电池写缓存)允许写入高速缓存(即使 RAID

制器模块电池已完全放电、未充满电或不存在)

Enable Write cache mirroring(启用写缓存镜像)write cache mirroring 能保证一块RAID

失效后的cache数据完整性。这使数据有更高可用性,但是降低了性能数据在控制器之间跨过磁盘端

的光纤环路形成镜像,与正常的数据传输发生竞争。建议使用该功能,以保证一块RAID卡失效后的

cache数据完整性。

Enable dynamic cache read prefetch(启用动态缓存预读取)启用动态高速缓存预读取。

[]

LIJIBO201401

51

第三, 管理磁盘。

1,进入服务器磁盘管理如果盘柜是双控的,需要打补丁,不然同样的磁盘会显示2个:

[]

LIJIBO201401

52

2,打完补丁后通用的磁盘会显示一个,如下:

[]

LIJIBO201401

53

3,块磁盘做相同的操作,联机、初始化、新建分区等。

联机

初始化

[]

LIJIBO201401

54

新建分区

4,sqlserver02中也进行相同的操作;

注意:sqlserver01 sqlserver02中建立的共享磁盘的大小和盘符以及分区格式必须一致;

第五,添加和配置节点的故障转移群集

1sqlserver01 sqlserver02均添加角色

选择web服务器(IIS)和 应用程序服务器

[]

LIJIBO201401

55

选择分布式事务处理,建议其它项也都选上,下一步:

[]

LIJIBO201401

56

IIS6管理兼容性选上。,下一步安装直到完成。

2 sqlserver01 sqlserver02 添加 故障转移群集功能。

功能中添加

[]

LIJIBO201401

57

3、安装完成后一定要验证所配置的群集

选择验证配置

[]

LIJIBO201401

58

浏览,选择要验证的群集节点

[]

LIJIBO201401

59

通过高级查找找到群集节点的名称,可以选择一个进行验证,然后再到另一个群集节点服务器上进行

验证另个一,也可以两个节点同时进行验证,这里选择两个同时验证。

下一步:

建议选择运行所有测试,不然到后面如果报错的话很难查找原因。

[]

LIJIBO201401

60

正在验证………………

验证中,这一过程时间挺长。

[]

LIJIBO201401

61

验证完成,可通过下拉菜单查看验证情况,也可以通过查看报告查看验证情况,一定要所有项目都通

过测试,如果后面报错的话再回来查找原因会很难查。

3,验证通过后,新建故障转移群集,这里在sqlserver01中新建。

[]

LIJIBO201401

62

选择创建一个群集

浏览,选择要建立群集的节点,这里同样两个节点一起创建群集,把两个节点sqlserver01

sqlserver02都加入

[]

LIJIBO201401

63

输入群集名称,输入群集IP地址,IP为虚拟的IP,但一定要和public在一个网段。

192.168.10.0/24的意思是:IP192.168.10.0,子网掩码是255.255.255.0

确认信息,下一步:

完成,同样不要有报错,因为前面已经通过验证,所以创建群集很快会完成。

[]

LIJIBO201401

64

4,配置仲裁盘

选择推荐的配置,下一步:

[]

LIJIBO201401

65

选择一个磁盘........完成。

5,、在sqlserver01上添加分布式事务协调器(DTC

选择“配置服务或应用程序(S)

[]

LIJIBO201401

66

在下面的步骤中在选择“分布式事务协调器(DTC

输入DTC 服务的名称,并分配一个IP 地址,DTCIP和故障转移群集IP的意思一样。

选择磁盘,下一步:

……………………

完成。

[]

LIJIBO201401

67

6,优化配置

1),群集网络,private网络只能用来检测节点是否存活,不允许向客户端提供服务,而public

是向客户端提供相应的服务

[]

LIJIBO201401

68

“首选所有者”也可以不配置

[]

LIJIBO201401

69

将现有群集资源调整为:由节点1作为首选节点,这样如果服务器或应用程序从节点1故障转移到节点2

并且当节点1再次可用时,服务或应用程序会主动将资源恢复到节点1

第六,安装sqlserver2008故障转移群集

1 域控制器serverdc中为sqlserver服务添加账户

说明:可以为sqlserver每一个服务添加一个账户,也可以只添加一个账户,所有的sqlserver服务

都用这一个账户。

如果不为sqlserver添加账户,到安装sqlserver2008为服务添加账户时,节点中的账户或

sqlserver账户都添加不上,会报错。

(1)在域控制器serverdc中添加账户sqladmin并设置密码。

(2) sqladmin加入域管理员Domain Admins,右键sqladmin“属性--添加

[]

LIJIBO201401

70

[]

LIJIBO201401

(3)sqladminsqlserver01/sqlserver02--

--administrators上右键属性--添加,查找到sqladmin

2、注意:安装sqlserver2008故障转移群集第一个节点时,要求所有的群集资源都由本节点占有,

并且其他节点在集群中也要处于正常监听心跳的状态

3以上的都是为安装sqlserver2008故障转移群集做的准备工作,现在开始安装sqlserver2008

障转移群集。

sqlserver01节点上安装。

[]

LIJIBO201401

72

网络绑定顺序有警告,如果public网络在第一顺序,此警告可忽略,下一步:

[]

LIJIBO201401

73

输入网络名称,程序组件、实例安装在节点的本地磁盘,不要选择共享盘。

[]

LIJIBO201401

74

选择磁盘,下一步:

[]

LIJIBO201401

75

输入IP,要和public网络在一个网段里。

[]

LIJIBO201401

76

账户设置,选择对所有sql服务使用相同账户即可,账户选sqladmin,数据目录要选共享盘(S)

下一步--安装……………….完成。

[]

LIJIBO201401

77

安装完数据库服务应该是联机的

4、在sqlserver02上添加群集节点,安装前把数据库服务和数据库服务所占的磁盘留在sqlserver01

上,其他的所有的资源都要转移到sqlserver02节点。

[]

LIJIBO201401

78

[]

LIJIBO201401

79

选择实例名称,下一步:

[]

LIJIBO201401

80

输入密码,下一步:

…………………完成。

5、同样把sqlserver服务的首选所有者设置为sqlserver01,如果前面分布式事务协调器没首选选所

有者,这里也不要选。

[]

LIJIBO201401

81

然后连接SQL2008实例,服务器名称这里有两种情况:(1)安装时实例名如果是默认的,就可以只

用网络名或者IP(2)实例名如果不知默认,就得使用网络名称实例名或者IP实例名

[]

LIJIBO201401

82

第七、修改群集IP

如果服务器环境的IP段改变了,群集的IP也得跟着改变。

环境:比如将群集网络修改为10.30.0.0/24,ServerdcIP改为10.30.0.5sqlserver01改为

10.30.0.3sqlserver02改为10.30.0.4windows群集IP改为10.30.0.6DTC改为10.30.0.7

sqlserver2008群集IP改为10.30.0.8

步骤如下:

1,在serverdc上加上10.30.0.5/24,就是设置双IP

2关闭sqlserver01节点转移到sqlserver02同样在sqlserver02上加上10.30.0.4/24

先修改windows群集IP,在原有IP上右键属性

[]

LIJIBO201401

83

把原来的IP改为现在的,下图

[]

LIJIBO201401

84

其次修改DTCIP

最后修改sqlserverIP

[]

LIJIBO201401

85

都改完后再把sqlserver02原来的IP去掉,DNS也做相应的修改,只保留现在的。

3,启动sqlserver01,直接修改IP、掩码、网关、DNS

4,把serverdc的原来IP去掉,只保留现在用的。

5,验证群集是否正常。

[]

LIJIBO201401

86

第八、sqlserver2008集成补丁方法,以集成SP3为例

SQL Server 2008中文版集成SP3

此方法同样适用于SQL Server 2008SQL Server 2008 R2集成其它补丁,只是把相应的

名称做修改。

第一步:新建文件夹、复制原始文件、提取SP3包。

1、将原始SQL Server 2008所有文件复制到硬盘的一个文件夹(如:D:SQL2008_CHS),

并在该文件夹下新建一个文件夹SP3(即:D:SQL2008_CHSSP3)。

2、将以下3个从微软官方下载下来的SP3文件复制到另外一个文件夹(如:D:SP3),这三个版

本都应该包含:

3、分别运行以下3个命令,将SP3解压到D:SQL2008_CHSSP3

1D:

/x:D:SQL2008_CHSSP3

2D:

/x:D:SQL2008_CHSSP3

3D:

/x:D:SQL2008_CHSSP3

第二步:用SP3中的文件替换原始文件。

1. D:SQL2008_CHSSP3文件夹下的复制到D:SQL2008_CHS

文件夹下,覆盖原文件。

1copy D:SQL2008_ D:SQL2008_CHS

2copy D:SQL2008_CHSSP3 D:SQL2008_CHS

LIJIBO201401

87

2.依次运行以下命令

[该命令的作用是:从D:SQL2008_CHSSP3文件夹 复制

除了以外的所有文件(注意:是文件而不是文件夹)

D:SQL2008_CHS文件夹 来更新原始文件。 ROBOCOPY“Windows 的可靠文件复制

]

1robocopy D:SQL2008_CHSSP3ia64 D:SQL2008_CHSia64 /XF

2robocopy D:SQL2008_CHSSP3x64 D:SQL2008_CHSx64 /XF

3robocopy D:SQL2008_CHSSP3x86 D:SQL2008_CHSx86 /XF

注意:如果不小心替换了文件,当运行的时候

可能会发生错误。 如果发生这种情况,恢复到原来的版本。

第三步:修改配置文件。

1. 确定是否拥有在下列目录:

D:SQL2008_CHSia64

D:SQL2008_CHSx64

D:SQL2008_CHSx86

内有这个文件,打开文件,增加下列一行内容

PCUSOURCE=".SP3"

2.如果没有以上所说的文件,创建一个具有下列内容的文件:

;SQLSERVER2008 Configuration File

[SQLSERVER2008]

LIJIBO201401

88

PID="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"

PCUSOURCE=".SP3"

(注:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX为安装序列号)

并分别复制到下列文件夹内:

D:SQL2008_CHSia64

D:SQL2008_CHSx64

D:SQL2008_CHSx86

该文件的作用是告诉安装程序在哪里找到SP3的源媒体,既在第一步3中提取的内容。

第四步:完成。

直接运行D:SQL2008_安装即可。

LIJIBO201401

89