Как обрезать лог транзакций MS SQL Server ?
MS SQL Server для каждой базы данных ведет лог транзакций — так называемый файл журнала транзакций. Необходим он для того, чтобы в случае аварийного отключения сервера при повторном его запуске сохранилась целостность данных. Кроме того, с его помощью можно вернуть состояние базы на любую точку в прошлом времени. Однако, с течением времени, файл лога транзакций очень сильно увеличивается в размере и приходит время, когда нужно почистить лог от старых записей, чтобы освободить место на диске. Обрезать лог транзакций можно просто выполнив sql-команды:
BACKUP LOG WITH TRUNCATE_ONLY DBCC SHRINKFILE ()
— логическое имя базы данных
— логическое имя транзакций
Выполнить эти sql-команды можно и на работающей базе.
Удаление файлов данных или журнала из базы данных
В этом разделе описывается удаление данных или файлов журналов в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
В этом разделе
- Перед началом: Необходимые условияБезопасность
- Удаление файлов данных или журналов из базы данных с помощью следующих средств:Среда SQL Server Management StudioTransact-SQL
Перед началом
Предварительные условия
- Чтобы можно было удалить файл, он должен быть пустым. Дополнительные сведения см. в разделе Сжатие файла.
Безопасность
Разрешения
Необходимо разрешение ALTER в базе данных.
Использование среды SQL Server Management Studio
Удаление файлов данных или журнала из базы данных
- В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.
- Раскройте список Базы данных, щелкните правой кнопкой мыши базу данных, из которой удаляется файл, а затем выберите пункт Свойства.
- Выберите страницу Файлы .
- В списке Файлы базы данных выберите файл для удаления и нажмите кнопку Удалить.
- Щелкните OK.
Использование Transact-SQL
Удаление файлов данных или журнала из базы данных
- Соединитесь с ядром СУБД .
- На панели «Стандартная» нажмите Создать запрос.
- Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере удаляется файл test1dat4 .
USE master; GO ALTER DATABASE AdventureWorks2022 REMOVE FILE test1dat4; GO
Как почистить лог транзакций ms sql
Два примера того, как возможно сократить журнал (уменьшить лог) транзакций СУБД SQL (файл *.ldf) для корректной работы 1С 8.
Чаще всего потребность в данной операции возникает из-за переполнения журнала транзакций и откаже корректной работы базы 1С 8. Сопровождается ошибкой: «Журнал транзакций для базы данных переполнен». Причина: «LOG_BACKUP»
Запускается SQL Server Management Studio. В ветке «Базы данных» дерева «Обозревателя объектов» находим базу данных по названию. Вызываем контекстное меню и в нем выбираем пункт «Создать запрос» и вводим текст:
ALTER DATABASE [name_db] SET RECOVERY SIMPLE
DBCC SHRINKFILE ([name_db], 50);
ALTER DATABASE [name_db] SET RECOVERY FULL
, где [name_db] — имя (название) базы данных СУБД. В примере — «Бухгалтерия».
Но этот способ не всегда может сработать. Опустим причины и попытки разобраться и заставить работать этот метод. А перейдем к способу, который является интерактивным выражением уже представленного.
Правой кнопкой мыши на базе вызываем меню и переходим в свойства базы. Переходим на страницу «Параметры».
Нажатие на изображении увеличит его 
На странице «Параметры» для «Модели восстановления» выбирается значение «Простая». Запоминаем исходное значение, скорее всего это «Полная». Нужно будет потом вернуть это значение для модели восстановления.

Это была небольшая подготовка. Теперь выполним непосредственно сжатие (шринк) журнала (лога) транзакций. Для этого вызываем контекстное меню правой кнопкой мыши для базы. В подменю «Задачи» выбираем подменю «Сжать», в нем пункт «Файлы».
Нажатие на изображении увеличит его 
В открывшемся окне устанавливаем «Тип файла» — «Журнал». В «Операция сжатия» выбирается вариант «Реорганизовать страницы, перед тем освободить неиспользуемое место». И указывается новое значение размера файла журнала транзакций в поле вводе «Сжать файл до:». Указать приемлемый размер лога. Нажимается кнопка «ОК».

После выполнения операции сокращения вернем «Модель восстановления» в исходное значение «Полная»

Как почистить log базы данных через Microsoft SQL Server Managment Studio?
На Вин сервере установлен SQL Server 2008 R2, на нем кончается место и он падает, нашёл в чем дело, в папке установки MSQL в папке data лежит файл name_log.LDF размером 350 гигов. Не могу через SQL Managment Studio составить корректный запрос на очистку этого лог-файла. Прошу помощи.
- Вопрос задан более трёх лет назад
- 14566 просмотров
1 комментарий
Оценить 1 комментарий
