Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях / 25 сообщений из 34, страница 1 из 2
06.02.2014, 19:35:05
    #38552435
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
Я правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций?
Думаю повесить лок в "on transaction start" и ждать завершения других транзакций в течение непродолжительного времени (мониторя mon$transactions). И в случае успеха буду менять метаданные как хочу. А потом отпущу лок, и все продолжат свою работу :)
Такое сработает?
...
Рейтинг: 0 / 0
06.02.2014, 19:39:10
    #38552442
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeДумаю повесить лок в "on transaction start"Как насчет isql -nod трататата, которую ( теоретически !) может кто-то из твоих коллег по цеху ввести ?
...
Рейтинг: 0 / 0
06.02.2014, 19:39:16
    #38552443
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeЯ правильно предполагаю
неправильно
...
Рейтинг: 0 / 0
06.02.2014, 19:42:05
    #38552448
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeЯ правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций?
Меняется, но эффект проявляется только для "новых", начатых после этого момента транзакций.
...
Рейтинг: 0 / 0
06.02.2014, 19:49:05
    #38552458
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitrNickDeeЯ правильно предполагаю
неправильно
Какие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные?
...
Рейтинг: 0 / 0
06.02.2014, 19:51:06
    #38552460
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeКакие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные?Не делай этого, мы уже сделали пару раз (индекс, что ли создавали или дропали - не помню уже). Было больно и плохо.
Отрубай всех. Если система поддерживает оповещение юзеров - предупреди за 10 минут и отрубай.
...
Рейтинг: 0 / 0
06.02.2014, 19:51:55
    #38552465
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDee,

во-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью?
...
Рейтинг: 0 / 0
06.02.2014, 19:53:00
    #38552466
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
ну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы
...
Рейтинг: 0 / 0
06.02.2014, 20:25:45
    #38552495
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitrво-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью?
Я продумываю как бы мне перенести среднее звено трёхзвенки в UDR, чтобы клиенты цеплялись не к серверу приложений, а напрямую к Firebird. Вроде почти всё продумал (главное - RPC и обновление серверных dll с клиента), а вот как быть с изменением метаданных - непонятно.
В трёхзвенке я просто отцепляю весь пул коннектов, держа пользователей на локе. И нет проблем. А вот тут что-то не могу сообразить. Исходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :)
Изменения самые разные - почти весь DDL, включая дропание. Продумываю и для классика и для супера.
Под безопасностью понимается, что ничего не поломается в других коннектах. Ну и иногда DDL не срабатывают в одной транзакции, и приходится дробить. Т.е. хочется уверенности что в тонкий процесс применения DDL никто не вмешивается.
...
Рейтинг: 0 / 0
06.02.2014, 20:34:37
    #38552498
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitrну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы
Может я неверно выразился... я бы поставил транзакции на ожидание в очередь (секунд на несколько), и самое интуитивно-подходящее для этого место - триггер.
...
Рейтинг: 0 / 0
06.02.2014, 20:36:51
    #38552501
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeИсходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :)
метаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции.

NickDeeИзменения самые разные - почти весь DDL, включая дропание.
о дропании таблиц при подключенных юзерах можешь забыть

NickDeeПродумываю и для классика и для супера.
там есть отличия в поведении. Без переподключения всех юзеров в классике ты (в ряде случаев) не заставишь их увидеть измененные метаданные.

NickDeeПод безопасностью понимается, что ничего не поломается в других коннектах.
гарантией является только шатдаун базы
...
Рейтинг: 0 / 0
06.02.2014, 20:39:26
    #38552502
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeИзменения самые разные - почти весь DDL, включая дропание. Продумываю и для
классика и для супера.
Под безопасностью понимается, что ничего не поломается в других коннектах.
Забей, делай изменения на ходу. В других коннектах ничего не поломается. А если изменения
обломаются с ошибкой "Object in use", значит ты решил изменить что-то нужное и лучше тебе
пойти и передумать его изменять.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 20:55:22
    #38552509
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitr> гарантией является только шатдаун базы

Да ладно уж так сурово-то.

