在我的 SQL Server 2008 上,我有一个 SQL 代理作业来每晚恢复数据库。程序:
- 在其他服务器上查找最新备份
- 终止与目标数据库的所有连接
- 使用替换、恢复来还原目标数据库
上周末它失败了,因为系统进程(spid 11 检查点)正在使用数据库。由于我无法杀死系统进程,我通过重新启动 sql server 解决了这个问题。这个周末它也失败了,同样的错误(这个数据库中的 checkpint 过程与 from 一样sp_who
),当我运行时:
SELECT session_id,request_id,command,status,start_time
FROM sys.dm_exec_requests
WHERE session_id = 11
表明:
11 0 CHECKPOINT background 2010-04-06 10:17:49.103
每次失败时我都无法重新启动服务器。
谁能帮我解决这个问题?
提前致谢
曼约特
不要杀死小于 50 的 SPID!这些是系统进程
要查看是否可以将数据库从“正在恢复”状态中取出,请尝试
编辑,评论后
假设您想恢复数据库并且不关心保留它......
停止 SQL Server,将 MDF/LDF 移动到其他位置,然后启动 SQL Server。
数据库离线(我忘记了确切的状态)。然后你可以放下它,恢复它
与其杀死打开的连接,不如尝试
然后进行还原,或者更好的是,删除它,然后还原。
完成后,不要忘记将数据库恢复到之前的状态:
固定 - 因为它每天都恢复。我已将其从重新索引、dbcc checkdb、更新统计信息等维护计划中排除。
即使它们在单独的计划中运行,但不包括数据库修复了问题。