SQL*_*and 2 sql-server backup sql-server-2012
我杀死了一个 80 MB 数据库的备份作业,它已经回滚了好几天......
我试图将数据库带入单用户模式,但那太挂在回滚状态。
我尝试杀死连接到数据库的所有会话,但仍然无法删除它。我用这个脚本来完成杀戮:
DECLARE @kill varchar(8000) = ''; SELECT @kill = @kill + 'kill ' +
CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = db_id('fpddev92')
exec(@kill)
Run Code Online (Sandbox Code Playgroud)
任务的最新等待类型是CMEMTHREAD。我无法使用不同的名称恢复数据库,因为有一个应用程序在使用它,该应用程序在应用程序中具有硬编码的数据库名称。
如果需要,我可以删除和恢复数据库。我该如何解决这个问题???它被暂停。没有阻塞。
恐怕如果我重新启动服务,它只会在启动时进行回滚。
任何帮助是极大的赞赏!我一生中从未见过这样的事情......
由于备份正在等待 CMEMTHREAD,即等待内存分配的临界区,很可能重新启动服务将允许在数据库上启动恢复,或者将数据库标记为“可疑”,此时您可以删除并从备份中恢复。在 70MB 的数据库上恢复,假设日志文件不是很多千兆字节,应该几乎是即时的。
与往常一样,在执行任何此类操作之前,您需要确保在此实例上拥有经过验证的关键数据库备份 - 通过“验证”,我的意思是您已将它们还原到其他服务器(或您的工作站)上,以确保您可以实际执行还原。没有什么比从互联网上获得免费建议却发现您已经失去一切更像了。
顺便说一句,您应该确保您的 SQL Server 上安装了最新的服务包和累积更新;有关详细信息,请参阅SQLServerBuilds。