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

Откуда: Новосибирск
Сообщений: 97
Сорри за простой вопрос, но не нашел ответа на него... У меня большая аналитическая база, изредка в ней надо сделать update 1-го поля по всем записям, лог увеличивается на размер базы (~15ГБ). Мне проще восстановить базу, если будет сбой, нежели ждать запись этого лога. Мне кажется что бОльшая часть времени (~4 часа) уходит на запись лога. Можно ли запись в лог отключить на время или вообще навсегда?
7 апр 03, 07:25    [166036]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
sparrow
Member

Откуда: Россия, Красноярск.
Сообщений: 21759
Отключить запись в лог файл нельзя.
Измени Recovery model на Simple в опциях базы данных.
7 апр 03, 08:48    [166051]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Dominic
Member

Откуда: Сургут
Сообщений: 66
А мне кажется, что можно:

sp_dboption MyDB, 'trunc. log on chkpt', TRUE


Я отключаю ведение лога (MSSQL 2000 SP2) на период работы DTS, потом восстанавливаю:

sp_dboption MyDB, 'trunc. log on chkpt', FALSE


И ничего, не ведется.

С уважением, Dominic
7 апр 03, 10:49    [166175]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Dominic

Ничего ты не отключаешь, просто в семерке это аналог Simple Recovery model в 2000. При таких установках лишние записи из лога автоматически удаляются при прохождении checkpoint. Если будет один запрос на UPDATE большого кол-ва записей, то лог будет расти, но по завершении транзакции он будет очишен, т.к. пройдет checkpoint. А интервал между checkpoint напрямую зависит от объема изменяемых данных.
7 апр 03, 11:00    [166195]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Dominic
Member

Откуда: Сургут
Сообщений: 66
2pkarklin
I'm sorry, я имел ввиду именно это. Если имеется 5 операций с данными, каждая из которых приводит к увеличению LOG на 200 МБ, то устанавливая опцию "ОБРЕЗАНИЕ LOG ПРИ ПРОХОЖДЕНИИ CHECKPOINT", я ожидаю, что LOG не будет после проведения этих операций превышать 200 МБ.

С уважением, Dominic
7 апр 03, 14:54    [166661]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Если имеется 5 операций с данными, каждая из которых приводит к увеличению LOG на 200 МБ, то устанавливая опцию "ОБРЕЗАНИЕ LOG ПРИ ПРОХОЖДЕНИИ CHECKPOINT", я ожидаю, что LOG не будет после проведения этих операций превышать 200 МБ.

Если эти 5 операций происходят в одной транзакции, то лог вырастит на 5х200.
7 апр 03, 15:38    [166735]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
B0rG
Member

Откуда: столичный город кудаблин
Сообщений: 619
как я понимаю при insert операциях в лог тоже пишеться, так?

а вот будет ли писаться в лог при insert/update временных таблиц В #temp?
7 апр 03, 15:41    [166742]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
>вот будет ли писаться в лог при insert/update временных таблиц В #temp?

Да, тока в лог tempdb.
7 апр 03, 15:44    [166751]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Dominic

Glory, как всегда прав. Если и даже включен режим урезания протокола транзакций, то он может расти при наличии хотя-бы одной длинной по времени транзакции (long-running transactions) даже не в коннекте, выполняющем апдэйт.
7 апр 03, 15:51    [166758]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
Dominic,
Glory,

прошу прощения - но какая разница cherox'у: пишется 5 раз в одно место (200Мб) или один раз, но много (5х200). Ему ведь не места жалко - а времени на физическую запись в лог. А это время в обоих ваших случаях одинаково. Действительно, интересный вопрос - как миновать лог совсем?
7 апр 03, 15:53    [166761]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ему ведь не места жалко - а времени на физическую запись в лог. А это время в обоих ваших случаях одинаково. Действительно, интересный вопрос - как миновать лог совсем?

А вы понимаете - что такое транзакция ? Если обновление затрагивает все записи таблицы, то как вы предлагаете обеспечивать целостность базы не записывая никуда никакой информации об осуществляемых действиях ?
7 апр 03, 16:01    [166771]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
Glory,

