日志传送功能可自动复制数据库的交易日志文件,并回存到备援服务器 (standby server) 的另外一个数据库。因此可大幅提高SQL Server数据库之可用性。因为备援数据库完整地接收来源数据库的异动情况,所以它就是一份来源数据库的复本 - 差别仅在于资料复制与加载过程所产生的时间差。然而,当主要服务器停摆时,您就可以将备援服务器更改为新的主要服务器。如果原来的主要服务器可重新上线使用,那么您可以将其设置为新的备援服务器 - 事实上就是对调两台服务器的角色。

在SQL Server 2000企业版或开发版之中,Microsoft在Enterprise Manager内提供了一项日志传送(Log Shipping)的功能 - 为数据库维护计划精灵的其中一部份。在使用之前的SQL Server时,您需要自行建立日志传送系统。

设置日志传送  
主要服务器(primary server) 即是实际处理资料的正式服务器;此服务器内拥有来源数据库。次要服务器(secondary server)上存放目的数据库,用来复制与回存来源数据库的交易日志文件。监控服务器(monitor server)用来监控主要服务器与次要服务器。与SQL Server 7.0不同的是(SQL Server 7.0是在次要服务器上监控日志传送动作),SQL Server 2000使用Enterprise Manager的日志传送监控工具来监控每一组传送中的日志资料。Microsoft建议您在另外一台监控用服务器安装这个工具程序。

您可以利用Enterprise Manager的数据库维护计划精灵设置SQL Server 2000的日志传送。但是在您激活精灵之前,您必须先进行某些准备工作。一开始请先遵循下列步骤:
1.决定一组要设置日志传送的服务器(即日志传送过程之中,主要服务器与次要服务器为何)。
2. 选择一台监控服务器。最好不同于主要服务器或次要服务器。
3. 设置所有服务器之安全性。您用来设置日志传送的Windows帐号必须拥有所有服务器上SQL Server系统管理者(sa)的权限。
4. 在主要/次要服务器上建立分享资料夹。首先,将来源数据库交易日志文件所在的目录设置为分享目录。接着在次要服务器上,将您打算回存交易日志文件的目录也分享出来。为了清楚辨别各分享目录,请在分享名称内注明服务器与数据库之名称。如果分享目录名称已存在,您可能需要从分享目录中删除或是搬移其它档案,特别是旧的日志备份文件。然后再将这些分享目录的权限开放给每一台服务器上SQL Agent所使用的Windows帐号。  累了吗玩一下吧
5. 决定如何建立并初始化目的地数据库。您可以在日志传送设置过程就先建立与初始同步化目的地数据库,否则您必须手动进行初始数据库之回存动作。
6. 在Enterprise Manager注册此三台服务器(即主要、次要与监控服务器)。
在您完成这些准备动作时,您就可以准备激活数据库维护计划精灵来设置日志传送。您可以先检视日志传送过程的五个连续步骤,如图1所示:

图1:SQL Server 2000日志传送的设置步骤。
   
前两个为选择性(optional)步骤。如果您尚未同步化来源与目的数据库,则步骤1会为您先备份来源数据库,然后执行同步化动作。在步骤2时,精灵会将备份文件复制到次要服务器,并回存到目的地数据库。
精灵一定会执行其余三项步骤。在步骤3时,精灵将在主要服务器上建立一个SQL Agent工作(job)。此工作将会周期性地把交易日志文件内容备份到磁盘档案内。精灵也会在次要服务器上建立一个传送日志的数据库维护计划;此计画包含两个SQL Agent工作:一个是将交易日志文件复制到次要服务器(步骤4),另一个则是将交易日志文件回存到目的数据库(步骤5)。这些步骤将建立一组日志传送服务器(互相有日志传送关系的两个数据库)。如果您想要额外提供容错功能或是设置一台报表服务器,那么您可以将主要服务器与另外一台次要服务器组合在一起,再设置一组日志传送配对服务器。
准备工作
1. 准备 Primary Server (以下为Ztao-1) 及 Secondary Server (以下为IntronTest)
2. 将要作 Log Shipping 的数据库(以下为IntronERP)之还原模型(Recovery Model)设置为完整(FULL)。 dl. 网管软件下载