Лично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 20:59:55
    #38552511
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitrметаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции.
Ok. Тогда остаётся только грохать коннекты. А на клиенте писать код для переконнекта.
И придётся научиться ставить входящие коннекты в очередь. Это ведь можно сделать в "on connect"-триггере? Или там уже поздно?
...
Рейтинг: 0 / 0
06.02.2014, 21:00:08
    #38552512
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
Гаджимурадов Рустам,

полной гарантией является не только отключение всех коннектов, но и предотвращение новых. Галочка не защитит от isql-я или gbak-а, которые в этот же момент были запущены кроном. Сетевой сервер гасить слишком сурово, да и не защитит от embedded-коннектов. Шатдаун во всех смыслах правильнее. Мое дело предложить - ваше дело отказаться :-)
...
Рейтинг: 0 / 0
06.02.2014, 21:10:18
    #38552517
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
Гаджимурадов РустамЛично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.

Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)
...
Рейтинг: 0 / 0
06.02.2014, 21:14:30
    #38552521
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается
в твою работу! :)
А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как
раз сейчас пользуется... Экий ты... двуличный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 21:18:12
    #38552524
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)Если это происходит 1 раз в день (но не каждый день), то потерпят. Если чаще, то... а может, есть смысл сначала проработать всю схему, а затем накатывать ? Чего она у тебя такая... "мутирующая" ?
...
Рейтинг: 0 / 0
06.02.2014, 21:19:34
    #38552526
kgb ussr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeГаджимурадов РустамЛично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.

Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)

А я плавающее полупрозрачное окошко у клиентов вешал. Что-то вроде: "Пожалуйста, завершите работу. До автоматического завершения осталось ... секунд."
И разными цветами переливается. Пользователям нравится. :)
...
Рейтинг: 0 / 0
06.02.2014, 21:34:05
    #38552536
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitr> Галочка не защитит от isql-я или gbak-а,
dimitr> которые в этот же момент были запущены кроном

Во-первых, момент нужно подходящие выбирать.
Крон посреди дня лично меня бы удивил.
Во-вторых, ну запустятся, ну вылетит ошибка -
ничего страшного в этом не вижу.

> Мое дело предложить - ваше дело отказаться :-)

Я ж не про это. Я про то, как малой кровью. :)
Вон человек выше независимо от меня к этому
же пришёл, да ещё переливающееся окошко
нарисовал, чтобы юезрам стресс снимать -
значится, мысль дельная.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 21:35:02
    #38552537
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
kgb ussr> А я плавающее полупрозрачное окошко у клиентов вешал.
kgb ussr> И разными цветами переливается. Пользователям нравится. :)

Спасибо за идею. :) Не забудь в топике интерфейсов скриншот засветить. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 21:48:20
    #38552548
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
Dimitry SibiryakovNickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается
в твою работу! :)
А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как
раз сейчас пользуется... Экий ты... двуличный.

Дак я делаю это прозрачно для пользователей. Могу таблицу переименовать - пользователь даже не заметит (если алиас останется тем же) :)
Конечно дроп полей он ощутит. Переоткроет окошко.
...
Рейтинг: 0 / 0
06.02.2014, 21:56:23
    #38552551
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
NickDeeДак я делаю это прозрачно для пользователей.
В таком случае одно из двух: или никакие активные транзакции и коннекты тебе вообще не
должны мешать изменять метаданные, или...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 21:56:49
    #38552553
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
dimitrШатдаун во всех смыслах правильнее.
Надо попросить чтобы в IBExpert исправили ошибку при манипуляции с метаданными :) Все пишут как им удобнее, блин :) Без всякого уважения к тому, как задумано Джимом :)
...
Рейтинг: 0 / 0
06.02.2014, 22:00:37
    #38552558
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение метаданных при работающих пользователях
Dimitry Sibiryakov> или...

Или придумывание проблемы там, где её нет, как обычно.

NickDee> Надо попросить чтобы в IBExpert исправили
NickDee> ошибку при манипуляции с метаданными :)

Ась?

Ошибку в Windows, отображающую
сообщение, не надо исправить, нет?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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