还原期间restore-sqldatabase报告状态

时间:2017-02-01 21:54:32

标签: sql-server sql-server-2012

有没有办法让Restore_Database命令在执行期间报告状态?我的数据库很小,我想将输出记录到文本文件中。我想我看到了一个不是我想要的绿色状态栏。 cmdlet上没有开关或跟踪powershell端的状态吗?

Restore-SqlDatabase  -ServerInstance "MyServer" -Database "TestDB" -ReplaceDatabase -BackupFile "C:\Temp\W007808\TestDB\MyServer_TestDB_20161009_013101.bak"

2 个答案:

答案 0 :(得分:0)

您可以使用以下查询来监控sql还原和备份操作

SELECT percent_complete, *
FROM sys.dm_exec_requests
WHERE command In ( 'RESTORE DATABASE', 'BACKUP DATABASE' )

更多详情可在this page

找到

答案 1 :(得分:0)

这是我们使用的那个:

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)))
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')

我刚看到你在powershell中想要它的评论。 Here is a Blog Post on how to do it