Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Вопрос по Sybase Anywrhere 7.0 Хотелось бы сделать такую вещь: завести бы табличку с полями: Дата, операция(insert, update, delete), старое значение, новое значение, юзер причем хотелось бы чтобы эта табличка заполнялась автоматически PS на каждую таблицу вешать триггер неохота или если уж придется, чтоб он был для всех таблиц похожий ( у меня в базе 300 таблиц) заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:35 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
База данных ASA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:36 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Не понятна суть вопроса - Вы хотите чтобы это за Вас сделали или есть какие то сложности создать табличку и триггерами в нее писать ? (я уж скромно молчу, зачем такое понадобилось). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:37 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
может вам просто стоит посмотреть лог? представляю себе потом размер этой таблички ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:38 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Табличку создать несложно, сложно написать процедуру ее заполнения. 300 триггеров писать совсем неохота ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:40 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
правильно ли я понял, что нужно сделать табличку, которая подобным образом будет отслеживать изменения в любом поле любой из 300 таблиц?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:41 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Лог неудобно просматривать, он доступен другим пользователям (они его могут изменить) да и табличку просматривать удобнее. А размер как раз будет не очень большой - я же буду скидовать только те поля, которые реально меняются. Т.е. главная цель UPDATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:42 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот - Да, правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:43 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
В табличке будут еще 2 поля - Имя измененной таблицы и измененное поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 16:44 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Я бы рекомендовал подходить к таким вопросам с точки зрения постановки и целесообразности функциональности. Клиент может желать все, даже не имея представления, зачем ему это нужно. "Шоб было круто" - обычная практика обоснования таких вещей. У меня одного друга "обязали" сделать такое же, он затратил уйму сил и времени на это, оказалось, что во первых может раз в год этим кто и воспользуется, во вторых смотрели только кто последний изменил запись - оно и понятно, обычно людей интересует какая сволочь изменила цифру и теперь не сходятся отчеты и им не особо интересно копаться и смотреть, что было до этого раньше. Для таких случаев полей с DEFAULT на CURRENT USER, LAST USER, CURRENT TIMESTAMP и TIMESTAMP как раз хватает вполне достаточно. Другое дело, когда версионность записей необходимо хранить для проведения сторнирующих расчетов, где могут вестись пересчеты задними числами и необходимо на указанный момент времени учитывать в расчетах информацию, актуальную именно на сторнируемый период. Однако таких данных в системе не так много и обычно к таким таблицам реализуют дополнительные таблицы, в которых хранятся старые версии изменившихся полей, для которых важна версионность. Что конкретно по Вашему решению из критики: 1. Реально придется вложиться на трудозатраты написания триггеров, код которых будет не слабым (все поля логировать позаписно) 2. Система тут же просядет - каждая операция изменения только одной записи будет плодить в такую табличку кол-во записей, равное кол-ву логируемых полей. Увеличиться нагрузка на лог, появятся лишние блокировки на эту таблицу, которые будут мешаться при одновременной записи множества сессий, начнет стремительно расти размер БД и прочие радости жизни. 3. Толку от такой таблички - как от козла молока. Вряд ли будет удобно пользователям смотреть изменения по полю, они захотят увидеть одной записью изменения документа (всех полей записи), запросик на получение этого тоже не будет отличаться легкостью реализации и скоростью выполнения. Из всех пунктов вытекает вопрос - для чего нужен подобный изврат ? Пользователи просто хотят себя чувствовать себя богами и видеть кто что и когда менял или же предполагается какая то аналитика (не представляю правда, что с этого можно проанализировать, разве что кто больше работает с теми или иными документами) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 17:10 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
если не секрет, с какой скоростью растет база? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 17:13 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Alexxx2783Лог неудобно просматривать, он доступен другим пользователям (они его могут изменить) да и табличку просматривать удобнее. Это какой такой пользователь может изменить лог??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 18:00 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
к вопросу о хранении истории изменений недавно занимался этим вопросом и руководство удовлетворил вариант с утверждением изменений: хранится не вся история, а утвержденная копия записи в самой таблице. При изменении записи, если запись утверждена, триггер делает копию записи в этой же таблице. Пользователь, наделенный правами утверждать изменения, видит измененные записи, может открыть утвержденный оригинал и может или принять или отменить изменения. При отмене изменений, новая запись удаляется, в изменной записи данные восстанавливаются из оригинала - копии записи. И при утверждении и при отмене изменений оригинал удаляется. в таком подходе есть и плюсы и минусы, также как и в любом другом (триггеры писать все равно придется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 18:06 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Не, ну для одной-двух-трех таблиц можно еще сделать вторичные таблицы аудита. Но не на все же таблицы базы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 18:09 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Дело в том, что на самые важные таблички подобные вещи сделаны. Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами. Всю запись мы уже пробовали резервировать - результаты действительно получились страшными - база распухла с 300 до 450 гектаров. А вот инновация с конкретными полями вроде бы имеет место, тем более что это на одном из отделов уже сделано, но как перенести на всех.... Друг мне написал процедурку, которая копирует в спец. табличку имя участка и время при неудачной репликации - он нашел такое св-во у сайбэйса и все происходит автоматом. Неудели нет глобального св-ва UPDATE для всей базы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 18:27 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Alexxx2783Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами. фигней вы пытаетесь заниматься.... фигней. Единственное что юзер может сделать с логом - убить его. Но это решается методом запуска сервера БД в качестве сервиса и запретом юзерам даже заходить в каталоги где база лежит. Все общение с сервером БД только по сети. Если вы делаете распределенную базу, то и репликация уже либо есть либо начинаете заводить, так? Ну вот и сканируй лог своей консолидированой базы переодически. В конце концов, к особо злостным рушителям базы можно и административные меры применять :) База падала три раза в месяц - премии не будет. Четыре раза - штраф начальнику филиала, больше - штраф всем сотрудникам. На следующий месяц они будут более аккуратны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 19:59 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Alexxx2783Дело в том, что на самые важные таблички подобные вещи сделаны. Но база стала распределенной, и на местах уже творят что хотят, в том числе и с логами. Если научились менять логи - твои таблички поменяют как два пальца об асфальт . А вот инновация с конкретными полями Идиотизм это, а не инновация... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 20:38 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
О-о-о, какая знакомая задача!!! Элементарно! Только не ручками надо писать эти триггеры, вот и все. Я таким механизмом сделал систему репликации. Да простят меня сторонники встроенной в АСА репликацией, меня она не устроила по определенным причинам. И эта реп.система гораздо гибче встроенной. Триггеры создаются по шаблону, из системных таблиц выуживаются все нужные данные и генерятся триггеры. Изменения в производительности не заметил вообще. Поскольку операция вставки, то на это времени нужен минимум, а триггеры только и делают что вставку. Так что производительность не страдает. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 20:50 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > Не, ну для одной-двух-трех таблиц можно еще сделать вторичные таблицы > аудита. Но не на все же таблицы базы? :) А что удивительного? У адептов IB/FB это, кстати, достаточно распространенная практика. Например для аудита, для репликации и т.п. подобное решение часто практикуется и даже местами рекомендуется. Ибо "лог транзакций нам нафиг не нужен" Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 22:21 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
iLLer О-о-о, какая знакомая задача!!! Элементарно! Только не ручками надо писать эти триггеры, вот и все. Я таким механизмом сделал систему репликации. Да простят меня сторонники встроенной в АСА репликацией, меня она не устроила по определенным причинам. И эта реп.система гораздо гибче встроенной. Триггеры создаются по шаблону, из системных таблиц выуживаются все нужные данные и генерятся триггеры. Изменения в производительности не заметил вообще. Поскольку операция вставки, то на это времени нужен минимум, а триггеры только и делают что вставку. Так что производительность не страдает. Зачем Вам тогда платная ASA. Взяли бы бесплатный FB, там тоже "легко" можно репликацию сделать. По сабжу - Вы наверное не в курсе, что у ASA еще одна репликация есть - MobiLink, которая именно то, что Вы описали и делает, причем делает качественно и надежно и с возможностью расширения функциональности через C#/Java и поддержки протокола передачи собственных сообщений через механизмы репликации . Так что остается только удивлятся, зачем было делать свой велосипед, обе репликации ASA абсолютно покрывают все потребности, я еще не видел задач, которым бы они не соответствовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2005, 18:59 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
ASCRUSТак что остается только удивлятся, зачем было делать свой велосипед, обе репликации ASA абсолютно покрывают все потребности, я еще не видел задач, которым бы они не соответствовали. Когда репликация внедряется на существующие и абсолютно разные базы. Разные таблицы, разные поля, разная логическая нагрузка! А триггеры созданные по шаблону можно подправить, и сделать там предварительную обработку данных, типа агрегации, преобразовании типов и т.п. Или, например, одна БД должна учавстовать одновременно в нескольких реп. системах, по разным каналам связи. Внутренняя по сетевому диску, внешняя по фтп. Предлагаете гнать внутренние реплики через фтп?! А настроить такую реп.систему, в которой не было бы консолидированного пользователя и центральной базы можно? В моем случае я могу сделать систему похожую на сеть, где все узлы равноценны, и каждый участник обменивается с тем с кем надо, без лишних перевалочных пунктов. А если еще и учесть опыт эксплуатации DBRemote, могу сказать, что в моем конкретном случае и конкретной организации проще поддерживать велосипед родной, чем сторонний. P.S.: Так и знал, что люди не поймут.)) P.P.S.: А встроенная в АСА репликация у нас тоже используется, при чем одновременно с самописной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2005, 23:27 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Однозначно не поймут - самопальные велосипеды это всегда зло, даже если оно и когда то оправдано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2005, 00:52 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
iLLer пишет: > Или, например, одна БД должна учавстовать одновременно в нескольких реп. > системах, по разным каналам связи. Внутренняя по сетевому диску, внешняя > по фтп. Предлагаете гнать внутренние реплики через фтп?! А чем плохо гнать внутренние реплики по FTP? Я именно так и делаю. Получается единообразие. Кроме того SQL Remote позволяет использовать разные транспорты для разных подписчиков. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2005, 14:02 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Уже оффтопик пошел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2005, 18:23 |
|
||
|
Вопрос по администрированию
|
|||
|---|---|---|---|
|
#18+
Alexxx2783 Уже оффтопик пошел В принципе нет - идет обсуждение различных видов велосипедов. Но в принципе согласен - если есть желание пообсуждать достоинства и недостатки ASA репликации, то стоит завести новый топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2005, 21:02 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33338880&tid=2013302]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 434ms |

| 0 / 0 |
