Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - [решено] Обрезаем файл транзакций логов...

Ответить
Настройки темы
MSFT SQL Server - [решено] Обрезаем файл транзакций логов...

Старожил


Сообщения: 174
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток! Последнее время, на некоторых корпоративных базах, на моем SQL Server 2000 сильно разрослись файлы транзакции логов. Вот и надумал их урезать: Свойства базы - Транзакции логов - Максимальный размер файла. Поставить там ограничение гектар на 10 (при условии, что сам файл данных весит 2,7 GB). Вообще, сейчас работает связка 1С8.0 - SQL Server 2000.
Вопрос следующий... Поскольку, я урезаю файл транзакции логов впервые, подкажите, нет ли там каких подводных камней или нюансов, которые необходимо знать. Сейчас размер файла транзакции логов (в одной из баз) равен 50 ГБ, порежу до 10 ГБ. Как долго будет идти процесс обрезания? Потребуется ли ребут SQL? Удалятся наиболее старые логи или не факт?
Как вариант, рассматриваю переход на схему восстановления Simple. В этом случае логи всех завершенных транзакций должны автоматом делиться. Как долго будет идти процесс смены схемы восстановления? Заблочится ли база на это время? Потребуется ли ребут SQL?
P.S. Умную книгу почитал, но такие нюансы освещены плохо.
Спасибо. Жду авторитетных мнений.

Отправлено: 16:22, 26-11-2007

 

Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


DoublE_zone,
1) Перед операцией застопте 1С, и вообще изгоните всех пользователей.
2) Сделайте Дамп базы - если что, вы поднимитесь с нее на любом сервере.
3) Пропорции Лог/Данные зависят от того какая у вас нагрузка.
Транзакционная (OLTP) или хранилища данных (в основном идут массовые чтения).
В 7.7 рекомендовалось соотношение один к двум.
Плохо видно, за сколько лог файл вырос до 50 Гиг, но думаю рос он достаточно долго.
Думаю вы можете ограничить Лог файл 2-мя Гигабайтами, правда еще вопрос какую политику архивации вы используете.
Т.е. размера лог-файла должно хватать на операции между двумя полными архивированиями.
Т.е. если вы полностью архивируетесь раз в неделю, то размер лог-файла нужно выбрать чтобы хватило на недельные операции (а лучше на две недели).


Т.к. вы используете 32х битную систему, я бы рекомендовал выделять файлы данных под данные и логи размером в 2GB.
Файлы лучше выделять вручную, т.е. откулючить авторасширение.

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:43, 26-11-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 174
Благодарности: 0

Профиль | Отправить PM | Цитировать


kim-aa, спасибо. Как созрею - обязательно попробую.

Отправлено: 11:49, 27-11-2007 | #3


Старожил


Сообщения: 174
Благодарности: 0

Профиль | Отправить PM | Цитировать


kim-aa, а какое действо наступает после выставления (урезания, сейчас 50Г - текущее, сделаю 10Г - max) файла транзакций логов и нажатия кнопки ОК? Файл сразу обрубится и освободит место на винтах или это длительный процесс? Нужно ли перезапускать SQL?

Отправлено: 10:58, 05-12-2007 | #4


Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


DoublE_zone,
По моему, сразу. Я ,честно говоря давно с MS SQL не работал, лет так восемь, и работал всегда с англоязычным окружением. По моему там это звучало как "Trunckate log"

Операция выполняется немедленно. Просто отбрасываются старые операции.

Что касаемо места на дисках, я убей бог не вспомню сейчас модель выделения места MS SQL в 2000.

В MS SQL 6.x серии были устройства данных, это собственно сами файлы хранения или неформатированные сегменты диска. Сегменты данных и сегменты логов, размещались в устройствах данных.
После обрезания сегмента логов, высвобождалось место в устройстве данных, но само файл устройства данных оставался прежним по размеру и изменить размер было возможно, но не всегда удобно
(Expand, Shrink)
Именно по этому есть рекомендации выдавать не одним файловым устройством, а кучей мелких по
2 GB (собственно так поступает Exchange, который суть изуродованный MS SQL)

В 2000 вроде бы модель хранения лог-файлов изменили, однако раз они сжимались в старой модели, то должны сжиматься и вновой.

По прежнему напоминаю, для избежания экцессов отключите все приложения от MS SQL перед операцией. Для надежности можете либо положить сетевой стек, либо просто выдернуть кабель из сервера (если вы работаете непосредственно на сервере)

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий


