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

Откуда:
Сообщений: 58
Здравствуйте.
Подскажите пожалуйста.
Под утро делаю бэкап лога, после ночного reorganize indexes. Лог бэкапится, все нормально, но не урезается.
dbcc sqlperf (logspace), показывает что используется пару процентов, остальное свободное.
Модель восстановления базы: full.
Читал, то резаться он должен если есть checkpoint, и то я так понял, это только для simple модели.
Как сделать так, чтобы он отдал свободное место системе?
19 дек 11, 14:01    [11788813]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
Как сделать так, чтобы он отдал свободное место системе?

Для начала понять, что усечение и сжатие лога есть две разные операции
Бэкап лога делает первое, но никогда второе
Для второго есть своя команда DBCC SHRINKFILE
Только сначала нужно точно узнать, нужно ли вам сжатие и какое именно сжатие
19 дек 11, 14:06    [11788858]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Я так понял, все завершенные транзакции при бэкапе он резевирует, и освобождает это место для новых записей.
Но место операционке не отдает.
Мне нужно, чтобы после бэкапа он отдавал это свободное место, но не урезал при этом незваршенные транзакции и те транзакции к-е еще не бэкапились.
19 дек 11, 14:50    [11789362]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
Мне нужно, чтобы после бэкапа он отдавал это свободное место, но не урезал при этом незваршенные транзакции и те транзакции к-е еще не бэкапились

Он - это кто ? Команда BACKUP ? Команда DBCC SHRINKFILE ?
19 дек 11, 14:51    [11789380]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Под он я подразумевал MS SQL Server.
Я хотел так: выполнятся бэкап, а за ним мне нужно выполнить подрезку или сжатие (не знаю как правильно выразится, вообщем удаление незанятого пространства, пустых страниц). Но вопрос в том как это сделать правильно (можно и dbcc shrinkfile, но если я правильн вразумел, оан удаляет все до нужного размера, в т.ч. транзакции которые еще не бэкапились), т.е чтобы сохранить ту часть лога где лежат незабэкапленные и активные транзакции, а остальное своюодное место отрезать (сжать), но чтобы оно было доступно ОС.
19 дек 11, 15:06    [11789546]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
извиняюсь, за неправильность некоторых слов в прошлом коменте.
19 дек 11, 15:07    [11789559]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
Я хотел так: выполнятся бэкап, а за ним мне нужно выполнить подрезку или сжатие (не знаю как правильно выразится, вообщем удаление незанятого пространства, пустых страниц). Но вопрос в том как это сделать правильно (можно и dbcc shrinkfile, но если я правильн вразумел, оан удаляет все до нужного размера, в т.ч. транзакции которые еще не бэкапились)

Ничего вы не вразумели
Есть две команды
И выполняют они разные действия
19 дек 11, 15:09    [11789583]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Ну вообщем какую мне выпонять после бэкапа, чтобы она удовлетворяла моим условиям?
19 дек 11, 15:13    [11789631]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
Ну вообщем какую мне выпонять после бэкапа, чтобы она удовлетворяла моим условиям?

Команда сжатия - она единственная
Называется DBCC SHRINKFILE
19 дек 11, 15:15    [11789658]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
feofs
Ну вообщем какую мне выпонять после бэкапа, чтобы она удовлетворяла моим условиям?

dbcc shrinkfile(логическое_имя_файла,размер)
только во первых если активные записи будут позже то лог обржиться до активных записей. Во вторых он опят вырастит до размеров которые ему необходимы между двумя бекапами.
19 дек 11, 15:20    [11789706]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Я так понимаю, размер в dbcc shrinkfile необходимо указывать не меньший, чем тот что выдается при выполнений при dbcc sqlperf (logspace), иначе обрежутся и транзакции, к-е были записаны в лог после бэкапа.
19 дек 11, 16:26    [11790358]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
иначе обрежутся и транзакции, к-е были записаны в лог после бэкапа.

Ну вот откуда вы это взяли ?
В хелпе прочитали ?
19 дек 11, 16:35    [11790441]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
qwerty777
Member

