Wenn ich eine Datenbank mit MS SQL Server Management Studio sichern oder wiederherstellen kann, wird visuell angezeigt, wie weit der Prozess fortgeschritten ist und wie lange ich noch warten muss, bis er abgeschlossen ist. Wenn ich die Sicherung oder Wiederherstellung mit einem Skript starte, gibt es eine Möglichkeit, den Fortschritt zu überwachen, oder lehne ich mich einfach zurück und warte, bis er abgeschlossen ist (in der Hoffnung, dass nichts schief gelaufen ist?)
Bearbeitet: Ich muss insbesondere in der Lage sein, den Fortschritt der Sicherung oder Wiederherstellung vollständig unabhängig von der Sitzung zu überwachen, in der die Sicherung oder Wiederherstellung initiiert wurde.
quelle
Ich habe hier dieses Beispielskript gefunden , das ziemlich gut zu funktionieren scheint:
quelle
Wenn Sie die Sitzungs-ID kennen, können Sie Folgendes verwenden:
Oder wenn Sie es eingrenzen möchten:
quelle
Hier ist ein einfaches Skript, das im Allgemeinen den Trick für mich erledigt:
quelle
Oft kommt es vor, dass Ihre Sicherungs- (oder Wiederherstellungs-) Aktivität von einem anderen Datenbankadministrator oder von einem Job gestartet wurde und Sie über die GUI nichts anderes verwenden können, um den Fortschritt dieser Sicherung / Wiederherstellung zu überprüfen.
Durch die Kombination mehrerer Befehle habe ich das folgende Skript generiert, das uns eine Zusammenfassung der aktuellen Sicherungen und Wiederherstellungen auf dem Server geben kann.
quelle
quelle
Verwenden Sie STATS im Befehl BACKUP, wenn es sich nur um ein Skript handelt.
Innerhalb des Codes ist es etwas komplizierter. In ODBC setzen Sie beispielsweise SQL_ATTR_ASYNC_ENABLE, suchen nach dem Rückkehrcode SQL_STILL_EXECUTING und führen einige wiederholte Aufrufe von SQLExecDirect durch, bis Sie SQL_SUCCESS (oder eqiv) erhalten.
quelle
Versuchen Sie es mit:
quelle
Verwenden Sie die Option STATS: http://msdn.microsoft.com/en-us/library/ms186865.aspx
quelle
Ich denke, der beste Weg, um herauszufinden, wie Ihr Wiederherstellungs- oder Sicherungsfortschritt ist, ist die folgende Abfrage:
In der obigen Abfrage identifizieren Sie die Sitzung selbst und führen jedes Mal einen prozentualen Fortschritt durch, wenn Sie auf SSMS die Taste F5 oder Ausführen drücken!
Die Abfrage wurde von dem Typ durchgeführt, der diesen Beitrag geschrieben hat
quelle
Hinzufügen
STATS=10
oderSTATS=1
im Sicherungsbefehl.quelle
SELECT session_id als SPID, Befehl, start_time, Prozent_complete, dateadd (zweite, geschätzte_completion_time / 1000, getdate ()) als geschätzte_completion_time, a.text AS Abfrage FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text (r.sql_hand). Befehl in ('BACKUP DATABASE', 'BACKUP LOG', 'RESTORE DATABASE', 'RESTORE LOG')
quelle
Für alle, die SQL Server unter RDS (AWS) ausführen, gibt es eine integrierte Prozedur, die in der
msdb
Datenbank aufgerufen werden kann und umfassende Informationen für alle Sicherungs- und Wiederherstellungsaufgaben enthält:Auf diese Weise erhalten Sie einen vollständigen Überblick über jede Aufgabe, ihre Konfiguration, Details zur Ausführung (z. B. abgeschlossener Prozentsatz und Gesamtdauer) sowie eine
task_info
Spalte, die äußerst hilfreich ist, wenn Sie herausfinden möchten, was mit einer Sicherung oder Wiederherstellung nicht stimmt.quelle
So überwachen Sie den Sicherungs- oder Wiederherstellungsfortschritt vollständig getrennt von der Sitzung, in der die Sicherung oder Wiederherstellung initiiert wurde. Keine Tools von Drittanbietern erforderlich. Getestet auf Microsoft SQL Server 2012.
quelle
Ich verwende sp_whoisactive, sehr informativ und im Grunde genommen Industriestandard. es gibt auch Prozent vollständig zurück.
quelle
Führen Sie einfach bkp_status auf der Master-Datenbank aus. Sie erhalten den Sicherungsstatus
quelle