首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL- Server :是否有SQL脚本可用于确定SQL Server备份或恢复过程的进度?

SQL- Server :是否有SQL脚本可用于确定SQL Server备份或恢复过程的进度?
EN

Stack Overflow用户
提问于 2008-09-30 09:59:35
回答 17查看 239.7K关注 0票数 106

当我使用MS SQL Server Management Studio备份或还原数据库时,我可以直观地看到该过程已经进行了多长时间,因此我还需要等待多长时间才能完成。如果我使用脚本启动备份或恢复,是否有一种方法可以监视进度,或者我只是静静地等待它完成(希望没有任何错误?)

编辑:我的需求是能够完全独立于启动备份或恢复的会话来监视备份或恢复进度。

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2008-10-01 03:22:35

是。如果您已将sp_who2k5安装到主数据库中,则只需运行:

代码语言:javascript
复制
sp_who2k5 1,1

结果集将包括所有活动事务。当前运行的备份将在requestCommand字段中包含字符串"BACKUP“。适当命名的percentComplete字段将向您提供备份的进度。

注意: sp_who2k5应该是每个人工具包的一部分,它做的远不止这些。

票数 12
EN

Stack Overflow用户

发布于 2008-09-30 10:08:51

我发现这个样例脚本here似乎工作得很好:

代码语言:javascript
复制
SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle))) AS [SQL]
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')
票数 237
EN

Stack Overflow用户

发布于 2012-06-30 08:31:58

如果您知道sessionID,那么您可以使用以下命令:

代码语言:javascript
复制
SELECT * FROM sys.dm_exec_requests WHERE session_id = 62

或者如果你想缩小范围:

代码语言:javascript
复制
SELECT command, percent_complete, start_time FROM sys.dm_exec_requests WHERE session_id = 62
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/152447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档