Последний раз редактировалось kim-aa, 05-12-2007 в 13:11.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:57, 05-12-2007 | #5


Старожил


Сообщения: 174
Благодарности: 0

Профиль | Отправить PM | Цитировать


kim-aa, было решено на ближайших регламентных работах перейти на всех базах на модель Simple. Сам SQL, когда его затачивал "профи" 1С (из конторы 1С, еще до меня), был сконфигурирован просто никак. Сейчас все эти проблемы и посыпались, при увелечении нагрузки. Полные бэкапы (без логов, только сами базы) сливаются каждую ночь.
Вопрос в следующем... Как отреагирует (и отреагирует ли вообще) 1С 8.0, который прикручен к моему SQL2000, на то, что я переведу модель Full на Simple (естественно, всех из 1С выгоню). Возможно, просто восстановлю базу из свежего Backup-а с тем же именем (предварительно снеся полностью старую) уже с пустым файлом логов.
По книжкам, в теории, все просто и быстро, но что-то я ожидаю подводных камней.... Поможите дельным советом.

Отправлено: 17:07, 18-12-2007 | #6


Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


DoublE_zone,
Не ведаю я, о отрок,
терминологии MS-современной.
В чем Full от Simple разнятся?
Или это, суть 1С словеса диавольские?

----------------------------------------------------
Или ты про архивирование глаголешь?
Коли эти уроды, кои Мастера MS SQL создавали,
Богомерзким словом Full - полную выгрузку базы нарекают,
а Simple это инкрементное резирвирование суть есть?

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий


Отправлено: 09:49, 19-12-2007 | #7


Новый участник


Сообщения: 45
Благодарности: 3

Профиль | Отправить PM | Цитировать


На всяки случай атоттачь базу и скопируй лог и саму базу куданить, был както такой случай что после урезге лога база вобше никак не реагировала, говорит лог не тот и всё тут!

Отправлено: 11:00, 20-12-2007 | #8


Старожил


Сообщения: 174
Благодарности: 0

Профиль | Отправить PM | Цитировать


kim-aa, не, немного не так. Имеется в виду модель восстановления (Recovery Model), которая может принимать значения Full, Bulk_logged, Simple. Full - все транзакции записываются и хранятся в журнале транзакций. Simple - журнал транзакций может автоматически усекаться, такое значение позволяет очищать журнал, когда транзакции завершились. То есть хранятся только незавершенные транзакции. Размер файла транзакций, в этом случае, как правило, не превышает гигабайта. Вот, что я имел ввиду.

Отправлено: 11:26, 20-12-2007 | #9


Аватара для kim-aa

Назгул


Сообщения: 2633
Благодарности: 345

Профиль | Отправить PM | Цитировать


DoublE_zone,
Ааа, понятно. Только если система у вас не высоконагруженная - я бы не связывался.
Потому что MS SQL считает завершения по своим транзакциям, а вам важно сохранять транзакции уровня приложения - 1С, которая может состоять из кучи MS SQL-ских транзакций.


В старых MS SQL я поступал вот как:
- Измерял прирост сегмента логов (транзакций) за время равное двойным полным архивированиям. Т.е. если вы архивируетесь раз в неделю, то измерния прироста - за две недели.
- Затем выставлял размер файла в данное значение и режим, не помню как называется, когда устаревшие транзакции стираются - новые записываются, а размер сохраняется.
В некоторых SQL-серверах можно тупо указать временной диапазон - 2 недели и не мучатся.

-------
Мы овладеваем более высоким стилем спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера. (c)Жванецкий


Отправлено: 13:29, 20-12-2007 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - [решено] Обрезаем файл транзакций логов...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Координатор распределенных транзакций __sa__nya Microsoft Windows 2000/XP 6 24-01-2021 11:21
Разное - Поиск USB hubа с мультитрансляцией транзакций (Multi-TT) skyfish Прочее железо 2 17-01-2010 14:49
MSFT SQL Server - Процент заполненности файла журнала транзакций и журнал счетчиков TywkaH4uk Программирование и базы данных 2 21-10-2008 14:39
сервер не нестроен на выполнение транзакций slaine Сетевые технологии 4 17-02-2006 11:25
Проблема транзакций phoner Microsoft Windows NT/2000/2003 1 28-01-2006 13:35




 
Переход