SQLServer 2000之日志传送功能(2)
时间:2007-12-23 来源:不详 作者:迈克DB
程序代码列表3:将角色互换结果通知监控服务器之预存程序。
USEmaster
GO
EXECmsdb.dbo.sp_change_monitor_role
@primary_server=’oahu\sql2k_1’,
@secondary_server=’oahu\sql2k_2’,
@database=’Pubscopy’,
@new_source=’oahu\sql2k_2’
步骤5:在次要服务器上解析登入帐号您必须先在新主要服务器上解析旧主要服务器登入帐号,使用者才可以存取新主要服务器;方式是使用步骤1所汇出之登入帐号档案。此汇出档案可被sp_resolve_logins预存程序所读取,然后解析各服务器间SID的差异。举例来说,程序代码列表4示范如何在新复原的Pubscopy数据库上执行sp_resolve_logins预存程序,去解析原来的登入帐号。BOL文章曾教导您必须在目的数据库内才能执行该预存程序。事实上,sp_resolve_logins使用了非完整式参照(unqualifiedreference)指向syslogins视观表,所以您必须在master数据库内才能执行此预存程序! 织梦好,好织梦
程序代码列表4:在次要服务器上解析登入帐号的预存程序。
USEmaster
GO
EXECsp_resolve_logins
@dest_db=’Pubscopy’,
@dest_path=’d:\’,
@filename=’syslogins.dat’
步骤6:连结数据库存取与权限BOL对于角色变更的相关讨论仅止于步骤5,但是它忽略一个重要步骤:在"数据库存取权限"与"转移后登入帐号"之间进行协调动作。为了在新主要服务器内线上数据库,将移转后已解析的登入帐号连结至相对应的数据库使用者及其权限,您必须执行针对每个登入帐号执行一次sp_change_users_login预存程序。
USEpubscopy
GO
EXECsp_change_users_login’Update_One’,’UserName’,’LoginName’
执行该预存程序可确保SQLServer登入帐号能够正确地连结相对应的数据库使用者名称。
到此为止,您已经成功地将次要服务器升级为新的角色,而旧主要服务器也早已变成次要服务器。然而,您仍然尚未建置新的日志传送关系。您完成的只是角色变更,而不是角色互换。
角色互换
为了达成完整的日志传送角色互换,您只需在新主要服务器与新次要服务器之间重新设定一次日志传送即可。因为新主要服务器已内含崭新的数据库维护计划,您将会倾向在维护计划内直接加入新次要服务器,做为目的服务器。然而经过多次尝试之后,我发现新主要服务器的"交易日志备份工作"总是会失败,并且日志也不会从新主要服务器传送到新次要服务器。 本文来自织梦
所以,您需要另外一种方法。您在执行过日志传送角色变更的预存程序,以及先前我具体说明的步骤后,就可以直接达成完整的角色互换-在新主要服务器与新次要服务器之间建置一份新的日志传送计划。为了建置该计划,您需遵循下列步骤:
1.在新主要服务器的数据库维护计划内移除日志传送功能。
2.在主要服务器上删除数据库维护计划。
3.在次要服务器上删除数据库维护计划。
4.维持所有交易日志文件。
5.在新主要服务器上建立一个新的数据库维护计划,指定新次要服务器所在、目的数据库位置、以及交易日志文件之适当存放位置,如同我在Part1所介绍的内容。
文章评论
共有位Admini5网友发表了评论 查看完整内容