Текущий архив: 2004.08.22;
Скачать: CL | DM;
Вниз
Активные подключения Найти похожие ветки
← →
Koala (2004-07-30 17:55) [0]Как програмно узнать подключены ли пользователи к базе и если да отключить всех... Использую компоненты FIBPlus
← →
DSKalugin © (2004-07-30 20:08) [1]а зачем такое вообще делать???? В чем собсно такая необходимость?
может эту задачу можно будет решить более цивилизованными путями?
К примеру остановить сервис или сделать базе Shutdown, смотря какие цели. Так какие цели?
← →
Koala (2004-07-31 13:09) [2]для архивации базы, если подключены пользователи то отключить и сделать backup базе....
← →
Koala (2004-07-31 13:09) [3]для архивации базы, если подключены пользователи то отключить и сделать backup базе....
← →
Domkrat © (2004-07-31 13:13) [4]Недавно обдумывал подобный вариант. Есть такая мысль.
1. Одна машина генерирует ALERT EVENT для БД. Используй компоненту TSIBfibEventAlerter
2. Приложения, запущенные на других машинах должны уметь отловить этот EVENT и должно уметь на него правитьно отреагировать
3. Количество и смысл алертов может варьироваться от фантазии автора
4. Естественно, что процедура отлавливания событий должна быть встроена в программы, работающие с этой БД. Если вываливать пользователей втупую (типа "остановить сервис или сделать базе Shutdown"), могут быть проблемы с БД
← →
Domkrat © (2004-07-31 13:23) [5]Для выполнения backup базы Firebird в файл your_own_database.gbk (а я так понял, что речь идет именно о Firebird) совсем не обязательно быть единственным активным пользователем. Так что вопрос нужно писАть сразу целиком.
А вот если ты захочешь сделать backup/restore - тогда другой разговор.
Можно как самый крайний вариант забрать на момент backup/restore права у всех пользователей (либо у роли пользователей), но это способ для самоубийц, пробовать сам не хочу.
← →
Desdechado © (2004-07-31 17:06) [6]При Backup стартует самая обычная транзакция, которая не требует монопольного подключения к БД. И пользователей выгонять не надо.
← →
DSKalugin © (2004-07-31 18:05) [7]ДАРЮ :-))
file backup.cmd
поставь в планировщик как задание на 23:50.
Надеюсь на работе в это время уже никого не будет :-))
net send * "анука быренько отключитесь!!!"
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -shut -force 10 C:\ShopDB\U96.GDB -user "SYSDBA" -password "masterkey"
net stop "Firebird Server - DefaultInstance"
del E:\Builder\copy_U96.GDB
copy C:\ShopDB\U96.GDB E:\Builder\copy_U96.GDB
net send admin "БД скопирована"
net start "Firebird Server - DefaultInstance"
net start "Firebird Guardian - DefaultInstance"
"C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe" -B -L -T -user "SYSDBA" -password "masterkey" C:\ShopDB\U96.GDB E:\Builder\backup_U96.GBK
net send admin "БД забэкапилась"
нижеследующую часть (восстановление) можно опустить
"C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe" -R -P 4096 -user "SYSDBA" -password "masterkey" E:\Builder\backup_U96.GBK C:\ShopDB\U96.GDB
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -online C:\ShopDB\U96.GDB -user "SYSDBA" -password "masterkey"
net send admin "restore - ok"
а далее можно запустить команду на shutdown сервера
← →
Koala (2004-07-31 18:44) [8]
> DSKalugin © (31.07.04 18:05) [7]
> ДАРЮ :-))
> file backup.cmd
> поставь в планировщик как задание на 23:50.
> Надеюсь на работе в это время уже никого не будет :-))
Диспетчера круглосуточно работают, поэтому и необходимо отрубить силой, а то уснут, а прога подключеной к базе осталась...
← →
DSKalugin © (2004-07-31 18:50) [9]это и есть отрубание силой
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -shut -force 10 C:\ShopDB\U96.GDB -user "SYSDBA" -password "masterkey"
net stop "Firebird Server - DefaultInstance"
Последняя строчка останавливает Firebird SQL Server
← →
sniknik © (2004-07-31 18:52) [10]только нехорошо это, сюда бы еще какую никаую задержку предусмотреть, чтобы сами успели выйти, а то может у них там работа за день несохраненная.
← →
sniknik © (2004-07-31 18:55) [11]или 10 это и есть параметр отключить через 10 мин?
← →
Koala (2004-07-31 19:02) [12]
> DSKalugin © (31.07.04 18:50) [9]
спасибо
> sniknik © (31.07.04 18:52) [10]
> только нехорошо это, сюда бы еще какую никаую задержку предусмотреть,
> чтобы сами успели выйти, а то может у них там работа за
> день несохраненная.
сделать 2 cmd и запускать с разницей в 20 минут например первый с командой (net send * "анука быренько отключитесь!!!")
а второй с полным бакапом, или я не прав???? :о)
← →
sniknik © (2004-07-31 19:11) [13]> сделать 2 cmd и запускать с разницей в 20 минут ...
ну я бы так и сделал, но только сначала бы почитал про параметры этой утилиты, или потестил (может 10 это действительно оно, и ничего дополнительно делать не нужно).
← →
DSKalugin © (2004-07-31 19:41) [14]10 это задержка в секундах, хотя в параметрах ничего не сказано
насчет успели выйти тут речи нет. Поскольку я предложил стартовать это в полночь. Все в это время будут спать уже или порнухусмотреть в нете, но ни как не с программой работать диспетчеры или кто там... они и сообщение это могут не увидеть
возможно, тут еще придется с сообщениями (EVENT) поработать, чтобы уж совсем красиво и идеально было
← →
VID © (2004-07-31 19:49) [15]1. Зачем отключать всех пользователей перед резервированием ?
2. Не лучше ли запустить gbak пусть через тот же батник, и всё будет культурно.
← →
DSKalugin © (2004-07-31 19:56) [16]перед резервированием не надо, конечно.
надо перед восстановлением
← →
VID © (2004-08-01 14:39) [17]DSKalugin © (31.07.04 18:05) [7]
net send * "анука быренько отключитесь!!!"
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -shut -force 10 C:\ShopDB\U96.GDB -user "SYSDBA" -password "masterkey"
net stop "Firebird Server - DefaultInstance"
del E:\Builder\copy_U96.GDB
copy C:\ShopDB\U96.GDB E:\Builder\copy_U96.GDB
net send admin "БД скопирована"
net start "Firebird Server - DefaultInstance"
net start "Firebird Guardian - DefaultInstance"
"C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe" -B -L -T -user "SYSDBA" -password "masterkey" C:\ShopDB\U96.GDB E:\Builder\backup_U96.GBK
net send admin "БД забэкапилась"
ну а нафиг тогда насильно было отключать всех пользователей ?
Ведь можно это было делать уже перед восстановлением.
← →
DrPass © (2004-08-01 15:43) [18]Если после бекапа эти самые неотключенные пользователи внесут какие-либо изменения в базу, они вряд ли обрадуются такому восстановлению
← →
VID © (2004-08-02 00:03) [19]Да.. действительно... пардон, не подумал.
← →
stud (2004-08-02 10:06) [20]бекап можно делать в любое время нетрогая пользователей, а восстановление - при необходимости или по расписанию когда никто не работает.
> VID © (31.07.04 19:49) [15]
этого вполне достаточно для резервирования
Страницы: 1 вся ветка
Текущий архив: 2004.08.22;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.023 c