powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по администрированию
27 сообщений из 27, показаны все 2 страниц
Вопрос по администрированию
    #33337965
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Вопрос по Sybase Anywrhere 7.0
Хотелось бы сделать такую вещь: завести бы табличку с полями:
Дата, операция(insert, update, delete), старое значение, новое значение, юзер
причем хотелось бы чтобы эта табличка заполнялась автоматически
PS на каждую таблицу вешать триггер неохота или если уж придется, чтоб он был для всех таблиц похожий ( у меня в базе 300 таблиц)

заранее спасибо
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337967
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База данных ASA
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337971
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятна суть вопроса - Вы хотите чтобы это за Вас сделали или есть какие то сложности создать табличку и триггерами в нее писать ? (я уж скромно молчу, зачем такое понадобилось).
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337976
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может вам просто стоит посмотреть лог? представляю себе потом размер этой таблички
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337984
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Табличку создать несложно, сложно написать процедуру ее заполнения.
300 триггеров писать совсем неохота
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337990
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно ли я понял, что нужно сделать табличку, которая подобным образом будет отслеживать изменения в любом поле любой из 300 таблиц??
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33337994
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лог неудобно просматривать, он доступен другим пользователям (они его могут изменить) да и табличку просматривать удобнее.

А размер как раз будет не очень большой - я же буду скидовать только те поля, которые реально меняются. Т.е. главная цель UPDATE
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338000
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Кот - Да, правильно
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338004
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В табличке будут еще 2 поля - Имя измененной таблицы и измененное поле
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338084
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы рекомендовал подходить к таким вопросам с точки зрения постановки и целесообразности функциональности. Клиент может желать все, даже не имея представления, зачем ему это нужно. "Шоб было круто" - обычная практика обоснования таких вещей. У меня одного друга "обязали" сделать такое же, он затратил уйму сил и времени на это, оказалось, что во первых может раз в год этим кто и воспользуется, во вторых смотрели только кто последний изменил запись - оно и понятно, обычно людей интересует какая сволочь изменила цифру и теперь не сходятся отчеты и им не особо интересно копаться и смотреть, что было до этого раньше. Для таких случаев полей с DEFAULT на CURRENT USER, LAST USER, CURRENT TIMESTAMP и TIMESTAMP как раз хватает вполне достаточно. Другое дело, когда версионность записей необходимо хранить для проведения сторнирующих расчетов, где могут вестись пересчеты задними числами и необходимо на указанный момент времени учитывать в расчетах информацию, актуальную именно на сторнируемый период. Однако таких данных в системе не так много и обычно к таким таблицам реализуют дополнительные таблицы, в которых хранятся старые версии изменившихся полей, для которых важна версионность.

Что конкретно по Вашему решению из критики:
1. Реально придется вложиться на трудозатраты написания триггеров, код которых будет не слабым (все поля логировать позаписно)
2. Система тут же просядет - каждая операция изменения только одной записи будет плодить в такую табличку кол-во записей, равное кол-ву логируемых полей. Увеличиться нагрузка на лог, появятся лишние блокировки на эту таблицу, которые будут мешаться при одновременной записи множества сессий, начнет стремительно расти размер БД и прочие радости жизни.
3. Толку от такой таблички - как от козла молока. Вряд ли будет удобно пользователям смотреть изменения по полю, они захотят увидеть одной записью изменения документа (всех полей записи), запросик на получение этого тоже не будет отличаться легкостью реализации и скоростью выполнения.

Из всех пунктов вытекает вопрос - для чего нужен подобный изврат ? Пользователи просто хотят себя чувствовать себя богами и видеть кто что и когда менял или же предполагается какая то аналитика (не представляю правда, что с этого можно проанализировать, разве что кто больше работает с теми или иными документами) ?
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338094
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не секрет, с какой скоростью растет база?
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338195
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexxx2783Лог неудобно просматривать, он доступен другим пользователям (они его могут изменить) да и табличку просматривать удобнее.
Это какой такой пользователь может изменить лог???
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338208
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к вопросу о хранении истории изменений
недавно занимался этим вопросом и руководство удовлетворил вариант с утверждением изменений:
хранится не вся история, а утвержденная копия записи в самой таблице. При изменении записи, если запись утверждена, триггер делает копию записи в этой же таблице. Пользователь, наделенный правами утверждать изменения, видит измененные записи, может открыть утвержденный оригинал и может или принять или отменить изменения. При отмене изменений, новая запись удаляется, в изменной записи данные восстанавливаются из оригинала - копии записи. И при утверждении и при отмене изменений оригинал удаляется.
в таком подходе есть и плюсы и минусы, также как и в любом другом (триггеры писать все равно придется)
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338212
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, ну для одной-двух-трех таблиц можно еще сделать вторичные таблицы аудита. Но не на все же таблицы базы? :)
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338234
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что на самые важные таблички подобные вещи сделаны. Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами. Всю запись мы уже пробовали резервировать - результаты действительно получились страшными - база распухла с 300 до 450 гектаров. А вот инновация с конкретными полями вроде бы имеет место, тем более что это на одном из отделов уже сделано, но как перенести на всех....
Друг мне написал процедурку, которая копирует в спец. табличку имя участка и время при неудачной репликации - он нашел такое св-во у сайбэйса и все происходит автоматом. Неудели нет глобального св-ва UPDATE для всей базы???
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338335
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexxx2783Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами.
фигней вы пытаетесь заниматься.... фигней.
Единственное что юзер может сделать с логом - убить его. Но это решается методом запуска сервера БД в качестве сервиса и запретом юзерам даже заходить в каталоги где база лежит. Все общение с сервером БД только по сети.
Если вы делаете распределенную базу, то и репликация уже либо есть либо начинаете заводить, так? Ну вот и сканируй лог своей консолидированой базы переодически.
В конце концов, к особо злостным рушителям базы можно и административные меры применять :) База падала три раза в месяц - премии не будет. Четыре раза - штраф начальнику филиала, больше - штраф всем сотрудникам. На следующий месяц они будут более аккуратны :)
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338358
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexxx2783Дело в том, что на самые важные таблички подобные вещи сделаны. Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами.
Если научились менять логи - твои таблички поменяют как два пальца об асфальт .

А вот инновация с конкретными полями
Идиотизм это, а не инновация...
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338367
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-о-о, какая знакомая задача!!!
Элементарно! Только не ручками надо писать эти триггеры, вот и все.
Я таким механизмом сделал систему репликации. Да простят меня сторонники
встроенной в АСА репликацией, меня она не устроила по определенным причинам.
И эта реп.система гораздо гибче встроенной.
Триггеры создаются по шаблону, из системных таблиц выуживаются все нужные
данные и генерятся триггеры. Изменения в производительности не заметил
вообще. Поскольку операция вставки, то на это времени нужен минимум, а
триггеры только и делают что вставку. Так что производительность не
страдает.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338408
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

> Не, ну для одной-двух-трех таблиц можно еще сделать вторичные таблицы
> аудита. Но не на все же таблицы базы? :)

А что удивительного? У адептов IB/FB это, кстати, достаточно
распространенная практика. Например для аудита, для репликации и т.п.
подобное решение часто практикуется и даже местами рекомендуется. Ибо
"лог транзакций нам нафиг не нужен"
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338880
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLer
О-о-о, какая знакомая задача!!!
Элементарно! Только не ручками надо писать эти триггеры, вот и все.
Я таким механизмом сделал систему репликации. Да простят меня сторонники
встроенной в АСА репликацией, меня она не устроила по определенным причинам.
И эта реп.система гораздо гибче встроенной.
Триггеры создаются по шаблону, из системных таблиц выуживаются все нужные
данные и генерятся триггеры. Изменения в производительности не заметил
вообще. Поскольку операция вставки, то на это времени нужен минимум, а
триггеры только и делают что вставку. Так что производительность не
страдает.
Зачем Вам тогда платная ASA. Взяли бы бесплатный FB, там тоже "легко" можно репликацию сделать. По сабжу - Вы наверное не в курсе, что у ASA еще одна репликация есть - MobiLink, которая именно то, что Вы описали и делает, причем делает качественно и надежно и с возможностью расширения функциональности через C#/Java и поддержки протокола передачи собственных сообщений через механизмы репликации . Так что остается только удивлятся, зачем было делать свой велосипед, обе репликации ASA абсолютно покрывают все потребности, я еще не видел задач, которым бы они не соответствовали.
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338979
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSТак что остается только удивлятся, зачем было делать свой велосипед, обе репликации ASA абсолютно покрывают все потребности, я еще не видел задач, которым бы они не соответствовали.
Когда репликация внедряется на существующие и абсолютно разные базы. Разные таблицы, разные поля, разная логическая нагрузка! А триггеры созданные по шаблону можно подправить, и сделать там предварительную обработку данных, типа агрегации, преобразовании типов и т.п.

Или, например, одна БД должна учавстовать одновременно в нескольких реп. системах, по разным каналам связи. Внутренняя по сетевому диску, внешняя по фтп. Предлагаете гнать внутренние реплики через фтп?!

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

А если еще и учесть опыт эксплуатации DBRemote, могу сказать, что в моем конкретном случае и конкретной организации проще поддерживать велосипед родной, чем сторонний.

P.S.: Так и знал, что люди не поймут.))
P.P.S.: А встроенная в АСА репликация у нас тоже используется, при чем одновременно с самописной.
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33338997
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однозначно не поймут - самопальные велосипеды это всегда зло, даже если оно и когда то оправдано
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33339085
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLer пишет:

> Или, например, одна БД должна учавстовать одновременно в нескольких реп.
> системах, по разным каналам связи. Внутренняя по сетевому диску, внешняя
> по фтп. Предлагаете гнать внутренние реплики через фтп?!

А чем плохо гнать внутренние реплики по FTP? Я именно так и делаю.
Получается единообразие. Кроме того SQL Remote позволяет использовать
разные транспорты для разных подписчиков.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33339157
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже оффтопик пошел
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33339209
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexxx2783 Уже оффтопик пошел
В принципе нет - идет обсуждение различных видов велосипедов. Но в принципе согласен - если есть желание пообсуждать достоинства и недостатки ASA репликации, то стоит завести новый топик.
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33340570
Alexxx2783
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLer
О-о-о, какая знакомая задача!!!
Элементарно! Только не ручками надо писать эти триггеры, вот и все.
Триггеры создаются по шаблону, из системных таблиц выуживаются все нужные данные и генерятся триггеры.


Напиши поподробнее как это сделать, а лучше скинь кусок кода, буду премного благодарен
...
Рейтинг: 0 / 0
Вопрос по администрированию
    #33341848
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок кода - это слишком дорого)))
Вот , здесь подход такой же.
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вопрос по администрированию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]