Sql база в процессе восстановления как вылечить

Slider_spb Откуда: | SQL Server 2005 После перезагрузки службы SQL несколько баз более суток висят в статусе «В процессе восстановления». Модель восстановления у них был простая, так что из лога там нечего восстанавливать. Размер одной 10 мб, так что в смысле количества данных там тоже не особо чего восстанавливать. В чем тогда дело? С ними можно что-нибудь сделать? Если да, то как? На любые попытки действий выдаются разные ошибки в смысле что БД занята или недоступна. |
Glory Откуда: |
Это вы прямо в логе запуска сервера увидели ? |
Slider_spb Откуда: | Я помню какая у них модель восстановления стояла. |
Glory Откуда: |
Ага, а сервер вам прямо в мозг транслировал процесс восстановления ? |
Slider_spb Откуда: | В логах сервера куча странных сообщений типа Process 28:0:0 (0x10b4) Worker 0x00000000045C21C0 appears to be non-yielding on Scheduler 2. Thread creation time: 12992448823438. Approx Thread CPU Used: kernel 2218 ms, user 166453 ms. Process Utilization 0%. System Idle 88%. Interval: 260539403 ms. больше никаких критичных ошибок не нашел |
Glory Откуда: |
Искать надо прогресс запуска базы |
Slider_spb Откуда: | Единственное сообщение в логе, которое удалось найти и связано с базой которая висит в процессе восстановления выглядит так: «Starting up database ‘TEMPLATEDB’.» |
Slider_spb Откуда: | после строки идёт дамп памяти который содержит * ALTER DATABASE [TEMPLATEDB] SET READ_WRITE WITH NO_WAIT и закачивается ошибкой DoMiniDump () encountered error (0x800703E6) — Неверная попытка доступа к адресу памяти. |
Slider_spb Откуда: | Так можно с базой что-нибудь сделать? Её ни отключить, ни удалить не получается… |
Glory Откуда: | Перезапустить сервер ? |
Slider_spb Откуда: | Ну если другого выхода нет, попробую… |
Slider_spb Откуда: | Перезапустил, некоторое базы восстановились, другие повисли в процессе восстановления, в логах аналогичные ошибки памяти, похоже серваку хана, скорее всего проблемы с памятью, приступаю к процесу спасения оставшихся БД… Всем спасибо… |
RedMercury Guest | А так. restore database (Name database) with (no)recovery — должно отпустить |
RedMercury Guest | NameDataBase — та которая «В процессе восстановления» |
Ссылка на сообщение
Ссылка (включая название темы)
Ссылка (URL)
x
Источник
vakum Откуда: Минск | Суть проблемы. Делал удаление строк в таблице простым delete from … В результате лог файл вырос до неимоверных размеров и занял весь диск. В резльтате выдало кучу ошибок и база перешла в состояние In Recovery. Как её вернуть в обычное состояние? Особенности: Что делать … |
[-==-] Откуда: | Можно пошаманить:Use master go sp_configure ‘allow updates’, 1 reconfigure with override go Там же выполняем : Перезапускаем SQL Server. Далее по обстоятельствам. USE ‘<db_name>’ Если все в порядке, то: |
Glory Откуда: | В резльтате выдало кучу ошибок И что это за «оно», которое выдало ? Что делать … |
vakum Откуда: Минск | [-==-], перезапускать сервак это жестко … хотя тоже вариант .. если ли шанс, что она сама восстановиться, или из за того что места не диске нет процес восстановление стопорится. |
[-==-] Откуда: | Места по-любому должно быть достаточно, по идее, база не должна была упасть. А если стопануть SQL, скопировать/переименовать файлы базы, стартануть SQL, удалить базу из EM, переименовать обратно, приаттачить? |
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) |
vakum Откуда: Минск | [-==-], смотри пункт 1. в особенностях … тестовый сервак, места мало, базу не жалко сервера тоже … просто интересная ситуация |
Ray D Откуда: from the middle of nowhere | restore database <db> with recovery ? |
vakum Откуда: Минск | БАЗА ВЫШЛА ИЗ РЕЖИМА In Recovery САМА, БЕЗ КАКИХ-ЛИБО ДЕЙСТВИЙ С МОЕЙ СТОРОНЫ. всем огромное спасибо за скоротечное участвие .. |
Между сообщениями интервал более 1 года.
gepard1980 Откуда: Ярославль | У меня тоже возникла неприятная ситуация: перезагрузил сервак и база ушла в InRecovery. Очень помог скрипт, показывающий сколько процентов recovery. Автор скрипта Тим Лакуа. DECLARE @DBName VARCHAR(64) = ‘databasename’ DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [Text] VARCHAR(MAX)) INSERT INTO @ErrorLog SELECT TOP 5 FROM @ErrorLog ORDER BY [LogDate] DESC |
РСН Откуда: | gepard1980 спасибо за скрипт. Скрипт позволяет посмотреть процесс восстановления базы в % и ориентировочное время. На SQL 2016 правда не заработал, но небольшая модификация его оживила, может кому пригодится DECLARE @DBName VARCHAR(64) = ‘databasename’ DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [Text] VARCHAR(MAX)) INSERT INTO @ErrorLog SELECT TOP 5 FROM @ErrorLog |
TaPaK Откуда: Kiev | РСН, sys.dm_exec_requests всё уже есть… |
Ссылка на сообщение
Ссылка (включая название темы)
Ссылка (URL)
x
Источник
- 12/17/2019
- Время чтения: 4 мин
В этой статье
ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server
База данных SQL Azure
Azure Synapse Analytics (хранилище данных SQL)
Parallel Data Warehouse APPLIES TO:
SQL Server
Azure SQL Database
Azure Synapse Analytics (SQL DW)
Parallel Data Warehouse
Обычно все данные в SQL ServerSQL Server восстанавливаются перед восстановлением базы данных.Usually, all of the data in a SQL ServerSQL Server database is restored before the database is recovered. Однако операция восстановления может восстановить базу данных без использования резервной копии, например, при восстановлении согласованных с базой данных файлов, доступных только для чтения.However, a restore operation can recover a database without actually restoring a backup; for example, when recovering a read-only file that is consistent with the database. Это называется восстановлением только по журналу транзакций.This is referred to as a recovery-only restore. Восстановление только по журналу транзакций выполняется в тех случаях, когда данные уже согласованы с базой данных и остается только сделать их доступными.When offline data is already consistent with the database and needs only to be made available, a recovery-only restore operation completes the recovery of the database and bring the data online.
Восстановление только по журналу транзакций может выполняться для одного или нескольких файлов или файловых групп базы данных.A recovery-only restore can occur for a whole database or for one or more a files or filegroups.
Восстановление базы данных только по журналу транзакцийRecovery-Only Database Restore
Восстановление базы данных только по журналу транзакций может применяться в следующей ситуации.A recovery-only database restore can be useful in the following situations:
При восстановлении из последней резервной копии в последовательности восстановления база данных, которую в настоящее время нужно перевести в оперативный режим, не была восстановлена по журналу.You did not recover the database when restoring the last backup in a restore sequence, and you now want to recover the database to bring it online.
База данных находится в режиме ожидания, поэтому необходимо сделать ее доступной для обновлений без применения еще одной резервной копии журналов.The database is in standby mode, and you want to make the database updatable without applying another log backup.
Синтаксис инструкции RESTORE для восстановления базы данных только по журналу транзакций:The RESTORE syntax for a recovery-only database restore is as follows:
RESTORE DATABASE *database_name* WITH RECOVERY
Примечание
Предложение FROM = <устройство_резервного_копирования> не используется для восстановления базы данных только по журналу транзакций, так как резервная копия не требуется.The FROM backup_device> clause is not used for recovery-only restores because no backup is necessary.
Пример
Example:
В следующем примере выполняется восстановление базы данных AdventureWorks2012AdventureWorks2012 в ходе операции восстановления без восстановления данных.The following example recovers the AdventureWorks2012AdventureWorks2012 sample database in a restore operation without restoring data.
— Restore database using WITH RECOVERY.
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY
Восстановление файлов только по журналу транзакцийRecovery-Only File Restore
Восстановление файлов только по журналу транзакций может применяться в следующей ситуации.A recovery-only file restore can be useful in the following situation:
База данных поэтапно восстановлена из резервной копии.A database is restored piecemeal. После восстановления первичной файловой группы один или несколько еще не восстановленных файлов согласованы с новым состоянием базы данных, потому что, например, в течение некоторого времени они были доступны только для чтения.After restore of the primary filegroup is complete, one or more of the unrestored files are consistent with the new database state, perhaps because it has been read-only for some time. Эти файлы достаточно восстановить по журналу транзакций. Копировать данные не нужно.These files only have to be recovered; data copying is unnecessary.
Операция восстановления только по журналу транзакций переводит файловую группу «вне сети» в режим «в сети», при этом не выполняется ни копирование, ни повтор, ни стадия отката.A recovery-only restore operation brings the data in the offline filegroup online; no data-copy, redo, or undo phase occurs. Сведения об этапах восстановления см. в статье Обзор процессов восстановления (SQL Server).For information about the phases of restore, see Restore and Recovery Overview (SQL Server).
Синтаксис инструкции RESTORE для восстановления файлов только по журналу транзакций:The RESTORE syntax for a recovery-only file restore is:
RESTORE DATABASE *database_name* { FILE **=**_logical_file_name_ | FILEGROUP **=**_logical_filegroup_name_ }[ **,**…*n* ] WITH RECOVERY
Пример
Example:
В следующем примере показано восстановление по журналу транзакций для файлов вторичной файловой группы SalesGroup2в базе данных Sales .The following example illustrates a recovery-only file restore of the files in a secondary filegroup, SalesGroup2, in the Sales database. Первичная файловая группа уже восстановлена в качестве первого шага поэтапного восстановления, поэтому группа SalesGroup2 согласована с первичной файловой группой.The primary filegroup has already been restored as the initial step of a piecemeal restore, and SalesGroup2 is consistent with the restored primary filegroup. Восстановление файловой группы и ее перевод в режим «в сети» требует только одной инструкции.Recovering this filegroup and bringing it online requires only a single statement.
RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;
Примеры завершения сценария поэтапного восстановления с восстановлением только по журналу транзакцийExamples of completing a piecemeal restore scenario with a recovery-only restore
Простая модель восстановленияSimple recovery model
Пример. Поэтапное восстановление базы данных (простая модель восстановления)
Example: Piecemeal Restore of Database (Simple Recovery Model)Пример. Поэтапное восстановление отдельных файловых групп (простая модель восстановления)
Example: Piecemeal Restore of Only Some Filegroups (Simple Recovery Model)
Модель полного восстановленияFull recovery model
Пример. Поэтапное восстановление базы данных (модель полного восстановления)
Example: Piecemeal Restore of Database (Full Recovery Model)Пример. Поэтапное восстановление только некоторых файловых групп (модель полного восстановления)
Example: Piecemeal Restore of Only Some Filegroups (Full Recovery Model)SqlRestore
См. также:See Also
Восстановление в сети (SQL Server)
Online Restore (SQL Server)
Поэтапное восстановление (SQL Server)
Piecemeal Restores (SQL Server)
Восстановление файлов (простая модель восстановления)
File Restores (Simple Recovery Model)
Восстановления файлов (модель полного восстановления)
File Restores (Full Recovery Model)
RESTORE (Transact-SQL)
RESTORE (Transact-SQL)
Обзор процессов восстановления (SQL Server)
Restore and Recovery Overview (SQL Server)
Источник
yozhikvtumane
8.9.2009, 9:09
Все доброго дня!
Есть вопрос спецам MS SQL Server.
После аварийного выключения сервера одна из баз MS SQL Server перешла в состояние In recovery.
Никогда с таким не сталкивался. Что бы это могло значить?
Зы. Уже два дня так и торчит… Резервная копия конечно есть, но интересно просто разобраться в проблеме.
Ну пока сервер откатит транзакции будет в режиме in recovery. База-то каких объемов? Режим восстановления Full, Simple?
В логах sql сервера есть инфа что происходит.
yozhikvtumane
8.9.2009, 10:36
Цитата(MaZaY @ 8.9.2009, 11:04)
4 гига
Цитата(MaZaY @ 8.9.2009, 11:04)
Режим восстановления Full, Simple?
Дак я хз, я ж ему не давал команды =)
Цитата(MaZaY @ 8.9.2009, 11:04)
В логах sql сервера есть инфа что происходит.
Тоже странно, логи ваще пустые…
Цитата(hayova @ 8.9.2009, 11:36)
Дак я хз, я ж ему не давал команды =)
Когда базу создавали, какой режим восстановления?
см. скрин
И какой объем лога для этой базы? Впрочем если не критично то можете восстановить из бэкапа.
Нажмите для просмотра прикрепленного файла
А с базой сейчас работают в таком режиме?
Это может, мягко гойворя, затянуться.
Цитата(Fastpoke @ 8.9.2009, 12:08)
Это может, мягко гойворя, затянуться.
Да. 40 гиговая бд ин рекавери была 4 дня, но это на слабой железке.
Цитата
А с базой сейчас работают в таком режиме?
Это не возможно.
MaZaY, вот я хотел об этом сказать, что раз 2 дня в рекавери и есть бэкап, то восстановить и не париться( раз никто в ней не может при таком раскладе работать).
yozhikvtumane
8.9.2009, 11:55
Дак а как сей процесс остановить? Иначе восстановить из бэкапа не получается, нет доступа к базе…
hayova, drop db не дает?
Если не ошибаюсь , надо посмотреть справку по ALTER DATABASE SET EMERGENCY
yozhikvtumane
8.9.2009, 12:09
MaZaY, он никаких команд не принимает, грит типа дождитесь окончания процесса восстановления….
А если грохнуть службу SQL Service или как-то так?
Цитата(Лёхич @ 8.9.2009, 13:15)
А если грохнуть службу SQL Service или как-то так?
Тогда уж остановить И запустить с параметром -«бд не восстанавливай»
Вот
https://msdn.microsoft.com/ru-ru/library/ms190737.aspx
А что ещё делать? И если с базой не могут работать 2 дня и топикастер ещё жив — значит не так срочно надо
Цитата(MaZaY @ 8.9.2009, 13:03)
Если не ошибаюсь , надо посмотреть справку по ALTER DATABASE SET EMERGENCY
Цитата
База данных, находящаяся в состоянии RESTORING, не может быть переведена в состояние OFFLINE, ONLINE или EMERGENCY. База данных может находиться в состоянии RESTORING во время выполнения операции восстановления или тогда, когда при операции восстановления базы данных или файла журнала происходит сбой из-за поврежденного файла резервной копии. Дополнительные сведения см. в разделе Действия при ошибках восстановления SQL Server, вызванных повреждением резервных копий.
https://msdn.microsoft.com/ru-ru/library/bb522682.aspx
хз. вроде оно.
yozhikvtumane
8.9.2009, 13:01
Цитата(Лёхич @ 8.9.2009, 13:23)
И если с базой не могут работать 2 дня и топикастер ещё жив — значит не так срочно надо
Эта старая база XAL’а, после перехода на 8ку в этом году используется бухами только в режиме чтения… Как обычно стала нужна в самый неподходящий момент
Цитата(MaZaY @ 8.9.2009, 13:22)
И запустить с параметром -«бд не восстанавливай»
нет там такого параметра
Цитата(MaZaY @ 8.9.2009, 13:34)
не оно
Цитата(hayova @ 8.9.2009, 14:01)
А процесс к данной бд убить?
Все-таки у меня складывается впечатление, что не выходит до сих пор из режима recovery только их разросшегося лога, надо его потом «шринк».
И вот еще:
https://www.sql.ru/forum/actualthread.aspx?tid=315992
yozhikvtumane
8.9.2009, 14:47
Цитата(MaZaY @ 8.9.2009, 15:06)
Все-таки у меня складывается впечатление, что не выходит до сих пор из режима recovery только их разросшегося лога, надо его потом «шринк».
места на диске до опы
Цитата(MaZaY @ 8.9.2009, 15:06)
зачтил, тоже ничего интересного…
Цитата(hayova @ 8.9.2009, 15:47)
Место на диске не причем, если лог транзакций огромный то и время обработки будет большое. Короче, сколько у вас весит имябд.mdf и имябазы.ldf. ? (либо посмотреть в sql manager studio)
Если сброс коннектов к этой базе не помог, то подействует метод грубой силы. Стопим сервис, удаляем(переименовываем) имябд.mdf и имябазы.ldf , затем стартуем сервер, бд отвалиться, поднимаем бэкап или делаем что хотим. Пробуйте.
yozhikvtumane
10.9.2009, 12:46
В общем по хорошему «вернуться» она не захотела Пришлось применить силу
Усе работает
Всем спасибо и слава бэкапам!
hayova, у меня сегодня рассыпался raid в удаленном представительстве, бд sql 2005 вообще в suspect ушла. Это хуже намного. Попытки реанимировать не принесли плодов.
Помянем.
yozhikvtumane
11.9.2009, 8:18
MaZaY, бэкапов не делали чтоль?
hayova, по многим причинам нет. До кучи вылетели виртуальные жесткие диски (bad block) на контроллере домена и файлопомойки. Пробую восстанавливать, впрочем бд sql тоже нужно все-равно восстанавливать, ищу решение.
Цитата(MaZaY @ 10.9.2009, 19:55)
Наливай
Источник