Откуда:
Сообщений: 158
http://msdn.microsoft.com/ru-ru/library/ms178037.aspx
19 дек 11, 16:36    [11790455]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Чего то я мабуть недогоняю.
Например, если после бэкапа лог файл занимает 8Гб, через полчаса например после бэкапа я хочу его обрезать, за это время допусти проводились какие-то операции занято уже 1 Гб, 7 Гб свободно. Я его хочу обрезать до 100 Мб (хотя занято 1ГБ), тогда куда денется 900 Мб, транзакции к-е не вошли в бэкап.
19 дек 11, 16:51    [11790594]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
feofs
Чего то я мабуть недогоняю.
Например, если после бэкапа лог файл занимает 8Гб, через полчаса например после бэкапа я хочу его обрезать, за это время допусти проводились какие-то операции занято уже 1 Гб, 7 Гб свободно. Я его хочу обрезать до 100 Мб (хотя занято 1ГБ), тогда куда денется 900 Мб, транзакции к-е не вошли в бэкап.


Ну серверу глубоко положить, на то, что Вы ТАК хотите...
19 дек 11, 16:54    [11790633]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
feofs
Например, если после бэкапа лог файл занимает 8Гб, через полчаса например после бэкапа я хочу его обрезать, за это время допусти проводились какие-то операции занято уже 1 Гб, 7 Гб свободно. Я его хочу обрезать до 100 Мб (хотя занято 1ГБ), тогда куда денется 900 Мб, транзакции к-е не вошли в бэкап.

Кто опять он ?
Запомнмите
DBCC SHRINKFILE _никогда_ ничего не будет делать с заполненными страницами журнала.
19 дек 11, 16:54    [11790636]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Вообщем попробывал так:
backup log XXXX to XXXX
dbcc shrinkfile ('XXX_log',128)
go
Что то не помогло.
dbcc sqlperf (logspace) показывает что используется 2%.
А после выполнения dbcc shrinkfile вот это:

DbId FieldId CurrentSize MinimumSize UsedPages EstimatedPages
11 2 152464 128 152464 128
19 дек 11, 17:11    [11790817]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну так может вы уже опубликуете результаты dbcc sqlperf (logspace) ?
И dbcc opentran() тоже
19 дек 11, 17:18    [11790882]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Вот sqlperf

А dbcc opentran выдает:
No active open transactions.

К сообщению приложен файл. Размер - 6Kb
19 дек 11, 17:27    [11790971]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
Glory
Member

Откуда:
Сообщений: 104751
Запустите просто dbcc shrinkfile ('XXX_log')
И 128 страниц из MinimumSize не тоже самое, что 128Мб из target_size
19 дек 11, 17:44    [11791133]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
тот же результат
19 дек 11, 17:51    [11791196]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
feofs
тот же результат

В файл фурналов страницы пишутся не так как в файл данных, а поочередно (так называемвые виртуальные файлы журналов).
Ваши 2% расположены не в начале журнала. Выполните
1. BACKUP LOG...
GO
2. BACKUP LOG...
GO
3. shrinkfile(logical_file_name,0)
GO

И будет вам самый минимальный размер файла фурнала транзакций.

з.ы. но я лично считаю это маразмом.
19 дек 11, 17:58    [11791275]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
gds
feofs
тот же результат

В файл фурналов страницы пишутся не так как в файл данных, а поочередно (так называемвые виртуальные файлы журналов).
Ваши 2% расположены не в начале журнала. Выполните
1. BACKUP LOG...
GO
2. BACKUP LOG...
GO
3. shrinkfile(logical_file_name,0)
GO

И будет вам самый минимальный размер файла фурнала транзакций.

з.ы. но я лично считаю это маразмом.

Да забыл указать, что бы небыло разногласий. Данные в журнале заархивируется в том случае, если они не заняты активной транзакцией.
19 дек 11, 18:04    [11791334]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
Большое спасибо, помогло.
Эта операция безопасна? Не задевает занятых страниц журнала?
19 дек 11, 18:09    [11791368]     Ответить | Цитировать Сообщить модератору
 Re: Зашринковать лог  [new]
feofs
Member

Откуда:
Сообщений: 58
C помощью dbcc shrinkfile, можно ли и базу безопасно подрезать?
А то в них тоже после пересоздания индексов образуется много свободного места.
19 дек 11, 18:13    [11791407]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить