您的位置:首页 > 数据库

SQLServer2000之日志传送功能-描述(1)

2008-04-28 07:59 183 查看
当线上停摆时(可能是计划内维护工作,或是预期外的状况),如果还有备援服务器上的数据库可供存取,您可能会比较安心一点。一个良好的日志传送系统(将数据库交易日志文件从主要服务器传送到备援服务器)即可给予您这样的自信心。内建于SQLServe2000企业板与开发版的EnterpriseManager工具程序即支持日志传送功能。
角色变更
将日志从主要服务器传送到次要服务器之后,您可在必要时以次要服务器置换掉主要服务器。如果主要服务器发生问题,或是计划性停摆(例如升级或安装修正程序),线上数据库就必须停止服务一段期间。此时您可以变更次要服务器上数据库之角色,让它取代主要服务器之后进而成为线上数据库。2000线上手册(BooksOnline,BOL)将此项操作称为日志传送角色变更(logshippingrolechange)。在日志传送过程里,次要服务器需设定在无法复原(nonrecovered)状态,因此交易日志才能从主要服务器回存到次要服务器(一但您将数据库复原,就不能再回存交易记录)。变更角色时,您需将次要服务器的数据库予以复原,并标示其为新主要服务器数据库。您也可以将旧主要服务器数据库设定为新次要服务器数据库。如果旧主要服务器数据库并未损坏,那么就可以在新主要服务器与旧主要服务器(已变成新次要服务器)之间重新建置日志传送功能。这种切换方式我们称为角色互换(rolereversal)。
这些操作指引可修订为六个基本步骤,分别为:1、转移与汇出登入帐号,2、降级(demote)主要服务器,3、升级(promote)次要服务器,4、通知监控服务器角色已变更,5、在次要服务器上解析登入帐号,6、以及连结数据库存取与权限。
步骤1:转移与汇出登入帐号首先,BOL建议您建立一个SQLServer2000DTS封装(package),用来将主要服务器的登入帐号转移到次要服务器,且执行各服务器间登入帐号SID之解析动作。转移登入帐号所用的DTSTransferLoginsTask只能在SQLServer2000DTSDesigner内使用。您可在主要服务器上建立与储存DTS封装,然后呼叫dtsrun.exe设定该封装的执行方式—透过主要服务器SQLServerAgent的工作(job)。该封装执行时会将登入帐号从某服务器传送到另一服务器,但是它并不会解析其登入帐号的SID(在稍后步骤中会说明为何需解析登入帐号)。然而,为了在稍后能顺利解析登入帐号,您必须先建立一个档案,其内包含主要服务器syslogins资料表的汇出资料。
汇出登入帐号到次要服务器时,BOL建议您建立一个两阶段的SQLServerAgent工作:使用bcp汇出,以及复制登入帐号。在第一个步骤,您将使用原始模式的bcp将登入帐号汇出至某个档案。而在第二个步骤里,您必须将登入帐号复制到次要服务器的某个档案,以便稍后进行角色变更时可用来解析登入帐号。在步骤5您将使用sp_resolve_logins预存程序去解析次要服务器上登入帐号的SID。该工作建立完成后,就可以定期地执行(例如每晚执行一次)。如此一来次要服务器上将随时保留最新的登入帐号汇出文件,以便进行日志传送角色变更。
步骤2:降级主要服务器为了让主要服务器不再是日志传送系统的资料来源,您必须将它”降级”。您可以降级主要服务器的来源数据库,让它变成潜在的次要服务器。然后在主要服务器上执行sp_change_primary_role预存程序,目的是移除原有日志传送功能。程序代码列表1显示该预存程序如何把Pubscopy日志传送数据库从读/写模式更改成只读备援模式,准备随时接受交易日志之备份资料。该预存程序经由数个步骤后会在日志传送计划内删除主要服务器数据库。传入的参数将告之预存程序需执行以下工作:备份最近一次的交易日志、结束数据库内所有使用者联机、将数据库设定在备援状态与多使用者存取层级。预存程序的回传代码将标示BACKUPLOG叙述句是否成功执行。1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: