in Recovery. Что делать? Ждать пока восстановится?
модель восстановления простая? а если модель восстановления полная, то журналы транзакций бэкапились?
Бекап только есть, но он весит 17 тб
я не про бэкап, я про настройки БД.
Где посмотреть это можно?
например вот так SELECT name, recovery_model_desc FROM sys.databases
ок. Теперь надо глянуть что в логе про эту БД написано.
Согласно логу процент восстановления 22, и в принципе меняется
а из текущего показания можно приблизительно прикинуть, сколько ещё ждать =)
Как удалить записи из таблицы? Их там под миллиард. И в ходе удаления, у меня память съела на диске с, я перегрузил сервер и БД ушла в recovery
В ходе удаления всё съест обязательно - пишет действия в журнал. В таких случаях обычно дешевле создать рядом ровно такую же таблицу, перенести туда столько записей сколько нужно, старую грохнуть, новую переименовать. Только предварительно перед такими манипуляциями обязательно создать резервную копию БД, что бы в случае "что-то пошло не так" было не сильно больно.
А журнал можно перенести на другой диск, чтобы не сжирала так диск c)
можно. Например вот тут описан способ https://docs.microsoft.com/ru-ru/sql/relational-databases/databases/move-user-databases?view=sql-server-ver16
там сразу внизу хороший пример есть. Как раз про журнал.
Спасибо большое, и крайний вопрос, я прочитал, что про простой модели восстановления записи из журнала удаляются при выполнении транзакции.. Это имеется ввиду, что при удалении данных к примеру за год, транзакцией понимается выполнения запроса целиком, а не удаление одной из множества строк? Поэтому у меня на диске с и не осталось места, так как запрос целиком не выполнится, а записи в журнале остались?
так же можно разнести методом detach-attach. Лично я его не люблю, но это личное.
Ну как-то так и есть. Поэтому я написал, что дешевле перегонять нужные данные в копию таблицы с последующим убиванием исходника. Ну ещё вариант выгружать нужные данные в текстовый файл например, затем очистка (TRUNCATE не журналируется, насколько я помню), ну а потом BULK INSERT из текстового файла.
Можно ещё удалять в цикле по 10000 записей например
Так по разу в жизни должен сделать каждый :)
Обсуждают сегодня