Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / БД в процессе восстановления / 3 сообщений из 3, страница 1 из 1
05.03.2020, 19:46
    #39934906
NoobInDB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
БД в процессе восстановления
Был большой объем данных (2 млрд строк в 30 тыс csv файлах). Из них нужно было вытащить некую инфу.

Я развернул локально mssql сервер на терробайтовом hd, создал БД Simple no recovery и через bulk insert все это загрузил в 2 таблицы - одна 200ГБ, другая 400ГБ. Дальше я решил перелить данные из одной таблицы (которая 200ГБ) в другую через insert into t1 select * from t2, предполагалось, что места мне хватит и я просто потом напишу truncate table на 200ГБ таблицу. Но внезапно журнал логов жутко разбух и кончилось место на диске, и я нажал отмена запроса в SSMS. У меня все повисло, я испугался и со страху перезапустил сервер. Теперь моя база в режиме восстановления. Воспользовавшись скриптом на форуме мне показывает, что осталось до окончания recovery 40 часов.

Так как я полный нуб, а по работе аналитик возникли вопросы:

1. Вернется ли БД к тому состоянию до того как я запустил insert into после окончания recovery? или что нужно для этого сделать
2. Что он там восстанавливает, если БД у меня simple no recovery и если смысл мне ждать окончания
3. Как мне соединить эти 2 таблицы, без разрастания лога?

UPD: я добавил памяти серваку и теперь до окончания recovery осталось 4 часа, если это как-то связано.
...
Рейтинг: 0 / 0
05.03.2020, 19:52
    #39934909
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
БД в процессе восстановления
1. Должна. Надо всего лишь подождать.
2. Транзакции логируются (и откатываются, если не закомичены) полностью. Вне зависимости от модели восстановления. А кроме опции "ждать" у вас есть только одна опция - удалить базу и начать все заливки сначала.
3. Не делать больших транзакций, а перелить мелкими порциями или любой балкер (хоть мастер импорта-экспорта). Или сразу импортировать все в одну таблицу.
...
Рейтинг: 0 / 0
06.03.2020, 00:32
    #39934978
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
БД в процессе восстановления
NoobInDB,

Если у вас таблица - куча. То выполняли ли вы insert select с зинтом tablock? Если нет то у вас было полное логирование и тогда понятно откуда у вас вырос лог. Имейте это ввиду. Можно правда еще использовать флаг трассировки
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / БД в процессе восстановления / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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