что такое транзакция я сегодня точно начну понимать лучше. Благодаря Вашим разъяснениям. :-)
Во-первых, не очень понятна связь "целостности" и "информации об осуществляемых действиях". Я вот, во имя поддержания целостности, например, рисую диаграммы. Никакой лог мне для этого не нужен. Или может, диаграммы храняться в лог'е? Конечно, все может быть... Думаю, что физическая целостность на уровне файлов тем более здесь ни при чем.
Задан конкретный вопрос - изменение одного поля в большом файле без записи в лог. Человек сам готов отвечать за все возможные последствия. И нарушение логической целостности и физический сбой. Возможно ли это в принципе?
7 апр 03, 16:20    [166811]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Slav

>Возможно ли это в принципе?

Для MS SQL отключить лог для UPDATE нельзя.

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

Физической целостностью файлов занимается файловая система. Так, для инфы, NTFS, тоже использует механизм транзакций.

>Во-первых, не очень понятна связь "целостности" и "информации об осуществляемых действиях.

Прежде чем писать изменения в базу, сервак сначала пишет в лог, потом, при успешном физическом записи данных на страницы проставляется признак, что транзакция успешно применена.
7 апр 03, 16:54    [166867]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
pkarklin,

спасибо. Я согласен, что сам механизм записи транзакций в лог и т.д. - вещь, вероятно, необходимая. Во многих случаях. Во всех ли?
Но прежде чем продолжить свою мысль, хотел бы спросить у тебя. Есть ли некая функция, сообщающая сколько ошибок произошло при попытках исполнения транзакций из лога. Сколько физических записей закончилось неуспешно? Грубо говоря, оценить КПД лога. Рискну предположить, что в монопольном режиме тратить 4 часа в ожидании возможного сбоя на диске - а почему бы еще? - является роскошью. Тем более, что NTFS это контролирует - сам ведь пишешь.
7 апр 03, 17:37    [166950]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Рискну предположить, что в монопольном режиме тратить 4 часа в ожидании возможного сбоя на диске - а почему бы еще? - является роскошью.

Ну почему только физического сбоя ?
А если обновляемые данные не удовлетворяют логическим ограничениям ? Например, check constraint-у или fk constraint-у.
Чем ваш человек будет отвечать за такой сбой ? Своим словом ?

А если машина, на которой запущено обновление, падает? Это что должно означать ? Что нужно продолжать обновление ? Или прервать его ?

А если вы сами выбрали прерывание выполнение ? А сервер вам заявит, а вот фиг, все обновления уже сделаны.
7 апр 03, 18:06    [166992]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
Glory,

про логические ограничения: спасибо Микрософту, что о нас - дураках - постоянно думает. Вот даю я слово, что мне именно так надо - а мне голос с небес: "Не надо тебе этого. Идиот ведь". Переходить улицу, конечно, надо на зеленый - но иногда, ох как нужно на красный.

А если машина, на которой запущено обновление, падает?
...
А если вы сами выбрали прерывание выполнение?


Ну не так уж часто машины падают. Да и если вдруг прервался - тоже не страшно. Резервная копия.

Мне проще восстановить базу, если будет сбой, нежели ждать запись этого лога
cherox

Да, совет банальный - но можно еще разнести .mdf и .ldf.
7 апр 03, 18:32    [167026]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вот даю я слово, что мне именно так надо - а мне голос с небес:

Вовсе не голос с небес. А вовсе даже вы сами. Ведь не Microsoft же создал constraint-ы в вашей пользовательской таблице.

И вообще проблему можно решить с помощью обновления данных порциями. С помощью того же SET ROWCOUNT

Ну не так уж часто машины падают. Да и если вдруг прервался - тоже не страшно. Резервная копия.

Часто/нечасто понятия относительные. А если бэкапа нет ? А если есть но 3-годичной даности ?А если есть вчерашний, но именно сегодня в базу было закачены очень важные данные и много ? Это все должнен учитывать MS SQL Server или DBA ?

Лично я бы гнал DBA с такими взглядами на целостность базы от сервера всеми руками и ногами (не имею ввиду ничего личного).
7 апр 03, 18:47    [167044]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
Glory,

