powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите вывести базу из состояния In Recovery.
13 сообщений из 13, страница 1 из 1
Помогите вывести базу из состояния In Recovery.
    #33860480
vakum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть проблемы.

Делал удаление строк в таблице простым delete from ... В результате лог файл вырос до неимоверных размеров и занял весь диск. В резльтате выдало кучу ошибок и база перешла в состояние In Recovery. Как её вернуть в обычное состояние?

Особенности:
1. Перенести лог в другое место нет возможности
2. Удалить что нибудь на диске тоже нельзя
3. уменьшить лог - use databasename не катит база в In Recovery.
4. Востановить с бекаапа - не интересно ...

Что делать ...
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860510
[-==-]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно пошаманить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Use master 
go 
sp_configure 'allow updates',  1  
reconfigure with override 
go 

Там же выполняем :
update sysdatabases set status=  32768  where name = '<db_name>' 

Перезапускаем SQL Server. Далее по обстоятельствам.

USE '<db_name>' 
GO 
sp_dboption '<db_name>', 'single_user', 'true' 
go 
DBCC CHECKDB 
go 

Если все в порядке, то:
sp_dboption '<db_name>', 'single_user', 'false' 
go 
Use master 
go 
sp_configure 'allow updates',  0  
go
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860525
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В резльтате выдало кучу ошибок
И что это за "оно", которое выдало ?

Что делать ...
Для начала опубликовать select @@version и оригинальные тексты ошибок.
Потом заглянуть в логи сервера и оп.системы
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860533
vakum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[-==-], перезапускать сервак это жестко ... хотя тоже вариант ..
если ли шанс, что она сама восстановиться, или из за того что места не диске нет процес восстановление стопорится.
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860555
[-==-]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Места по-любому должно быть достаточно, по идее, база не должна была упасть. А если стопануть SQL, скопировать/переименовать файлы базы, стартануть SQL, удалить базу из EM, переименовать обратно, приаттачить?
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860636
vakum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оно это SQL SMS.
Ошибки привести полностью не смогу не смогу, но их смысл в том , что

The transaction log for database 'dbname' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

Т.е. в результате выполнения транзакции тупо закончилось место на диске и быза перешла в состояние in recovery.

Microsoft SQL Server 2005 - 9.00.2153.00 (Intel X86)
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33860648
vakum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[-==-], смотри пункт 1. в особенностях ...

тестовый сервак, места мало, базу не жалко сервера тоже ... просто интересная ситуация
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33861015
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
restore database <db> with recovery ?
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #33861079
vakum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БАЗА ВЫШЛА ИЗ РЕЖИМА In Recovery САМА, БЕЗ КАКИХ-ЛИБО ДЕЙСТВИЙ С МОЕЙ СТОРОНЫ.

всем огромное спасибо за скоротечное участвие ..
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите вывести базу из состояния In Recovery.
    #39357830
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже возникла неприятная ситуация: перезагрузил сервак и база ушла в InRecovery. Очень помог скрипт, показывающий сколько процентов recovery. Автор скрипта Тим Лакуа.

DECLARE @DBName VARCHAR(64) = 'databasename'

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
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #39423228
РСН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gepard1980 спасибо за скрипт. Скрипт позволяет посмотреть процесс восстановления базы в % и ориентировочное время.
На SQL 2016 правда не заработал, но небольшая модификация его оживила, может кому пригодится
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
DECLARE @DBName VARCHAR(64) = 'databasename'

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

INSERT INTO @ErrorLog
exec sys.xp_readerrorlog

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)/3600.0 AS HoursRemaining
	,[Text]

FROM @ErrorLog 
where CHARINDEX(@DBName, [Text]) > 0 and CHARINDEX('approximately', [Text]) > 0
ORDER BY [LogDate] DESC 
...
Рейтинг: 0 / 0
Помогите вывести базу из состояния In Recovery.
    #39423250
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РСН,

sys.dm_exec_requests всё уже есть...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите вывести базу из состояния In Recovery.
    #39924226
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РСН,
спасибо за удобный скрипт!
Тоже сегодня уронил базу делая удаление в транзакции.
Освободил место, база поднялась минут за 20.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите вывести базу из состояния In Recovery.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]