Cuando hago una copia de seguridad o restauro una base de datos usando MS SQL Server Management Studio, obtengo una indicación visual de cuánto ha progresado el proceso y, por lo tanto, cuánto tiempo debo esperar para que termine. Si inicio la copia de seguridad o la restauración con un script, ¿hay alguna manera de monitorear el progreso, o simplemente me siento y espero a que termine (con la esperanza de que nada haya salido mal?)
Editado: Mi necesidad es específicamente poder monitorear el progreso de la copia de seguridad o restauración completamente separado de la sesión donde se inició la copia de seguridad o restauración.
fuente
Encontré este script de muestra aquí que parece estar funcionando bastante bien:
fuente
Si conoce el ID de sesión, puede usar lo siguiente:
O si desea reducirlo:
fuente
Aquí hay un script simple que generalmente funciona para mí:
fuente
Muchas veces sucede que su actividad de copia de seguridad (o restauración) ha sido iniciada por otro administrador de base de datos o por un trabajo, y no puede usar la GUI de ninguna otra manera para verificar el progreso de esa copia de seguridad / restauración.
Al combinar varios comandos, he generado el siguiente script que puede darnos un resumen de las copias de seguridad y restauraciones actuales que están ocurriendo en el servidor.
fuente
fuente
Use STATS en el comando BACKUP si es solo un script.
Dentro del código es un poco más complicado. En ODBC, por ejemplo, configura SQL_ATTR_ASYNC_ENABLE y luego busca el código de retorno SQL_STILL_EXECUTING, y realiza algunas llamadas repetidas de SQLExecDirect hasta obtener un SQL_SUCCESS (o eqiv).
fuente
Prueba con:
fuente
Use la opción STATS: http://msdn.microsoft.com/en-us/library/ms186865.aspx
fuente
Creo que la mejor manera de averiguar cómo es el progreso de su restauración o copia de seguridad es mediante la siguiente consulta:
La consulta anterior identifica la sesión por sí misma y realiza un porcentaje de progreso cada vez que presiona F5 o el botón Ejecutar en SSMS.
La consulta fue realizada por el tipo que escribe este post.
fuente
Agregar
STATS=10
oSTATS=1
en el comando de respaldo.fuente
SELECCIONE session_id como SPID, comando, start_time, percent_complete, dateadd (segundo, estimado_completion_time / 1000, getdate ()) como estimado_completion_time, un texto AS Query FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text (r.sql_ERE). comando en ('BACKUP DATABASE', 'BACKUP LOG', 'RESTORE DATABASE', 'RESTORE LOG')
fuente
Para cualquier persona que ejecute SQL Server en RDS (AWS), hay un procedimiento integrado al que se puede llamar en la
msdb
base de datos que proporciona información completa para todas las tareas de copia de seguridad y restauración:Esto le dará un resumen completo de cada tarea, su configuración, detalles sobre la ejecución (como el porcentaje completado y la duración total) y una
task_info
columna que es inmensamente útil cuando se trata de averiguar qué está mal con una copia de seguridad o restauración.fuente
Para monitorear el progreso de la copia de seguridad o la restauración completamente separado de la sesión donde se inició la copia de seguridad o la restauración. No se requieren herramientas de terceros. Probado en Microsoft SQL Server 2012.
fuente
Estoy usando sp_whoisactive, muy informativo y básicamente un estándar de la industria. también devuelve un porcentaje completo.
fuente
simplemente ejecute bkp_status en master db obtendrá el estado de la copia de seguridad
fuente