日志传送是SQL SERVER2000企业版进行双机热备的一个主要解决方案,其原理比较简单,实现也比较方便,只是由于和Windows之间错综复杂的关系,导致设置起来有不少困难,出现问题也不容易诊断。

1.实现概述
 *双机热备针对的是具体的某个数据库而不是整个服务器
 双机热备基于日志传送原理。全程由作业控制,主服务器定时向辅服务器发送日志,辅服务器处于STAND BY模式下,定时按日志进行差异恢复。如果主服务器停摆,监视服务器会将主服务器和辅服务器的角色互换。监视服务器推荐设置在第三台服务器上,如条件不具备,也可考虑设置在辅服务器上。

                                     

SQL Server 双机热备(based on log shipping)_windows


                                                                       图1-1

2.准备工作

操作系统:

 首先准备两台干净环境的计算机,装完全一样的操作系统,SQL SERVR2000企业版(版本和补丁包一致),SQL SERVER相关的硬盘一定要NTFS格式,不装MACFEE(我的个人经验说明MACFEE和SQL SERVER有内存冲突)。

 为两台机器建立隶属Administrator组的帐户名和密码,帐户名和密码需要完全一样(也可直接用Administrator)。

 在两台机器的…/MSSQL目录下建立两个共享文件夹,名称不要相同,如shipping_source和shipping_dest,并给予Administrator组帐号的全部权限。这两个文件夹将作为两台服务器上的数据库存放和装载日志文件的文件夹(具体设置后面将讲到)。

 检查两台机器的子网掩码,保证其在一个域或工作组中,在网上邻居内能看到对方服务器的共享文件夹并且访问时不需要输入密码(*如弹出密码输入,则不要输入以免影继续响调试)。

 主服务器和辅服务器上的SQLSERVER服务和SQLAGENT服务都设置成开机自动启动。

SQL SERVER 2000企业版:

 在主服务器和辅服务器上以自己的计算机名或域中的成员名注册各自和对方的SQL SERVER(*(local)不要,IP也可以)

 打开数据库的属性窗口,勾选自动启动SQL SERVER,自动启动SQL SERVER代理,自动启动MSDTC,(两台都要做)并检查两台服务器的产品版本和操作平台是否一致。                

SQL Server 双机热备(based on log shipping)_sql server_02


                                                                      图2-1

 切换到“安全性”选项卡,保证身份认证是SQL SERVER和WINDOWS

 把启动服务帐户由系统帐户修改为前面建立的Administrator组用户,两台服务器都要设置(此步骤很重要),设置时administrator前会要求加域名,不能设错。               

SQL Server 双机热备(based on log shipping)_服务器_03


                                                                     图2-2

 将SQL AGENT的启动帐户也改为刚才的帐户,具体步骤如下:

 打开管理->SQL Server代理->属性,在常规选项卡的服务启动帐户中将帐户改为本帐户,输入刚才的帐户和密码(两台机器都要做,很重要)。               

SQL Server 双机热备(based on log shipping)_数据库_04


                                                                     图2-3

到此请检查:
1.两台数据库服务器的Windows用户名密码
2.SQL Server用户名密码
3.SQL Agent用户名密码
是否全部相同
两台机器的共享文件夹是否全部都可以在网上邻居里看到,而且访问不需要用户名密码
而且具有全部权限。
3.设置
所有的设置都在主服务器里进行!
在想要进行日志传送的数据库里运行维护计划向导:

      

SQL Server 双机热备(based on log shipping)_数据库_05


                                                                      图3-1

在向导中勾选你想要传送日志的数据库,并选中“将事务日志传送到其它的SQL 

Server(日志传送)”      

SQL Server 双机热备(based on log shipping)_sql server_06


                                                                      图3-2

 其它维护计划步骤与日志传送无关,略

 存储备份文件目录设定成前面的主服务器上的共享文件夹的本地路径,

如:D:/Program Files/Microsoft SQL Server/MSSQL/shipping_source(重要步骤)      

SQL Server 双机热备(based on log shipping)_sqlserver_07


                                                                      图3-3

 指定事务日志共享中,指定到主服务器的共享文件夹的网络路径(重要,主服务器备份

文件目录对应主服务器备份文件目录的共享网络路径)

如://192.168.0.127/shipping_source      

SQL Server 双机热备(based on log shipping)_windows_08


                                                                      图3-4

在添加目的数据库中:

服务器名称:辅服务器的名称(SQL SERVER注册名应和计算机名相同)

事务日志的目录:指向辅服务器上创建的共享文件夹的本地目录

目的数据库:事先不要在辅服务器上建立和主服务器同名的数据库,此向导会自动建立,勾选“创建并初始化新数据库”

使用以下文件目录:用于数据,用于日志,这个和本地建库没有区别,可用默认的,但要保证该盘是NTFS格式

数据库装载状态:选中备用模式(重要,不在备用模式无法使用差异还原)

终止数据库中的用户(推荐):勾选此项

允许数据库采用主角色:勾选此项

事务日志备份目录:指的是辅服务器的备份目录的网络路径,如图中所示(重要,辅服务器备份文件目录对应辅服务器备份文件目录的共享网络路径)      

SQL Server 双机热备(based on log shipping)_sqlserver_09


                                                                      图3-5

立即执行全部的数据库备份

设置备份调度:频率指多长时间进行一次日志备份-传送-装载的过程

 装载延时指主服务器日志备份调度后到辅服务器开始根据日志还原的延时,一般需要设几分钟的延时,但应保证到下一次传送调度时辅服务器能装载结束。      

SQL Server 双机热备(based on log shipping)_服务器_10


                                                                      图3-6

该阈值指因为种种原因多长时间内主服务器没备份或辅服务器没还原就告警,应根据实际情况设置,但应保证大于3倍的频率比较合理。

生成的警告可以在SQL Server日志中查看。      

SQL Server 双机热备(based on log shipping)_windows_11


                                                                      图3-7

监视服务器在没有第三台服务器的情况下应该使用辅服务器,用Windows身份认证。      

SQL Server 双机热备(based on log shipping)_sqlserver_12


                                                                      图3-8

是否产生报表和维护记录根据实际需求决定。

 

 

4.检查
检查主服务器:
设置成功后,主服务器内应有一条维护计划
主服务器应有一条如下作业:

SQL Server 双机热备(based on log shipping)_数据库_13


                                                                  图4-1

检查辅服务器:

 辅服务器内应产生一个状态为“只读”的同名数据库:                      

SQL Server 双机热备(based on log shipping)_windows_14


                                                                  图4-2

 辅服务器内应产生一个维护计划:

 辅服务器内应产生五个作业:

SQL Server 双机热备(based on log shipping)_sqlserver_15


                                                                  图4-3 

辅服务器内应产生一个日志传送监视器(或第三台服务器上的日志传送监视器):

           

SQL Server 双机热备(based on log shipping)_windows_16


                                                                  图4-4

 监视器内可查看日志的传送情况:

 日志文件先在主服务器上备份,再复制到辅服务器上,然后在辅服务器上装载。

 增量指距离上一次成功操作的时间,如果大于阈值则会产生告警。

 进行几个周期的观察:

观察主服务器的共享备份目录里是否每周期多出一个TRN文件:

如没有,则重点检查备份目录的设定

 观察辅服务器的共享备份目录里是否每个周期多出一个TRN文件:

 如没有,则检查备份文件路径设置,Windows用户权限,SQL SERVER用户名密码,SQL AGENT用户名密码,子网掩码,网上邻居,共享文件夹权限。