Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Работа с логом (LDF) БД  [new]
dalx
Member

Откуда:
Сообщений: 43
Доброго времени суток.

Возникла некая задача по работе с БД, но не уверен, что для того что мне надо я смогу воспользоваться логом.

Собственно имеется некая БД в которой вносится, ведётся разного рода документация. Софт самописный. Структура БД - мягко говоря - нестандартная. Потребовалось ввести систему контроля работы операторов. В рамках которой, в первую очередь, требуется контролировать (для оценки трудоёмкости) кто, что, когда и сколько ввёл/исправил/удалил данных. Ну и до кучи - было бы неплохо иметь тут же возможность отследить - не упорол ли кто косяка при вводе/корректировке и т.д.

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

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

Собственно вопрос - стоит ли возиться с логом? Если да и всё требуемое мне там есть - быть может подскажете места где можно порыться на предмет инфы по тому что там да как? Или всё же не стоит оно того, и лучше реализовать всё самому (а full модель можно отключить, для сохранности места ибо бекапы делаются еженощно)?

Если подобная тема холивар и/или боян - сорри. Я скорее программер нежели админ БД и это для меня ново. Ткните носом где про сие можно почитать, бо для поиска я не придумал как сформулировать.

А может кто занимался подобной задачей и поделится иной идеей для её решения - буду признателен.

Заранее благодарю за ответы...
16 мар 16, 05:30    [18936246]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
aleks2
Guest
Журнал базы не предназначен для ковыряния в нем кривыми ручками.
В MS SQL нет никаких средств чтения журнала. И, наверное, не будет.

ЗЫ. Ну и вы плохо представляете, что именно пишется в журнал.
16 мар 16, 06:23    [18936260]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Ищите по ключевым словам CDC, Audit, Extended Events и т.д.
Да чего там, SQL Trace и Profiler тоже.
16 мар 16, 09:32    [18936506]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
dalx
В то же время - если я не ошибаюсь, то работа с логом - не документирована. А через fn_dblog и иже с ними можно через SQL запрос получить данные только от последнего запуска сервера (предыдущие транзакции в файле вроде как есть, но вытаскивать их надо уже как-то иначе). Если я ошибаюсь - плиз - поправьте меня.

Поправляю - время сохранение информации в журнале не зависит от времени запуска/работы сервера.

dalx
Собственно вопрос - стоит ли возиться с логом? Если да и всё требуемое мне там есть - быть может подскажете места где можно порыться на предмет инфы по тому что там да как? Или всё же не стоит оно того, и лучше реализовать всё самому (а full модель можно отключить, для сохранности места ибо бекапы делаются еженощно)?

Каков бюджет вашего проекта на "возиться с логом" ? И какова цель проекта ?
Создать конкурента ApexSQL-ю ? Или все же иметь аудит вашей отдельной системы ?

dalx
А может кто занимался подобной задачей и поделится иной идеей для её решения - буду признателен.

Если вам нужен аудит, то аудит есть перехват событий.
А не лазание по журналу, в котором непонятно сколько и за какой период есть данные.
16 мар 16, 09:44    [18936537]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2395
dalx
насколько я понимаю, этим сервер и так занимается самостоятельно, записывая всё в лог.

неправильно понимаете
короче - все самостоятельно
16 мар 16, 09:52    [18936556]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
o-o
Guest
dalx
В то же время - если я не ошибаюсь, то работа с логом - не документирована. А через fn_dblog и иже с ними можно через SQL запрос получить данные только от последнего запуска сервера (предыдущие транзакции в файле вроде как есть, но вытаскивать их надо уже как-то иначе). Если я ошибаюсь - плиз - поправьте меня.

(а full модель можно отключить, для сохранности места ибо бекапы делаются еженощно)?

Про аудит вам уже написали, а про "поправьте"
Вы неправильно понимаете, что и зачем сервер пишет в лог и что такое модель восстановления.
Fn_dblog никак не завязана на рестарт сервера, она показывает то, что в данный момент записано в логе. А лог мог перезаписаться сколько угодно раз с момента рестарта.
Если модель полная, то прежде чем сервер сможет перезаписать лог, должен быть проделан бэкап лога. Тогда ничего из лога не теряется, а искать можно уже в бэкапе, используя fn_dump_dblog.
Только полная модель не для того, чтобы рыться в бэкапах лога, а чтобы иметь возможность восстановить базу на произвольный момент времени, а не на момент снятия полного бэкапа (как в простой модели).
Поэтому переключают full на simple не когда "передумали копаться в логе", а когда допустимо данные терять с момента последнего полного/дифф бэкапа
16 мар 16, 09:56    [18936569]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Jovanny
Ищите по ключевым словам CDC, Audit, Extended Events и т.д.
Да чего там, SQL Trace и Profiler тоже.
Profiler и Extended Events не предназначены для реализации бизнесс логики. А CDC так и вообще не подходит. Там нет имени пользователя.
17 мар 16, 01:00    [18941053]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Mind
Profiler и Extended Events не предназначены для реализации бизнесс логики.
А Audit типа предназначен? Сама задача к бизнес-логике приложения имеет косвенное отношение. Больше к мониторингу.
Я, например, использую Extended Events, чтобы мониторить DDL-операции пользователей.
Mind
А CDC так и вообще не подходит. Там нет имени пользователя.
Решаемо.
http://stackoverflow.com/questions/869300/sql-server-2008-change-data-capture-who-made-the-change
17 мар 16, 09:53    [18941496]     Ответить | Цитировать Сообщить модератору
 Re: Работа с логом (LDF) БД  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Jovanny
Mind
Profiler и Extended Events не предназначены для реализации бизнесс логики.
А Audit типа предназначен?
А про аудит я ничего не знаю, поэтому не комментирую, это вы любите давать советы про технологии с которыми никогда не работали.

Jovanny
Сама задача к бизнес-логике приложения имеет косвенное отношение. Больше к мониторингу.
Если для вас
требуется контролировать (для оценки трудоёмкости)
и
не упорол ли кто косяка при вводе/корректировке
не бизнес логика, то я не знаю тогда, что в вашем понимании бизнес логика.

Jovanny
Я, например, использую Extended Events, чтобы мониторить DDL-операции пользователей.
Можно и микроскопом гвозди забивать. Я бы сказал что DDL триггера больше подходят для этой задачи, но решать вам конечно.

Jovanny
Mind
А CDC так и вообще не подходит. Там нет имени пользователя.
Решаемо.
http://stackoverflow.com/questions/869300/sql-server-2008-change-data-capture-who-made-the-change
Решение гениально нереботающее конечно. Не вся та чушь, что пишут на форумах является верной информацией. Если вы никогда не работали с CDC, то не надо советовать и приводить ссылки на непроверенные источники.
17 мар 16, 20:48    [18945378]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить