Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
MSSQL-Oracle
Guest
По мотивам "redo/undo - ацтой, ldf- рулит!" :)
Понятно что в Oracle есть возможность флэшбэков. А почему это не возможно в MS SQL и чем технически отличается ведение логов если кратко?
20 май 11, 01:41    [10681740]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Yo.!
Guest
MSSQL-Oracle
По мотивам "redo/undo - ацтой, ldf- рулит!" :)
Понятно что в Oracle есть возможность флэшбэков. А почему это не возможно в MS SQL и чем технически отличается ведение логов если кратко?

потому, что в мсскл нет аналога UNDO. ldf это транзакшен лог, т.е. аналог REDO лога в оракле. REDO в оракле тоже более удачный. в оракле система групп, в каждой группе как минимум один файл фиксированного размера, когда файл полностью заполняется запись переключается на другую группу, а предыдущий можно "архивировать" в арклог. таким образом исключается ситуация когда ты обнаруживаешь гигантский ldf который занимает сотни гигов на базе в пару гб и по какой-то причине в упор не трункатиться. в оракле могут накопиться арклоги только.
что касается UNDO у мсскл2005 его функции для уровня snapshot выполняет tempdb. но что бы он не разростся от ненужных версий строк периодически срабатывает "сборка мусора", которая вычищает ненужные версии строк. наверно в теории можно ввести какой-то аналог undo_retension_time где бы указывалось как долго в темпдб удерживать версии, но имхо для начало стоило бы вытащить версии в отдельную структуру и только потом возиться с наворотами вокруг этой структуры.
20 май 11, 02:19    [10681763]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
MSSQL-Oracle
Guest
Yo.!,
Насчет undo, да. В MS SQL для флэшбэков одновременно поддерживать и блокировочных механизм и хранить версии накладно.

А redo и undo в Оракле физически лежат в одном файле или в разных?

В MS SQL в принципе тоже можно бэкапить лог, после чего он отлично трункатиться. Здесь я не совсем уловил нюанс с преимуществами Оракла.
20 май 11, 02:40    [10681770]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
-2-
Member

Откуда:
Сообщений: 15330
MSSQL-Oracle
А redo и undo в Оракле физически лежат в одном файле или в разных?
В разных. Undo в общем-то такой же файл с данными и его изменения логируются в redo, чтобы накатить откаты после неожиданного падения бд. В прежних версиях вместо undo были rollback segments (они и сейчас почти есть), которые могли лежать в любом табличном пространстве.

MSSQL-Oracle
Здесь я не совсем уловил нюанс с преимуществами Оракла.
В Online redo идет синхронная запись небольшими кусками. Archived redo - обычное копирование файлов.
В рамках этой специфики можно играться с оптимизацией стоимости хранения - размещать online redo на флешке, а archived на ленте или сетевом диске. Можно online redo зеркалировать три раза, а архивную копию только два. Кроме того, не все файловые системы поддерживают(ли) достаточный размер одного файла.
20 май 11, 08:21    [10681954]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!,

автор
потому, что в мсскл нет ... когда ты обнаруживаешь гигантский ldf ... tempdb ... не разростся от ненужных версий строк ... наверно в теории ...


Не надоело, а, теоретик ты, наш!?
20 май 11, 10:23    [10682455]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6640
pkarklin, но практически он трункатится не всегда)

Симметрично, анда в оракле тоже бывает разрастается и трункатится с тем же успехом )) Хотя масштаб анды поменьше чем .лдф
20 май 11, 11:14    [10682842]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Siemargl
но практически он трункатится не всегда)


Удаление неактивной части лога и усечение файла - это две совершенно разные операции. О какой из них идет речь?
20 май 11, 11:22    [10682897]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6640
pkarklin, о shrink конечно.
Неудачная терминология.
20 май 11, 11:41    [10683097]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Siemargl,

Не оно:

DBCC SHRINKDATABASE tries to shrink each physical log file to its target size immediately. If no part of the logical log resides in the virtual logs beyond the target size of the log file, the file is successfully truncated and DBCC SHRINKDATABASE finishes without any messages. However, if part of the logical log resides in the virtual logs beyond the target size, the Database Engine frees as much space as possible, and then issues an informational message. The message describes what actions are required to move the logical log out of the virtual logs at the end of the file. After the actions are performed, DBCC SHRINKDATABASE can be used to free the remaining space. For more information, see Shrinking the Transaction Log.

Because a log file can only be shrunk to a virtual log file boundary, shrinking a log file to a size smaller than the size of a virtual log file might not be possible, even if it is not being used. The size of the virtual log file is chosen dynamically by the Database Engine when log files are created or extended. For more information about virtual log files, see Transaction Log Physical Architecture.

?
20 май 11, 11:54    [10683238]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6640
pkarklin, оно конечно. Только срабатывало не всегда.
20 май 11, 12:04    [10683321]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
Siemargl
pkarklin, оно конечно. Только срабатывало не всегда.


+1 тоже сталкивался.

Грантированное попадание пальцем в небо
происходит после полного бекапа базы + бекап логов + рестарт базы.
20 май 11, 19:30    [10686847]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
interesting
Грантированное попадание пальцем в небо
происходит после полного бекапа базы + бекап логов + рестарт базы.