3. 将两台计算机的SQL Server服务账号加入Administrator群组
4. 建立Primary Server 备份Log的数据夹
a. 建立C:\Logfile,以存放Primary Server数据库Transaction Log的备份
b. 将C:\Logfile作数据分享,分享目录的权限开放给SQL Agent所使用的Windows帐号。
5. 建立 Secondary Server 还原的数据夹(在Secondary Server)
a. 建立C:\Shippedlog数据夹以存放从Primary Server传送过来的Transaction log 的备份
b. 建立 C:\Logfile数据夹,当角色交换后,可存放新Primary Server的数据库Transaction Log
c. 将C:\Logfile数据夹作资源共享,分享目录的权限开放给SQL Agent所使用的Windows帐号。
6. 在Primary Server中,新增 Secondary Server的注册信息
逐步设置
在Primary Server中,设置Standby Server及Log shipping
1、开启Enterprise Manager,由工具中点选数据库维护计划
   
2、欢迎画面:

3、选取数据库:勾选Log shipping

4、更新数据最佳化信息:维持预设,不用选择!

5、数据库完整性检查:维持预设,不用选择!

6、指定数据库备份计划:一般不用选择!  

7、指定交易记录文件备份磁盘目录:储存备份文件的目录指向Primary Server上存放资料日志文件的目录位置!


8、指定交易记录共享:在此窗口中您必须指定主服务器上的分享目录名称。可以按下【…】按钮后浏览目录名称。

   
9、指定记录传送目的地:点选【Add】按钮后可开启『新增目的数据库』对话框
10、新增目的数据库:输入所有Secondary Server的相关信息


【伺服务器名称】下拉式选单会列出您在先前准备工作中曾利用Enterprise Manager所注册的Secondary Server名称。在【目录】文字字段里,请输入Secondary Server的目录名称,用以接收来源数据库交易日志文件复本;此名称为本地端路径名称,而不是分享目录名称。
有关数据库的加载状态,您有两种选项可以设置:不复原模式(No recovery mode)与待命模式(Standby mode)。所谓的『不复原模式』表示使用者将无法进行资料查询,唯一可执行的动作只有回存交易日志文件。而『待命模式』则是将数据库设置成只读状态;只要不是在回存数据库的时候,您都可以查询资料。窗口内还有一个【终止数据库中的使用者(建议选项)】选项,会在回存数据库或是回存交易日志文件时发生动作。在回存数据库或是交易日志文件时,『回存程序』将是数据库内唯一的使用者。所以,Microsoft建议您勾选此选项,否则其它使用者可能会影响回存动作的进行。11、指定记录传送目的地:该设置完成。
12、初始化目的服务器:可以挑选最近一次的备份资料;或是建立一份新的备份资料。对大型数据库而言,使用既有的备份资料会比较有效率。然而,从那次备份之后的所有交易日志文件都必须存在于主要服务器上交易日志文件的分享目录之中,精灵才有办法复制与回存到次要服务器。如果数据库不是很大,那么让精灵产生新的备份将会比较简单。


13、记录传送排程:可以设置来源数据库上交易日志文件的备份频率;也可以设置次要服务器上SQL Agent工作 (由精灵建立的,用来复制与加载交易日志文件) 的频率。日志传送的频率可粗略设置为一分钟一次;但以大型数据库来说,五分钟一次是比较普遍的选择。


14、记录传送临界值:针对交易日志文件备份动作,以及复制与回存工作,设置合理的延迟时间。当超过临界时间时,日志传送监控程序对话框将会响应一个警示讯息。
  

15、指定记录传送监视服务器信息:这里可能会直接使用默认值,但是预设监控服务器是设置为主要服务器。一般来说,不会把主要或次要服务器当作监控服务器,这是因为如果其中一台服务器故障停摆时,将无法得知目前日志传送的状态为何。


16、产生报告:建议将报告存到你Log的目录下,或者专门存放有关Log Shipping的Log的目录下,方便出错时查找原因!


17、维护计划历程记录:在Secondary Server上也保存一份记录。 bbs. 国内最早的网管论坛

18、设置Log Shipping名字
19、按下【完成】吧!此时精灵会自动从主要服务器与次要服务器之间设置日志传送动作,并且在监控服务器上设置日志传送监控程序。


更改日志传送之组态设置

您可以使用数据库维护计划之【属性】对话盒来更改日志传送相关设置。在【交易记录文件备份】设置页提供的选项可更改日志传送过程中交易日志文件备份的组态。

记录传送】设置页显示出您先前在维护计划内设置的日志传送配对服务器;如果您设置了其它组日志传送配对服务器,也会列在此处。本设置页也包含下列选项:新增目的数据库(用以建立新的日志传送配对服务器)、删除既有日志传送配对服务器、编辑目前的日志传送配对服务器之属性,以及移除整个日志传送功能。


当您在【记录传送】设置页之中点选【编辑】时,将开启【编辑目的数据库】对话盒。您可以在对话盒内【一般】设置页检视与修改次要服务器的交易日志文件之目录位置,以及未来做为主要服务器时分享目录之路径。【初始化】设置页则可让您更改复原模式,以及次要服务器上复制与回存之频率。【临界值】页可以设置日志传送之临界周期。


在【超出同步临界值】项目可设置:当日志传送监控程序产生警示讯息之前所能允许的最大时间间隔 (介于最近一次来源数据库交易日志文件备份以及最新的交易日志文件回存动作之间)。您也可以在日志传送监控程序之中设置此参数。【在入时间延迟】、【档案保留期限】以及【历程记录保留期限】则是与次要服务器相关的设置。

注:监控服务器在这些组态选项中扮演相当重要的角色。因为【记录传送】设置页的大部分信息取决于监控服务器,所以一但监控服务器停摆时,您将无法更改日志传送的组态设置值。在监控服务器执行SQL Server 2000 Profiler时,主要服务器会连到监控服务器,然后从日志传送资料表中取得既有的日志传送计划。因此,要改变日志传送计划的设置时,您必须确定在Enterprise Manager内可以连接到监控服务器。检查与监控日志传送动作

SQL Server 2000的日志传送功能还提供了一项日志传送监控程序,可让您安装在另一台独立监控用服务器。
在SQL Server企业版与开发版的msdb数据库中共有七个关于日志传送的资料表:
log_shipping_plans
log_shipping_plan_databases
log_shipping_databases
log_shipping_plan_history
log_shipping_monitor
log_shipping_primaries
log_shipping_secondaries

上述每一个资料表都存在于主要、次要以及监控服务器上。各服务器也会使用某些资料表储存资料,视该服务器在日志传送系统的角色为何。

在主要服务器上检视日志传送动作 从Enterprise Manager 里,您可以登入主要服务器,并观察与监控日志传送动作。如果某个数据库已设置要进行日志传送,在数据库【内容】对话盒的【一般】页可得知该数据库的角色(来源数据库;或是目的数据库),也可知道日志传送监控程序是位于那一台服务器上。您可以在Enterprise Manager内SQL Server Agent的【作业】节点,检视日志传送与交易日志文件备份工作所执行的状态与历史纪录。主要服务器只使用msdb数据库的两个日志传送资料表。在log_shipping_databases资料表中,SQL Server新增的每一笔资料将会把数据库维护计划ID以及日志传送来源数据库连结在一起。在log_shipping_monitor资料表中,SQL Server新增的每一笔资料包含了监控服务器的名称,以及登入数据库的方式。

在次要服务器上检视日志传送动作 日志传送计划存在于次要服务器。您可在次要服务器监控SQL Agent工作(复制交易日志文件到次要服务器,并回存至目的数据库)。 您也可检视目的数据库的属性对话盒,以决定该数据库在日志传送过程所扮演的角色。

在次要服务器上,SQL Server使用msdb数据库的四个日志传送资料表。当SQL Server建立一个日志传送计划之后,它会新增一笔资料到log_shipping_plan资料表,用以纪录:主要与次要服务器的名称、档案位置、复制与回存工作ID(来自于次要服务器之sysjobs系统资料表)。在log_shipping_plan_databases资料表,SQL Server会连结维护计划以及来源/目的数据库名称,而且储存最后一次进行档案复制与加载动作的相关信息。log_shipping_plan_history资料表则是将每次日志传送的复制与回存事件纪录下来,连同该工作是否成功的信息。SQL Server也会新增一笔资料在log_shipping_monitor资料表,用以参照监控服务器。

