|
|
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
Я правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций? Думаю повесить лок в "on transaction start" и ждать завершения других транзакций в течение непродолжительного времени (мониторя mon$transactions). И в случае успеха буду менять метаданные как хочу. А потом отпущу лок, и все продолжат свою работу :) Такое сработает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:35:05 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeДумаю повесить лок в "on transaction start"Как насчет isql -nod трататата, которую ( теоретически !) может кто-то из твоих коллег по цеху ввести ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:39:10 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeЯ правильно предполагаю неправильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:39:16 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeЯ правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций? Меняется, но эффект проявляется только для "новых", начатых после этого момента транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:42:05 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitrNickDeeЯ правильно предполагаю неправильно Какие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:49:05 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeКакие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные?Не делай этого, мы уже сделали пару раз (индекс, что ли создавали или дропали - не помню уже). Было больно и плохо. Отрубай всех. Если система поддерживает оповещение юзеров - предупреди за 10 минут и отрубай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:51:06 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDee, во-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:51:55 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
ну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:53:00 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitrво-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью? Я продумываю как бы мне перенести среднее звено трёхзвенки в UDR, чтобы клиенты цеплялись не к серверу приложений, а напрямую к Firebird. Вроде почти всё продумал (главное - RPC и обновление серверных dll с клиента), а вот как быть с изменением метаданных - непонятно. В трёхзвенке я просто отцепляю весь пул коннектов, держа пользователей на локе. И нет проблем. А вот тут что-то не могу сообразить. Исходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :) Изменения самые разные - почти весь DDL, включая дропание. Продумываю и для классика и для супера. Под безопасностью понимается, что ничего не поломается в других коннектах. Ну и иногда DDL не срабатывают в одной транзакции, и приходится дробить. Т.е. хочется уверенности что в тонкий процесс применения DDL никто не вмешивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:25:45 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitrну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы Может я неверно выразился... я бы поставил транзакции на ожидание в очередь (секунд на несколько), и самое интуитивно-подходящее для этого место - триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:34:37 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeИсходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :) метаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции. NickDeeИзменения самые разные - почти весь DDL, включая дропание. о дропании таблиц при подключенных юзерах можешь забыть NickDeeПродумываю и для классика и для супера. там есть отличия в поведении. Без переподключения всех юзеров в классике ты (в ряде случаев) не заставишь их увидеть измененные метаданные. NickDeeПод безопасностью понимается, что ничего не поломается в других коннектах. гарантией является только шатдаун базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:36:51 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeИзменения самые разные - почти весь DDL, включая дропание. Продумываю и для классика и для супера. Под безопасностью понимается, что ничего не поломается в других коннектах. Забей, делай изменения на ходу. В других коннектах ничего не поломается. А если изменения обломаются с ошибкой "Object in use", значит ты решил изменить что-то нужное и лучше тебе пойти и передумать его изменять. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:39:26 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitr> гарантией является только шатдаун базы Да ладно уж так сурово-то. Лично я делал галочку "всем выйти вон из БД", менял метаданные, а потом снимал галочку. И никаких проблем, всё работало. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:55:22 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitrметаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции. Ok. Тогда остаётся только грохать коннекты. А на клиенте писать код для переконнекта. И придётся научиться ставить входящие коннекты в очередь. Это ведь можно сделать в "on connect"-триггере? Или там уже поздно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 20:59:55 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, полной гарантией является не только отключение всех коннектов, но и предотвращение новых. Галочка не защитит от isql-я или gbak-а, которые в этот же момент были запущены кроном. Сетевой сервер гасить слишком сурово, да и не защитит от embedded-коннектов. Шатдаун во всех смыслах правильнее. Мое дело предложить - ваше дело отказаться :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:00:08 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЛично я делал галочку "всем выйти вон из БД", менял метаданные, а потом снимал галочку. И никаких проблем, всё работало. Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:10:18 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :) А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как раз сейчас пользуется... Экий ты... двуличный. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:14:30 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)Если это происходит 1 раз в день (но не каждый день), то потерпят. Если чаще, то... а может, есть смысл сначала проработать всю схему, а затем накатывать ? Чего она у тебя такая... "мутирующая" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:18:12 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeГаджимурадов РустамЛично я делал галочку "всем выйти вон из БД", менял метаданные, а потом снимал галочку. И никаких проблем, всё работало. Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :) А я плавающее полупрозрачное окошко у клиентов вешал. Что-то вроде: "Пожалуйста, завершите работу. До автоматического завершения осталось ... секунд." И разными цветами переливается. Пользователям нравится. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:19:34 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitr> Галочка не защитит от isql-я или gbak-а, dimitr> которые в этот же момент были запущены кроном Во-первых, момент нужно подходящие выбирать. Крон посреди дня лично меня бы удивил. Во-вторых, ну запустятся, ну вылетит ошибка - ничего страшного в этом не вижу. > Мое дело предложить - ваше дело отказаться :-) Я ж не про это. Я про то, как малой кровью. :) Вон человек выше независимо от меня к этому же пришёл, да ещё переливающееся окошко нарисовал, чтобы юезрам стресс снимать - значится, мысль дельная. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:34:05 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
kgb ussr> А я плавающее полупрозрачное окошко у клиентов вешал. kgb ussr> И разными цветами переливается. Пользователям нравится. :) Спасибо за идею. :) Не забудь в топике интерфейсов скриншот засветить. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:35:02 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :) А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как раз сейчас пользуется... Экий ты... двуличный. Дак я делаю это прозрачно для пользователей. Могу таблицу переименовать - пользователь даже не заметит (если алиас останется тем же) :) Конечно дроп полей он ощутит. Переоткроет окошко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:48:20 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
NickDeeДак я делаю это прозрачно для пользователей. В таком случае одно из двух: или никакие активные транзакции и коннекты тебе вообще не должны мешать изменять метаданные, или... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:56:23 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
dimitrШатдаун во всех смыслах правильнее. Надо попросить чтобы в IBExpert исправили ошибку при манипуляции с метаданными :) Все пишут как им удобнее, блин :) Без всякого уважения к тому, как задумано Джимом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:56:49 |
|
||
|
Изменение метаданных при работающих пользователях
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov> или... Или придумывание проблемы там, где её нет, как обычно. NickDee> Надо попросить чтобы в IBExpert исправили NickDee> ошибку при манипуляции с метаданными :) Ась? Ошибку в Windows, отображающую сообщение, не надо исправить, нет? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 22:00:37 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38552553&tid=1563909]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
81ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 418ms |

| 0 / 0 |
