Моя шпаргалка :)

Мануалы и настройки => Windows. Все о нашей "любимой" ОС => Тема начата: George от Янв. 11, 2023, 10:50

Название: Восстановление базы MS SQL после удаления файла логов _log.ldf
Отправлено: George от Янв. 11, 2023, 10:50
РЕШЕНИЕ (для примера восстанавливаемая база будет называться testdb ):
1. При удаление ldf файла и попытки запустить базу только с mdf база перейдет в режим: Recovery Pending
2. Переводим базу в offline режим (tasks -> take offline)
ALTER DATABASE testdb set offline
3. Копируем mdf в другое место (из места расположения бд) в нашем  примере testdb.mdf
4. Удаляем базу. (DELETE)
DROP DATABASE testdb
5. Создаем новую бд с таким же именем testdb
CREATE DATABASE testdb
6. Переводим базу в offline режим (tasks -> take offline)
ALTER DATABASE testdb set offline
7. подменяем testdb.mdf (оригинальным, который вы копировали от поврежденной базы)
8.Переводим базу в online
ALTER DATABASE testdb set online
ВНИМАНИЕ: вы получите ошибку о том что ldf не соответсвет вашим MDF, но если обновите Microsoft SQL Server Managment Studio увидите что база перешла в режим Restricted User mode

9. пересоздаем ldf фаил (указываем новое им ldf).
ALTER DATABASE testdb REBUILD LOG ON (
NAME='testdb_LOG',
FILENAME='E:\SQL_bases\testdb_new_LOG.ldf')
GO

10. Переводим базу в многопользовательский режим и проверяем на целосность

ALTER DATABASE testdb Set MULTI_USER
DBCC CHECKDB (testdb ) WITH NO_INFOMSGS