如果您勾选了【Allow database to assume primary role】复选框,您将在次要服务器上看到一个重要的额外项目:另一个数据库维护计划(与您先前所建立的维护计划名称相同),但是并没有激活日志传送。您也会看到一个非作用中(disabled)的SQL Agent工作(备份该数据库的交易日志)。也许您会被这些项目所混淆。尽管它们的名字相同,但是此额外产生的维护计划却不同于当初所建立的那个。SQL Server保留第二个逆向维护计划是为了以后可能发生的主要/次要服务器角色对调动作所准备。
在监控服务器上检视日志传送动作当您正确设置日志传送之后,SQL Server 会激活监控服务器上Enterprise Manager 的日志传送监控工具程序。此外,SQL Server会建立两个SQL Agent 警示工作(alert job):一个用来执行工作,另一个处理out-of-sync情况。

使用监控工具程序的方式是,开启Enterprise Manager并连至监控服务器,展开【Management】节点,然后点选【记录传送监视器(Log Shipping Monitor)】。当您点选此工具程序时,其内会列出日志传送配对服务器的清单。您可在配对服务器上按下鼠标右键,检视其备份、复制与回存等工作的执行历史纪录。这些历史纪录十分有用,因为您从这里得到的错误讯息会比从次要服务器上(SQL Agent 复制与回存工作)得到的更为详尽。
如图所示:当您开启配对服务器之属性对话盒,并进入【Status】设置页时,您可检视此配对服务器执行备份与回存程序之状态。

   
其状态(Status)可以是Normal 或是Out-of-Sync。如果SQL Server Agent尚未复制或回存交易日志文件,对话盒内将会显示日志文件名为first_file_000000000000.trn。这并不是实际的文件名称,只不过是用来标示SQL Server Agent尚未处理任何档案而已。在【Status】设置页也会显示备份、复制以及加载(回存)等动作执行时所耗费的时间。此设置页之信息不会自动更新,所以您必须将此对话盒关闭后再开启,才能更新其资料。

SQL Server只使用msdb数据库内两个资料表来储存日志传送服务器之相关资料。SQL Server在这两个资料表中都给予一个ID做为连结,以及一个外来键(foreign key)。该外来键是设置在log_shipping_secondaries资料表上,并参照log_shipping_primaries资料表的primary_id字段(这两个是所有日志传送资料表中唯一具有外来键关系的资料表)。在log_shipping_primaries资料表内的每笔资料都包含日志传送的相关信息,例如:来源数据库名称、交易日志文件备份工作执行之状态,以及已规划的停摆信息(可避免不必要的警示讯息)。而log_shipping_secondaries 资料表之每笔资料关于目的数据库之信息;每个目的数据库附属于特定的日志传送来源数据库。这两个资料表互相连结的结果就是日志传送监控程序内所显示的配对服务器信息。

移除与重新组态日志传送功能

如果您想从数据库维护计划中移除日志传送功能,可参考下列方式:开启该计划的属性对话盒,选择【记录传送】设置页,然后点选【移出记录传送】。此动作将从次要服务器上移除SQL Server Agent的备份与回存工作,并清除日志传送资料表内的所有相关资料。此外,日志传送监控程序的相关信息也会一并被清除。然而此动作将会适当地保留主要服务器上SQL Server Agent的交易日志备份工作。只有在删除数据库维护计划时,该工作才会被移除。假如您想从监控服务器内移除掉日志传送监控程序,请用手动方式将log_shipping_primaries与log_shipping_secondaries这两个资料表(位于监控服务器的msdb数据库)的资料删除即可。

如果您在数据库维护计划内设置日志传送时,就已允许目的数据库可以做为新的日志传送来源数据库。当您删除主要服务器的维护计划时,次要服务器上仍然会保留其数据库维护计划,以及交易日志文件备份工作。删除这些项目的方式是将次要服务器上与日志传送相关的数据库维护计划直接删除。