Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Очистить *.ldf  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Cheerful Calf
На втором
BACKUP LOG WITH TRUNCATE_ONLY cannot operate on database 'TESTDB1' because it is configured for database mirroring.


ну так с этого бы и начинали...остановите сперва зеркалирование
3 июн 08, 17:46    [5754423]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
Glory
Cheerful Calf

BACKUP LOG TESTDB1 TO DISK = 'null'
Проходит успешно, но размер лог файла от этого не уменьшается.

Он и не должен уменьшать размер файла. Для уменьшение есть команда DBCC SHRINKFILE
всё равно не понятно как этим зверем пользоваться
до
--name AvailableSpaceInMB
----------------------- ---------------------------------------
--TESTDB1 1.625000
--TESTDB1_log 0.125000

после DBCC SHRINKFILE(TESTDB1_log, 2) то же самое
--name AvailableSpaceInMB
----------------------- ---------------------------------------
--TESTDB1 1.625000
--TESTDB1_log 0.125000
3 июн 08, 18:14    [5754682]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
после
BACKUP LOG TESTDB1 TO DISK = 'null'
результат
name                    AvailableSpaceInMB
----------------------- ---------------------------------------
TESTDB1			1.625000
TESTDB1_log		10.093750
но размер лдф файла, который я вижу в виндовс експлорере - не меняется. Так как правильно делать?
3 июн 08, 18:18    [5754708]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Glory
Member

Откуда:
Сообщений: 104760
Cheerful Calf
Glory
Cheerful Calf

BACKUP LOG TESTDB1 TO DISK = 'null'
Проходит успешно, но размер лог файла от этого не уменьшается.

Он и не должен уменьшать размер файла. Для уменьшение есть команда DBCC SHRINKFILE
всё равно не понятно как этим зверем пользоваться
до
--name AvailableSpaceInMB
----------------------- ---------------------------------------
--TESTDB1 1.625000
--TESTDB1_log 0.125000


Это результат чего вы показываете ?
3 июн 08, 18:18    [5754709]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
SELECT
name ,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files
3 июн 08, 18:20    [5754723]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Glory
Member

Откуда:
Сообщений: 104760
Мда

DBCC SQLPERF(LOGSPACE)
3 июн 08, 18:22    [5754740]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
вот как он вырос после цикла, и каким я его вижу в виндовс експлорере (почти) - такой же и тут
Log Size (MB) - 13,30469
Log Space - 24,18893
3 июн 08, 18:25    [5754755]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
Начало
--Database Name Log Size (MB) Log Space Used (%) Status
--TESTDB1	13,30469      55,24809	 	 0

DBCC SHRINKFILE(TESTDB1_log, 2)
--TESTDB1	13,30469      58,13638	 	 0

BACKUP LOG TESTDB1 TO DISK = 'null'
--TESTDB1	13,30469      22,25851	 	 0
3 июн 08, 18:38    [5754836]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
При создании было указано так

К сообщению приложен файл. Размер - 0Kb
3 июн 08, 18:56    [5754903]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Glory
Member

Откуда:
Сообщений: 104760
DBCC SHRINKFILE(TESTDB1_log, 2)
--TESTDB1 13,30469 58,13638 0

Нельзя уменьшить файл до размера меньшего, чем занятые в нем страницы.
3 июн 08, 19:56    [5755136]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
Тогда уточнение: если для базы, которая сконфигурирована для DATABASE MIRRORING, я буду запускать каждые n минут jod c T-SQL
DBCC SHRINKFILE(TESTDB1_log, 2)
BACKUP LOG TESTDB1 TO DISK = 'null'
то это "остановит" рост лога и будет правильным решением для обслуживания базы? Или надо что-то ещё? Или я вообще всё и не так понял?
4 июн 08, 09:10    [5756361]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Vel
Member

Откуда: То там, то сям.
Сообщений: 420
BACKUP LOG TESTDB1 TO DISK = ...
будет правильным решением и остановит рост лога. шринк, на мой взгляд, не нужен. разве что в самом начале, чтобы изначальный размер файла лога был не слишком большой.
4 июн 08, 12:04    [5757568]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
1) что значит троеточие? То есть делать не на диск 'null', а реальный бэкап?
2) как часто это надо делать, то есть от чего должна зависить частота?
4 июн 08, 12:10    [5757609]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Vel
Member

