1С + MS SQL 2019. Как приаттачить базу, если лог отсутствует.

Предыстория

Дали мне тут базу,

Дали мне как то базу размером около 7 гигов и лог к ней около 200 гигов. И вот печалюсь я, что качать буду часа 2-3, при текущей скорости интернета. И думаю, а что если сделать попробовать приаттачить базу без лога. Собственно он в данном случае и не нужен.

То есть нужно было найти информацию о том как присоеденить базу данных (*.mdf), если его лог (*.ldf) отсутствует.

В русскоязычном сегменте предлагают какие-то неработающие методики.

Которые вызывают ошибки такого вида:

На русском языке

Сбой при активации файла. Возможно, физическое имя файла “D:\VA-MODERN_log.ldf” неправильное.
Не удается перестроить журнал, поскольку во время завершения работы базы данных существовали открытые транзакции или подключенные пользователи, для базы данных отсутствуют контрольные точки либо она доступна только для чтения. Эта ошибка может возникать, если журнал транзакций был удален вручную или оказался потерян в результате сбоя оборудования или аварии.
Сообщение 1813, уровень 16, состояние 2, строка 1
Невозможно открыть новую базу данных “NEW_DATABASE_NAME”. Операция CREATE DATABASE прервана.

На английском языке

The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

Решение

А вот на англоязычном Stack Overflow какой-то добрый дядя предложил принудительно перестроить лог. И вот при помощи элементарного запроса, можно присоединить базу, даже не имея лога.

Собственно ключевое отличие работающего решения от неработающего в замене ATTACH_REBUILD_LOG на ATTACH_FORCE_REBUILD_LOG

chevron_left
chevron_right