错误: sp_change_secondary_role 错误 3101 如果有股的事务日志备份与失败

文章翻译 文章翻译
文章编号: 294397 - 查看本文应用于的产品
错误 #: 352508 (SHILOH)
展开全部 | 关闭全部

本文内容

症状

执行 sp_change_secondary_role 日志传送对的备用服务器上的存储的过程失败,出现 3101 错误消息如果两个下列条件都为真:

  • 值为 1 @ 终止 参数传递。请注意这也是为此参数默认值。
  • 没有应用于备用服务器上至少一个未完成的事务日志。
如果 RESTORE LOG 作业备用服务器上使用运行在此点扩展过程 xp_sqlmaint,则输出为:
源数据库-测试
目标数据库的测试
[Microsoft SQL-DMO (ODBC SQLState: 42000)]
错误 3101: [Microsoft] [ODBC 驱动 SQL Server 程序] [SQL Server] 的独占访问无法获得因为数据库正在使用中。
[] Microsoft[ODBC SQL Server 驱动程序][SQL Server]RESTORE LOG 正在异常终止。
加载 0 个文件
空值
计划 SERVER1\INST1.test_logshipping 的完成的负载

服务器: 消息 22029,级别 16,1,状态行 0
sqlmaint.exe 失败。

原因

如果两个的服务器之间配置日志传送,并且您需要将辅助或备用服务器联机您可以将辅助或备用服务器联机备用服务器上运行 sp_change_secondary_role 存储过程。如果您执行 sp_change_secondary_role 存储过程具有默认参数,该存储的过程执行这些任务:

  • 将备用数据库设置为单用户模式。
  • 复制可能需要复制的任何额外文件。
  • 禁用复制作业备用服务器上。
  • 还原任何未完成的事务日志。
  • 在辅助服务器上使数据库联机。
  • 对某些内部管理执行日志传送计划表在 msdb 数据库中,因为该信息现在需要更新。
如果 sp_change_secondary_role 存储过程传递值为 @ 终止 = (这也是为 @ 终止 参数输入的默认值) 1 项 1 在前面的序列中使用一个
ALTER DATABASE dbname SET SINGLE_USER
更改数据库的状态,并确保没有用户连接时尝试 RESTORE 操作的命令。但是,ALTER DATABASE 语句会导致它采用共享的数据库锁一直保持有效直到,连接终止的。通过使用 xp_sqlmaint 扩展过程打开一个单独的连接到该的服务器,以便这些步骤使用不同于原始 sp_change_secondary_role 连接的 spid 一个服务器进程 id (spid) 来执行项目 2 和 4。如此一来共享的数据库锁持有的存储的过程的 spid 块 RESTORE LOG 任务的该 xp_sqlmaint 试图完成。因此,sp_change_secondary_role 过程失败,出现 3101 错误消息。

替代方法

若要不必此错误使用下列解决方法之一:
  • 确保有任何未完成的事务日志之前执行 sp_change_secondary_role 存储过程。在运行 sp_change_secondary_role 之前手动在辅助服务器上运行还原作业可确保有任何未完成的事务日志。

    -或者-
  • 您可以将传递到的零值的该 @ 终止 参数 (终止 @ = 0) 时执行 sp_change_secondary_role 存储过程。但是,用户必须验证有连接到数据库,以确保 RESTORE LOG 工作已成功执行该存储的过程之前没有用户。

状态

Microsoft 已经确认这是 SQL Server 2000 中的问题。

更多信息

sp_change_secondary_role 是当您希望使备用服务器联机时,备用服务器运行的系统存储过程。

引用

SQL Server 联机丛书 ; 主题:"如何设置和执行日志传送角色转变 (TRANSACT-SQL)"

属性

文章编号: 294397 - 最后修改: 2004年6月25日 - 修订: 3.3
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
关键字:?
kbmt kbbug kbpending KB294397 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 294397
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com