Как очистить дисковое пространство для сервера SQL? - PullRequest
0 голосов
/ 23 марта 2020

Я использую SQL Сервер на Windows 10. Я получил одну из следующих двух ошибок во всех последних запросах:

Заполнен журнал транзакций для базы данных «MyDB» в «ACTIVE_TRANSACTION».

Произошла ошибка при выполнении пакета. Сообщение об ошибке: на диске недостаточно места.

Я попытался DBCC SQLPERF('logspace') проанализировать дисковое пространство. В базе данных очень мало места для журнала после попытки выполнить запрос, как предложено здесь . Я не ожидаю, что мне удастся решить проблему, уменьшив файл журнала . Я попытался CREATE DATABASE, затем

SELECT * 
INTO new_db.table 
FROM old_db.table

Произошла следующая ошибка:

Сообщение 1101, Уровень 17, Состояние 12, Строка 2
Не удалось выделить новую страницу для базы данных 'new_db' из-за недостатка места на диске в файловой группе 'PRIMARY'. Создайте необходимое пространство, удалив объекты в файловой группе, добавив дополнительные файлы в файловую группу или установив автоматический рост для существующих файлов в файловой группе.

Я удалил файлы журнала из C:\Users\username\AppData\Local\Temp, но происходят такие же исключения. Я также очистил файлы с моего жесткого диска и корзины, а также дефрагментировал жесткий диск. Я попытался настроить путь для результатов запроса в другой каталог (Инструменты> Параметры> Результаты запроса). Я также удалил несколько таблиц из базы данных, вышел с сервера SQL и снова подключился, а также выключил компьютер и перезапустил его.

1 Ответ

0 голосов
/ 23 марта 2020

Первое, что нужно понять, это то, какой режим восстановления используется базой данных.

Если вы находитесь в режиме восстановления FULL, недостаточно делать регулярные резервные копии. Вы должны также делать частые (каждые 20 минут или даже быстрее) резервные копии журнала транзакций . Sql Сервер не будет никогда перезаписывать журнал транзакций, если вы не сделаете этого, , и он будет продолжать расти до тех пор, пока не закончится свободное место.

После запуска резервное копирование журнала транзакций, вы должны иметь возможность уменьшить файл журнала и освободить это дисковое пространство.

Если вы не находитесь в режиме восстановления FULL, вы можете просто очистить или расширить журнал транзакций вручную. в Sql Студия управления сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...