Часто/нечасто понятия относительные. А если бэкапа нет ? А если есть но 3-годичной даности ?А если есть вчерашний, но именно сегодня в базу было закачены очень важные данные и много ? Это все должнен учитывать MS SQL Server или DBA ?

Лично я бы гнал DBA с такими взглядами на целостность базы от сервера всеми руками и ногами (не имею ввиду ничего личного).


Согласен. Полностью. Но, положа руку на сердце, что предосудительного в следующей последовательности действий:
1. Базу - в монопольное использование.
2. Бэкап, заодно и лог отработаем.
3. Отключение лог-а. Заполнение полей.
4. По обстоятельствам; в большинстве случаев экономия времени.
7 апр 03, 19:03    [167062]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
1. Базу - в монопольное использование.
2. Бэкап, заодно и лог отработаем.
3. Отключение лог-а. Заполнение полей.
4. По обстоятельствам; в большинстве случаев экономия времени.


- Ну не знаю не знаю. У меня архивация занимает 6 часов (270Гб) .... Эдак я должен буду пользователей дня на 2 "отлучить" от базы.
- А вы знакомы с утилитой bcp.exe ?
- Проблема не самом факте записи в транзакшен лог. А проблему его неограниченного роста при толстой транзакции можно решить разбивкой на порции.
7 апр 03, 19:15    [167075]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Glory (Slav, не обижайся)

Со Slav можно спорить до безконечности, все равно он останенться при своем мнении. :-)
7 апр 03, 19:21    [167081]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
MiCe
Member

Откуда: RUSSIA STAVROPOL Pyatigorsk
Сообщений: 1996
фундаментальный принцип ACID..... почитайте про это Slav... пригодится....
на сервере никогда не выполняется ни одна операция с данными без транзакции.... примите это как данное.... если интересно то просто прочтите про целостность данных и уровни изоляций.... вы путаете клиент-серверный подход с файловым....
7 апр 03, 19:22    [167084]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
2pkarklin
Ну запись-то в лог он все равно отключить не сможет :)
7 апр 03, 19:23    [167086]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 MiCe & Glory

Из всех требований, которые перечисли Slav в своих постах я делаю вывод, что для него самый лучший вариант это DBF. Ни те лога изменений. Хош, монопольный режим. Целостность данных на уровне файловой системы.

2 Slav

И как ты думаешь, почему мы все тут так SQL Server уважаем. Да потому что, только при его наличии можно сделать то, что немыслимо было с DBF. А невозможность отключения лога для UPDATE (про BULK INSERT не будем здесь) я рассматриваю как +
7 апр 03, 19:32    [167096]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
pkarklin,

Со Slav можно спорить до безконечности, все равно он останенться при своем мнении. :-)

Да я писал уже - туповат немного... :-(

Сейчас пытаюсь искренне понять, что так восхищает умудреных аксакалов в механизме транзакций. Кроме "фундаментальности принципов".
Помнишь, ты мне говорил, что при потере коннекта - нормальном, аварийном, неважно - сервер делает откат? Т.е., используя "клиент-серверный подход" запускаю исходную задачу с клиента (4 часа). Допустим, на 3-й час сервер падает. Что дает лог? Да ничего - откат в исходную дает. А если мне просто надоело ждать и закрываю клиента? Сервер теряет коннект и тоже откатывает? Так? Поневоле вспомнишь, что есть просто файлы...

Ссылки могут сопровождаться ворчанием и несильными ругательствами... :-)
7 апр 03, 19:48    [167108]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли отключить запись в лог файл?  [new]
Slav
Member

Откуда: МАсква, великий и прекрасный город
Сообщений: 9047
pkarklin,

И как ты думаешь, почему мы все тут так SQL Server уважаем. Да потому что, только при его наличии можно сделать то, что немыслимо было с DBF.

Да я его тоже уважаю. Наоборот - пытаюсь разобраться, а ты - извини - чуть ли не каждый мой вопрос трактуешь как посягательство на "фундаментальные принципы". А уж тебя я слушаю просто открыв рот! (почти без иронии)
7 апр 03, 19:59    [167111]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить