在许多系统中都会用到数据库系统,无论是SQL Server还是Oracle,对磁盘的IOPS要求较高,这就要求为数据库系统配置较高性能的磁盘。现在普通采用虚拟化技术,数据库系统也是运行在虚拟机中,如果系统对数据库的要求较高时,虚拟磁盘的性能就不能满足需求,需要重新设计数据库的磁盘。如果碰到这种情况,可以采用下面的方案。
(1)在服务器上配置3~4块SSD固态硬盘并创建RAID5或RAID0。创建一个SQL Server的“虚拟机”做主体服务器,使用这些固态硬盘做虚拟硬盘或者直接使用固态硬盘(有的虚拟化软件支持直接使用物理主机硬盘)。
(2)再创建一个SQL Server的虚拟机,使用原来的存储虚拟硬盘,在系统配置为SQL Server镜像服务器,对固态硬盘上的数据库进行镜像。
(3)原来的应用系统使用“主体服务器”的数据库服务。
这样即保证了数据库的性能需求,又保证了数据的安全性。图1是网络拓扑。
clip_p_w_picpath002
图1采用SQL Server镜像拓扑
【说明】SQL Server镜像需要Active Directory的支持。

1.1创建SQL Server主体虚拟机与镜像虚拟机

关闭虚拟主机服务器,添加固态硬盘,并进入RAID卡配置界面,将新添加的固态硬盘创建一个新的阵列并创建一个逻辑磁盘,然后进入系统。如果当前虚拟化软件支持将主机存储分给虚拟机,则直接创建虚拟机并为其分配固态硬盘存储,如果不支持则需要将新添加的存储硬盘添加为虚拟主机能管理的存储,并创建SQL Server主体虚拟机,为虚拟机分配SSD的存储。之后再创建一个“镜像服务器”虚拟机。之后分别在虚拟机中安装操作系统、将系统加入Active Directory、并安装SQL Server 2012企业版,这些不一一介绍。
【说明】当物理主机是IBM 3850、存储是IBM DS3512(配置6块600GB的10K的SAS硬盘)时,主机安装VMware ESXi 5.1,主机采用3块金士顿120GB的SSD硬盘组建RAID5并将此磁盘分给虚拟机(精简置备磁盘)时,IOPS高达12000(如图2所示);而采用存储做虚拟机硬盘(采用厚置备磁盘)IOPS在1400左右(如图3所示)。
clip_p_w_picpath004
图2 虚拟机采用SSD固态硬盘做虚拟磁盘时IOPS
clip_p_w_picpath006
图3虚拟机采用存储做虚拟磁盘时IOPS
下表分别是使用SSD固态硬盘、DS3512存储做虚拟磁盘时的相关测试数据。
存储介质
硬盘大小
置备方式
基准测试(MB/s
随机存取-IOPS
最低
最高
平均
存取时间
突发传输率
512b
4K
64K
1M
随机
SSD
150GB
厚置备
88
211
173.8
0.217ms
142.2
4933
4670
3047
561
1282
SSD
150GB
精简配置
127.9
1168.7
1033.3
0.062
168.4
11804
15494
10031
2266
3956
DS3512
120GB
精简配置
22.6
929
372
6.45ms
188.9
185
201
145
74
105
DS3512
120GB
厚配置
39
900.4
390.7
3.57
169.7
306
246
214
107
149
DS3512
150GB
厚置备
155.2
1142.1
1007.5
0.763
224.4
1370
1361
980
670
718

1.2为SQL Server配置数据库镜像

为SQL Server配置数据库镜像的主要步骤及关键点如下:
(1)备份数据库及事物日志(备份两次到同一文件)。
(2)开户TCP1433、5022端口。
(3)加入到域,“服务”中启动SQL Server的帐户为“域帐户”
(4)为SQL Server“方面”中启用“Remote DAC”
(5)还原选择“RESTORE WITH NORECOVERY”,选项“不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。”。
配置好数据库镜像之后,在“主数据库服务器”中对应的数据库状态为“主体,已同步”,在镜像服务器上状态为“镜像,己同步/正在还原”。
下面介绍主要的内容。
1.2.1备份数据库及事物日志
在SQL Server主体服务器上,将要进行镜像的数据库进行“完整”备份,然后再备份“事物日志”到同一文件。
(1)在SQL Server主体服务器上,选中要进行镜像的数据库,选择“备份”,在“常规”选项中,添加备份位置及备份文件,在“备份类型”中先选择“完整”,然后单击“确定”按钮进行备份,如图4所示。
clip_p_w_picpath008
图4 完整备份
(2)等备份完成后,再次进入备份对话框,在“备份类型”选择“事物日志”,备份文件仍然是上一文件,再次备份,如图5所示。
clip_p_w_picpath010
图5 备份事物日志
1.2.2打开TCP的1433及5022端口
在两台SQL Server服务器中,在“防火墙”中开启TCP的1433及5022的入站。如图6所示。
clip_p_w_picpath012
图6配置防火墙
1.2.3为SQL Server“方面”中启用“Remote DAC”
在两台SQL Server管制控制台中,右击SQL Server名称,选择“方面”,如图7所示。
clip_p_w_picpath014
图7 方面
然后在“方面”中选择“外围应用配置器”,将“RemoteDacEnabled”修改为 “True”,如图8所示。
clip_p_w_picpath016
图8 启用RemoteDAC
1.2.4修改SQL Server服务帐户为域管理员帐户
之后在两台SQL Server计算机中,打开“服务”,修改SQL Server“登录”帐户为域管理员帐户,如图9所示。
clip_p_w_picpath018
图9 修改SQL Server登录帐户
1.2.5配置SQL Server镜像服务器
然后切换到SQL Server镜像服务器,复制备份后的SQL Server备份文件,在SQL Server管理控制台中选择“还原数据库”(不需要新建同名数据库),在“设备”中选择备份文件,如图10所示,其他选择默认值。
clip_p_w_picpath020
图10 选择备份文件
在“选项”中,在“恢复状态”选择“RESTORE WITH NORECOVERY”,如图11所示,然后单击“确定”按钮开始还原,如图11所示。
clip_p_w_picpath022
图11还原选项
还原完成后,镜像服务器上的数据库状态为“正在还原”。
1.2.6配置数据库镜像
然后切换到主体服务器,右击要进行镜像的数据库,配置镜像,如图12所示。可以单击“配置安全性”按钮进行配置,这个比较简单,不再介绍。配置完之后开始进行同步,直到同步完成,如图12所示。
clip_p_w_picpath024
图12配置数据库镜像完成
镜像(同步)之后,在主体服务器上,显示为“主体,己同步”,如图13所示。
clip_p_w_picpath026
图13主体己同步
在“镜像服务器”上,显示为“镜像,己同步/正在还原)”,如图14所示。
clip_p_w_picpath028
图14镜像服务器显示己同步