Я пытаюсь сделать большой INSERT
операция из одной базы данных в другую. Но я получаю сообщение об ошибке:
Msg 9002, уровень 17, состояние 4, строка 1 Журнал транзакций для базы данных «_ARCHIVE_mydatabase» заполнен. Чтобы узнать, почему пространство в журнале нельзя использовать повторно, см. Столбец log_reuse_wait_desc в sys.databases
Что я сделал до сих пор:
Я также попытался выполнить запрос из этого ответа SF :( Журнал транзакций заполнен), но это не помогает.
Также у нас много _ARCHIVE
базы данных, и все они имеют одну и ту же ошибку!
Что еще можно попробовать и почему это происходит?
Файл журнала транзакций не должен быть маленьким. Это "поцарапать пространство"для транзакций SQL и необходим для работы SQL Server. Установите разумное значение, например 512 МБ или 1 ГБ, затем повторите операцию.
Кстати, не запускайте производственную базу данных по «простой» модели восстановления. Полное ведение журнала транзакций помогает SQL Server поддерживать внутреннюю согласованность транзакций в случае непредвиденных обстоятельств. Вы должны наблюдать за ростом файла журнала, вручную увеличивать его до разумного размера, а затем делать регулярные резервные копии журнала транзакций (в моем случае установлено ежечасное).
Чтобы не задавать очевидный вопрос, но проверяли ли вы, не установлен ли предел размера файла журнала? Или опция автоматического увеличения не отключена ..
Проблема заключалась в том, что был поврежден жесткий диск нашего виртуального сервера. Когда я пытался запустить chkdsk, я получил ошибку «Тип файловой системы - RAW» (что означает неформатированный). Наша ИТ-служба починила диск, и теперь все работает нормально!