А вот с этого момента по-подробней, пожалуйста...
20 май 11, 23:28    [10687565]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
pkarklin
interesting
Грантированное попадание пальцем в небо
происходит после полного бекапа базы + бекап логов + рестарт базы.


А вот с этого момента по-подробней, пожалуйста...


Работает себе сервер месяц работает другой, третий , регулярно бекапится база и логи.
Подписчик ( сервер отчетов ) , с него постоянно забирает все что ему нужно.
В одни прекрасный момент начинает пухнуть лог ,
проверяются бекапы , логу запускается шринк ,
резальтат - лог в размерах не уменьшается.
После чего
делается , полный бекап базы , бекап логов , рестарт сервера ,
после чего шринк отрабатывает нормально.

приблизительно так.
23 май 11, 10:33    [10692617]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6640
Вообще думаю, от версии может зависеть. Я наблюдал еще на 2000 )

Вот живой пример проблема со усечением лога...
23 май 11, 12:00    [10693249]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
interesting
Работает себе сервер месяц работает другой, третий , регулярно бекапится база и логи.
Подписчик ( сервер отчетов ) , с него постоянно забирает все что ему нужно.
В одни прекрасный момент начинает пухнуть лог ,
проверяются бекапы , логу запускается шринк ,
резальтат - лог в размерах не уменьшается.
После чего
делается , полный бекап базы , бекап логов , рестарт сервера ,
после чего шринк отрабатывает нормально.

приблизительно так.


А я бы начал с проверки наличия открытых транзакций.
23 май 11, 16:31    [10695476]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
pkarklin

А я бы начал с проверки наличия открытых транзакций.


Это первое что искалось , как само собой понятная причина подобного рода поведения.
23 май 11, 17:06    [10695840]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
interesting,

автор
Подписчик ( сервер отчетов ) ,


Используется репликация?
23 май 11, 17:08    [10695852]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
Отстрел сессий и последующие за ним бекапы не помогали шринкануть лог.
На исследования в общей сложности было потрачено несколько человеконедель.

Дешевле сервер раз в несколько месяцев перестартовать,
чем дальше возиться , без какой либо гарантии на результат.
23 май 11, 17:12    [10695875]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
pkarklin
interesting,

автор
Подписчик ( сервер отчетов ) ,


Используется репликация?


Да .
23 май 11, 17:13    [10695882]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
interesting,

C ней не было проблем в этот момент? Например, недонесенные транзакции, которые, естественно, не могут быть удалены из лога публикатора.
23 май 11, 17:25    [10695962]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
pkarklin
interesting,

C ней не было проблем в этот момент? Например, недонесенные транзакции, которые, естественно, не могут быть удалены из лога публикатора.

а как это относится к шринку ?
23 май 11, 17:26    [10695974]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
pkarklin

А я бы начал с проверки наличия открытых транзакций.





автор неизвестен
Не секрет, что rollback надо делать пореже,
Лучше делать почаще commit!
Я программой своей скоро сервер повешу —
У админа пускай голова поболит.

Под крики о кастрации,
В обкуренной прострации,
Как следствие мутации
Рождается в момент
Rollback segment для маленькой,
Для маленькой такой транзакции,
Для скромной такой транзакции
Огромный такой сегмент!

Не секрет, что rollback — это язва и грыжа,
Геморрой и чуть-чуть гайморит.
Если ты программист, а не ослик бесстыжий —
Лучше делай почаще commit!

Под крики о кастрации,
В обкуренной прострации,
Как следствие мутации
Рождается в момент
Rollback segment для маленькой,
Для маленькой такой транзакции,
Для скромной такой транзакции
Огромный такой сегмент!

Не секрет, что друзьям тоже надо ресурсы,
Надо память, процессор и диск…
Так что делай commit, а иначе… ты в курсе,
Что rollback — для тебя неоправданный риск.

Под крики о кастрации,
В обкуренной прострации,
Как следствие мутации
Рождается в момент
Rollback segment для маленькой,
Для маленькой такой транзакции,
Для скромной такой транзакции
Огромный такой сегмент!




Мое призвание
руки за перерасход ресурсов отбивать :)

Работа у меня такая
)
23 май 11, 17:34    [10696032]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Зайцев Фёдор
а как это относится к шринку ?


Не понял вопроса?
23 май 11, 17:40    [10696079]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
interesting
Guest
pkarklin
interesting,

C ней не было проблем в этот момент? Например, недонесенные транзакции, которые, естественно, не могут быть удалены из лога публикатора.



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

Подрезка осуществляется на лету ,
при этом за время сжатия ( около часа) от 50 Гб до 500 мб ( по моим субьективным оценкам работы системы)
может проходить около 1000 транзакций , от начала до комита ( автокомит тоже считается).

Отказов в обслуживании за время сжатия , обнаружено небыло ,
реакция помедленне будет , за счет повышенного ввода вывода.
23 май 11, 17:56    [10696196]     Ответить | Цитировать Сообщить модератору
 Re: Чем отличается ведение логов транзакций в MS SQL от Oracle  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
interesting,

автор
Я не знаю глубину процесса ,


А мне трудно "лечить по фотографии". ;)

А зачем Вы в принципе усекаете лог? Чтоб потом серверу снова тратить дополнительные ресурсы на его расширение?
23 май 11, 17:59    [10696219]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить