powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очистка логов
4 сообщений из 4, страница 1 из 1
Очистка логов
    #32014728
Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Ищу ответ на один вопрос.

Как очистить файл тогов транзакций?
Вот у меня например 1,5 Гб логов,
а мне они не нужны - только место занимают

Спасибо за ответ.
...
Рейтинг: 0 / 0
Очистка логов
    #32014732
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сам недавно искал это и здесь на этом форуме видел процедурку кто-то оставлял
Только вот ее я корректировал для того что бы чистить логи если лог состоит из двух и более файлов (мне нужно было так как лог не превышает 4 Гб поэтому я делал еще пару файлов для лога), эта процедура делает очистку первого файла лога. Ниже та процедурка

У меня такой вопрос. в Accesse я например мог написать запрос с использованием IIF
SELECT Sum(IIf([КодЛПУ]=10300112,[Выставлено],0)) AS a, Sum(Счета.Выставлено) AS Sum_Выставлено
FROM [Счета];

Как в SQL Server'е реализовать можно подобное а то мне надо немало столбцов получит по разным критериям. Пытался свою функцию IIF написать на SQL 2000. Так он собака не понимает
нельзя ему передавать в качестве параметра к примеру d>4.Я так надеялся на то что он будет передавать 1 или 0. А он ругается.

CREATE proc sp_shrinklog
@dbname sysname
as
declare @i int
set nocount on
/*
select @dbname = db_name()
*/
checkpoint
exec('DBCC SHRINKFILE (2, 1, NOTRUNCATE)')
exec('DBCC SHRINKFILE (2, 1, TRUNCATEONLY)')
exec ('create table t1 (char1 char(4000))')
select @i = 0
while (@i < 1000)
begin
exec('insert t1 values (''a'')')
select @i = @i + 1
end
exec('drop table t1')
exec('BACKUP LOG ' + @dbname + ' WITH TRUNCATE_ONLY')
return 0
GO
...
Рейтинг: 0 / 0
Очистка логов
    #32014737
Lesnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если журнал транзакций не нужен совсем, то его размер сразу можно ограничить в свойствах базы,
а обрезаю я его просто
создаюл sp
backup log name_base with truncate_only
и запускаю когда он переполнился.
Можно ее поставить на автоматический запуск(к примеру раз в день).
...
Рейтинг: 0 / 0
Очистка логов
    #32014757
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одной из растпространённых схем резервирования является отписывание в предварительно созданную полную копию записей журнала транзакций. Для этих целей используется оператор BACKUP LOG. При таком подходе, в копию попадают записи журнала транзакций от момента, когда была создана полная копия или отписывались транзакции последний раз и до конца текущего журнала. При этом от журнала будет отсечена неактивная его часть вплоть до начала активного фрагмента, т.е. до того места, откуда начинаются активные в этот момент транзакции и далее, до конца журнала. Поскольку, после отписывания журнала в копию происходит очистка завершённых транзакций, таким способом можно удерживать размер журнала в разумных пределах (он не будет "распухать" у вас до следующей полной копии). Кроме того, соблюдается хронология выполнения операций, т.е. можно их восстанавливать в обратном порядке, как они выполнялись, а не последнее значение (разностная копия).
Возможен случай, когда в промежутке между очередным резервным копированием журнала (по описанной выше схеме) у Вас будет повреждена база данных или даже утеряна полностью. Не отчаивайтесь, выход есть. Правда, для этого нужно, что бы "выжил" файл, содержащий журнал транзакций. Поскольку в журнале останутся записи после Вашего последнего резервного копирования, Вы можете применить оператор BACKUP LOG с параметром NO_TRUNCATE, после чего всё содержимое журнала транзакций попадёт в Вашу резервную копию, даже если сама база уже не доступна. Разумеется, усечения журнала транзакций не происходит и у Вас появляется возможность восстановить данные на момент сбоя. Вы восстанавливаете базу из имеющейся копии, а потом восстанавливаете транзакции из журнала, которые Вы скопировали с параметром NO_TRUNCATE. Забыл ещё одно непременное условие: кроме журнала, у Вас должны обязательно выжить .mdf файл этой базы, где хранятся системные таблицы и база master.
Параметр TRUNCATE_ONLY или NO_LOG в увязке с BACKUP LOG может помочь Вам просто очистить журнал. Надеюсь, Вы сделаете сразу после этого резервную копию. При этом активная часть журнала остаётся не тронутой. Такая операция может понадобиться, если журнал разросся до такой степени, что заполнил всё свободное дисковое пространство и пользователи не могут больше вносить изменения. Я же, искренне надеюсь, что Вам доведётся прибегать к подобной операции только в тестовых условиях, когда потеря данных не критична. Есть в таком подходе и один приятный момент: дело в том, что выполненная после очистки журнала полная копия получится меньше, чем обычная (за счёт отсутствия в ней не активных записей журнала). Этот трюк можно проделать, если Ваша база чуть – чуть не помещается на устройство резервирования. Кроме того, операция усечения журнала не регистрируется. Эффекта автоматического усечения журнала, после каждого запуска контрольной точки, можно получить установкой в TRUE параметра базы данных truncate log on check point. Завершённые транзакции будут удаляться из журнала, что не даст ему сильно расти. Правда, в таком режиме работы базы Вы на сможете отписывать транзакции в резервную копию, а следовательно, восстановлению подлежит только то, что было до этого резервировано.
Дополнительно, изучите нижеследующие материалы:
http://www.sql.ru/articles/mssql/01062802ShrinkingTransactionLogSQLServer2K.shtml
http://www.sql.ru/articles/mssql/01070602SQL2KRecoveryModels.shtml
http://www.sql.ru/articles/mssql/01070901QuicklyShrinkingTransactionLog.shtml
http://www.sql.ru/articles/mssql/01070903TruncatingTransactionLog.shtml
http://www.sql.ru/articles/mssql/01072301CausesOfSQLTransactionLogFillingUp.shtml
http://www.sql.ru/articles/mssql/01072302TransactionLogStillFull.shtml
http://www.sql.ru/subscribe/70028/06.shtml#7
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очистка логов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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