티스토리 뷰
반응형
오류: MS SQL에서 (In Recovery)상태가 나타나며 DB 작업을 할 수 없는 상태가 될 경우가 있습니다.
원인: Transaction 또는 Rollback 작업 중에 DBMS가 중단된 경우 (시스템 또는 OS종료 등)
대처:
- 복구가 끝날 때까지 기다리는 방법 외엔 없습니다. DB를 재시작해도 다시 (In Recovery) 상태에 빠집니다.
- 만약 장기간 기다려도 해결되지 않을 경우 백업을 통해 복구를 진행하셔야 합니다.
- 다음과 같은 코드를 통해 복구시간이 얼마나 소요될 지 예측할 수 있습니다.
-- MS SQL 2008 이하 DECLARE @DBName VARCHAR(64) = '대상DB명' DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX)) INSERT INTO @ErrorLog EXEC sys.xp_readerrorlog 0, 1, 'Recovery of database', @DBName SELECT TOP 5 [LogDate] ,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining ,[TEXT] FROM @ErrorLog ORDER BY [LogDate] DESC -- MS SQL 2012부터 DECLARE @DBName VARCHAR(64) = '대상DB명' 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 SELECT TOP 5 [LogDate] ,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining ,[TEXT] FROM @ErrorLog ORDER BY [LogDate] DESC
'DB' 카테고리의 다른 글
[DB] MS SQL Procedure에서 Table구조를 저장하는 방법 (0) | 2017.11.14 |
---|---|
[DB] MS SQL Backup(*.bak)으로부터 DB복구하기 (0) | 2017.11.14 |
[DB] MSSQL Server 'Suspect' 모드에서 복구하기 (0) | 2017.11.14 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- WPF
- React
- npm
- MS SQL
- VisualStudio
- Xamarin
- Vue
- StringComparison
- Android
- ios
- TypeScript
- Xamarin.Forms 요약
- Xamarin.iOS
- material-ui
- Xamarin.Forms
- ASP.NET Core
- .NET Standard
- flutter
- c#
- Xamarin.Forms eBook
- Total
- Today
- Yesterday