Skip to content

Commit

Permalink
скрипт для оценки восстановления БД из аварийного режима
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyabreev committed Jan 10, 2023
1 parent 38295bc commit 7aca5e1
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions Emergency/CheckDbRecovery.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/***********************************
Прогресс восстановления БД из аварийного состояния
и прогноз по времени
************************************/

DECLARE @DBName VARCHAR(64) = 'DbName'

DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))

INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery of database', @DBName

INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery completed', @DBName

SELECT TOP 1
@DBName AS [DBName]
,[LogDate]
,CASE
WHEN SUBSTRING([TEXT],10,1) = 'c'
THEN '100%'
ELSE SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4)
END AS PercentComplete
,CASE
WHEN SUBSTRING([TEXT],10,1) = 'c'
THEN 0
ELSE CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0
END AS MinutesRemaining
,CASE
WHEN SUBSTRING([TEXT],10,1) = 'c'
THEN 0
ELSE CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0
END AS HoursRemaining
,[TEXT]
FROM @ErrorLog ORDER BY CAST([LogDate] as datetime) DESC, [MinutesRemaining]

0 comments on commit 7aca5e1

Please sign in to comment.