Откуда: То там, то сям.
Сообщений: 420
1. вместо троеточия подставить то, что нужно. если вам нравится null, то пусть будет null. но у многих бекап логов это одна из частех схемы восстановления, поэтому null не проходит
2. это уже вам решать. зависит от:
а. является ли бекап лога часть плана восстановления
б. какое количество данных потерять нежалко
в. какова активность работы с базой, т.е. насколько быстро растет лог.
как я понимаю, вас пункты а. и б. не интересуют, поэтому выбирайте только по активности. почему бы не начать с "раз в сутки"?
4 июн 08, 12:29    [5757752]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
не совсем
a) восстановление должно проходить быстро, плана пока нет, потому и спрашиваю тут как и что надо делать, при датабейз миррор.
б) за последние 30 минут
4 июн 08, 12:37    [5757837]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Vel
Member

Откуда: То там, то сям.
Сообщений: 420
1. на план восстановления зеркалирование не должно сильно повлиять, т.к. зеркалирование это всего лишь страховка на случай выхода их строя сервера. но ведь никто не мешает выйти из строя сразу двум серверам. и зеркалирование не спасает от ситуаций "что я только что сделал???!!!". поэтому действуйте так же, как и без зеркала
2. значит бекап лога с периодичностью <=30 мин, и не в null, а в файл бекапа. в принципе, никто не мешает делать бекап каждые 5 минут
4 июн 08, 12:50    [5757952]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
То есть делать всё обслуживание и очистку лога, как для "простой" базы, забыв про зеркалирование?
4 июн 08, 17:08    [5760061]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Vel
Member

Откуда: То там, то сям.
Сообщений: 420
обслуживание - да. очистку лога? под этим подразумевается backup или shrink?
если первое, то да, нужно делать, если не желаете иметь неконтролируемый рост лога. шринк же делать, на мой взгляд, не только не нужно, но и вредно
5 июн 08, 09:54    [5762299]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 6994
а бэкап только лога или фулл бэкап? Это как я понимаю надо на случай выхода из строя сразу обоих серверов?
5 июн 08, 09:58    [5762311]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Vel
Member

Откуда: То там, то сям.
Сообщений: 420
почитайте BOL по поводу различий backup database и backup log. Так же неплохо было бы почитать про сценарии восстановления как при фатальном сбое, так и при откате БД на определенный момент времени
5 июн 08, 12:25    [5763574]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Очистить *.ldf  [new]
Last1Cmen
Member

Откуда:
Сообщений: 30210
А как скажется на производительности эта инструкция ?

USE [test]
GO
BACKUP LOG [test] WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE (test_Log', 1)
GO

я так понял что "откатиться" в дальнейшем не получится (не критично т.к. несколько дней архивных копий всегда есть) но не скажется ли существенно на скорости работы самой БД (статистики то не будет для анализа)
28 июл 09, 11:36    [7467843]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Glory
Member

Откуда:
Сообщений: 104760
Last1Cmen


я так понял что "откатиться" в дальнейшем не получится (не критично т.к. несколько дней архивных копий всегда есть) но не скажется ли существенно на скорости работы самой БД (статистики то не будет для анализа)

Журнал транзакций используется для хранения транзакций, а не для записи статистик, которые влияют на производительсность.
28 июл 09, 11:39    [7467874]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Last1Cmen
Member

Откуда:
Сообщений: 30210
Glory, спасибо - попробовал вроде скорость на тяжелых отчетах таже

теперь значит следующий вопрос (как мёд так и ложкой) а можем журнал за последний год а остальное удалить ?
28 июл 09, 13:19    [7468494]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Glory
Member

Откуда:
Сообщений: 104760
Last1Cmen
Glory, спасибо - попробовал вроде скорость на тяжелых отчетах таже

теперь значит следующий вопрос (как мёд так и ложкой) а можем журнал за последний год а остальное удалить ?

А что такое "журнал за последний год" ?
Еще раз, журнал транзакций есть средство для обеспечения целостности данных и для их восстановления.
28 июл 09, 13:23    [7468523]     Ответить | Цитировать Сообщить модератору
 Re: Очистить *.ldf  [new]
Last1Cmen
Member

Откуда:
Сообщений: 30210
автор
Еще раз, журнал транзакций есть средство для обеспечения целостности данных и для их восстановления.


это я понял

автор
А что такое "журнал за последний год" ?


но раз есть сам журнал то как-то же в нем хранятся данные "по периодам" (я структуры его не знаю потому и спрашиваю)... вот и интересно могу ли я удалить данные о транзакциях (работе с БД) скажем годовой давности... до этого момента и нкто её восстанавливать всё равно не будет т.к. смысла для отчетности не имеет (вернее сама отчетность 5 лет храниться но менять её по закрытию года уже чуть ли не подсудное дело... даже если ошибки были)

:) если это невозможно то уже бог с ним - бум восстанавливать из недельного бекапа если вдруг чего
28 июл 09, 13:29    [7468557]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить