AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 131468
Accepted
Manjot
Manjot
Asked: 2010-04-12 15:56:15 +0800 CST2010-04-12 15:56:15 +0800 CST 2010-04-12 15:56:15 +0800 CST

SQL Alter 数据库失败 - 被检查点进程使用

  • 772

在我的 SQL Server 2008 上,我有一个 SQL 代理作业来每晚恢复数据库。程序:

  1. 在其他服务器上查找最新备份
  2. 终止与目标数据库的所有连接
  3. 使用替换、恢复来还原目标数据库

上周末它失败了,因为系统进程(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

每次失败时我都无法重新启动服务器。
谁能帮我解决这个问题?

提前致谢

曼约特

sql-server-2008 blocking
  • 3 3 个回答
  • 7314 Views

3 个回答

  • Voted
  1. gbn
    2010-04-12T20:26:34+08:002010-04-12T20:26:34+08:00

    不要杀死小于 50 的 SPID!这些是系统进程

    要查看是否可以将数据库从“正在恢复”状态中取出,请尝试

    RESTORE DATABASE MyDB WITH RECOVERY
    

    编辑,评论后

    假设您想恢复数据库并且不关心保留它......

    停止 SQL Server,将 MDF/LDF 移动到其他位置,然后启动 SQL Server。

    数据库离线(我忘记了确切的状态)。然后你可以放下它,恢复它

    • 3
  2. SqlACID
    2010-04-12T18:02:22+08:002010-04-12T18:02:22+08:00

    与其杀死打开的连接,不如尝试

    ALTER DATABASE myDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    

    然后进行还原,或者更好的是,删除它,然后还原。

    完成后,不要忘记将数据库恢复到之前的状态:

    ALTER DATABASE myDatabase SET MULTI_USER
    
    • 1
  3. Best Answer
    Manjot
    2010-04-26T15:29:55+08:002010-04-26T15:29:55+08:00

    固定 - 因为它每天都恢复。我已将其从重新索引、dbcc checkdb、更新统计信息等维护计划中排除。

    即使它们在单独的计划中运行,但不包括数据库修复了问题。

    • 1

相关问题

  • 在 SQL Server 2008 上为 ASP.NET 应用程序设置登录名

  • SQL Server 2008 跟踪标志 4135

  • 远程连接到 LAN 内的 SQL 服务器

  • 远程连接 sql server 不工作,但如果防火墙禁用它呢?

  • 无法从 SQL Server 2008 备份数据库

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve