sqlserver日志:SQL Server 2000之日志传送功能 - 描述(2)



SQL Server 2000的日志传送功能 - 描述(2)

角色变更、角色互换、以及监控服务器所在位置

Step 4: 通知监控服务器角色已变更 SQL Server 2000 日志传送会在监控服务器上安装监控工具;最好是在第 3台服务器为了通知监控服务器日志传送角色已经过变更您必须在监控服务器上执行 sp_change_monitor_role 预存代码列表3所示尽管名称内含有 change 字眼但它并不会变更监控服务器角色相反地此预存会变更主要/次要服务器内档案分享所参照(reference)位置意思是说:监控服务器 log_shipping_secondaries 资料表内原先参照旧次要服务器资料会被删除而在 log_shipping_primaries 资料表内则是将旧主要服务器名称更改为新主要服务器名称此预存并不会将资料新增到 log_shipping_secondaries 资料表配对服务器目前尚未建置

代码列表 3: 将角色互换结果通知监控服务器的预存
USE master
GO
EXEC msdb.dbo.sp_change_monitor_role
@primary_server = \'oahu\\sql2k_1\' ,
@secondary_server = \'oahu\\sql2k_2\',
@database = \'Pubscopy\',
@_source = \'oahu\\sql2k_2\'

步骤 5: 在次要服务器上解析登入帐号 您必须先在新主要服务器上解析旧主要服务器登入帐号使用者才可以存取新主要服务器;方式是使用步骤1所汇出的登入帐号档案此汇出档案可被 sp_resolve_logins 预存所读取然后解析各服务器间 SID 差异举例来说代码列表4示范如何在新复原 Pubscopy 数据库上执行 sp_resolve_logins 预存去解析原来登入帐号BOL文章曾教导您必须在目数据库内才能执行该预存事实上sp_resolve_logins 使用了非完整式参照(unqualied reference)指向 syslogins 视观表所以您必须在 master 数据库内才能执行此预存

代码列表4: 在次要服务器上解析登入帐号预存
USE master
GO
EXEC sp_resolve_logins
@dest_db = \'Pubscopy\',
@dest_path = \'d:\\\',
@filename = \'syslogins.dat\'

步骤 6: 连结数据库存取和权限 BOL 对于角色变更相关讨论仅止于步骤5但是它忽略个重要步骤:在 "数据库存取权限" 和 "转移后登入帐号" 的间进行协调动作为了在新主要服务器内线上数据库将移转后已解析登入帐号连结至相对应数据库使用者及其权限您必须执行针对每个登入帐号执行次 sp_change_users_login 预存

USE pubscopy
GO
EXEC sp_change_users_login \'Update_One\', \'UserName\', \'LoginName\'

执行该预存可确保 SQL Server 登入帐号能够正确地连结相对应数据库使用者名称

到此为止您已经成功地将次要服务器升级为新角色而旧主要服务器也早已变成次要服务器然而您仍然尚未建置新日志传送关系您完成只是角色变更而不是角色互换

角色互换

为了达成完整日志传送角色互换您只需在新主要服务器和新次要服务器的间重新设定次日志传送即可新主要服务器已内含崭新数据库维护计划您将会倾向在维护计划内直接加入新次要服务器做为目服务器然而经过多次尝试的后我发现新主要服务器 "交易日志备份工作" 总是会失败并且日志也不会从新主要服务器传送到新次要服务器

所以您需要另外种思路方法您在执行过日志传送角色变更预存以及先前我详细介绍说明步骤后就可以直接达成完整角色互换 - 在新主要服务器和新次要服务器的间建置份新日志传送计划为了建置该计划您需遵循下列步骤:
1. 在新主要服务器数据库维护计划内移除日志传送功能
2. 在主要服务器上删除数据库维护计划
3. 在次要服务器上删除数据库维护计划
4. 维持所有交易日志文件
5. 在新主要服务器上建立个新数据库维护计划指定新次要服务器所在、目数据库位置、以及交易日志文件的适当存放位置如同我在 Part 1所介绍内容
6. 重新开始新主要服务器所有活动

在您成功设定角色互换且建置新日志传送配对服务器的后Enterprise Manager 日志传送监视器可能会告知您新次要服务器数据库并未和新主要服务器数据库取得同步(out of sync)如果 "最近次加载交易日志" 和 "最近次备份交易日志" 的间时间差超过了 out-of-sync 设定值您就会收到此报告直到最近备份资料被加载的后日志传送监视器就会回到平常无状态

日志传送监视器所在位置

Microsoft 强烈建议将日志传送监视器置放于独立服务器上如此无论主要服务器或是次要服务器执行工作失败时该监视器都会送出警示(alert)如果监视器位于主要或次要服务器其中的报告结果将取决于监视器所在服务器如果监视器所在服务器因故停摆它将无法继续回报可能情况所以要让监视器独立回报日志传送系统内主要或次要服务器上可能发生问题给予监视器台独立服务器是较佳实作方式此外也可以使用这台独立监控服务器去监控其它日志传送配对服务器



如果没有其它服务器可安装监控而需要放在主要或次要服务器其中的究竟应该把日志传送监视器放在哪台服务器呢?重点是想侦测主要服务器上可能发生日志传送问题所以放在次要服务器比较妥当如果将日志传送监视器放在主要服务器上当主要服务器停摆时您就无法使用该监视器监视器也无法在日志传送发生问题时送出警示所以呢如果只有两台服务器可使用次要服务器为置放日志传送监视器较佳位置某些时候为避免灾难发生时影响次要服务器必须将交易日志从某实体位置传送到另个地方(也许有段距离)在此情况下日志传送监视器最好放在其它地方独立服务器让灾难发生时不至于影响主要和次要服务器

Tags:  sqlserver sqlserver日志满 删除sqlserver日志 sqlserver日志

延伸阅读

最新评论

发表评论