![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Активные подключения [D6, FireBird 1.5]
Koala © (2004-07-30 17:55:00)Как програмно узнать подключены ли пользователи к базе и если да отключить всех... Использую компоненты FIBPlus
stud (2004-08-02 10:06:00) [1]бекап можно делать в любое время нетрогая пользователей, а восстановление - при необходимости или по расписанию когда никто не работает.
> VID © (31.07.04 19:49) [15]
этого вполне достаточно для резервирования
VID (2004-08-02 00:03:00) [2]Да.. действительно... пардон, не подумал.
DrPass (2004-08-01 15:43:00) [3]Если после бекапа эти самые неотключенные пользователи внесут какие-либо изменения в базу, они вряд ли обрадуются такому восстановлению
VID (2004-08-01 14:39:00) [4]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 "БД забэкапилась"
ну а нафиг тогда насильно было отключать всех пользователей ?
Ведь можно это было делать уже перед восстановлением.
DSKalugin (2004-07-31 19:56:00) [5]перед резервированием не надо, конечно.
надо перед восстановлением
VID (2004-07-31 19:49:00) [6]1. Зачем отключать всех пользователей перед резервированием ?
2. Не лучше ли запустить gbak пусть через тот же батник, и всё будет культурно.
DSKalugin (2004-07-31 19:41:00) [7]10 это задержка в секундах, хотя в параметрах ничего не сказано
насчет успели выйти тут речи нет. Поскольку я предложил стартовать это в полночь. Все в это время будут спать уже или порнухусмотреть в нете, но ни как не с программой работать диспетчеры или кто там... они и сообщение это могут не увидеть
возможно, тут еще придется с сообщениями (EVENT) поработать, чтобы уж совсем красиво и идеально было
sniknik (2004-07-31 19:11:00) [8]> сделать 2 cmd и запускать с разницей в 20 минут ...
ну я бы так и сделал, но только сначала бы почитал про параметры этой утилиты, или потестил (может 10 это действительно оно, и ничего дополнительно делать не нужно).
Koala (2004-07-31 19:02:00) [9]
> DSKalugin © (31.07.04 18:50) [9]
спасибо
> sniknik © (31.07.04 18:52) [10]
> только нехорошо это, сюда бы еще какую никаую задержку предусмотреть,
> чтобы сами успели выйти, а то может у них там работа за
> день несохраненная.
сделать 2 cmd и запускать с разницей в 20 минут например первый с командой (net send * "анука быренько отключитесь!!!")
а второй с полным бакапом, или я не прав???? :о)
sniknik (2004-07-31 18:55:00) [10]или 10 это и есть параметр отключить через 10 мин?
sniknik (2004-07-31 18:52:00) [11]только нехорошо это, сюда бы еще какую никаую задержку предусмотреть, чтобы сами успели выйти, а то может у них там работа за день несохраненная.
DSKalugin (2004-07-31 18:50:00) [12]это и есть отрубание силой
"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
Koala (2004-07-31 18:44:00) [13]
> DSKalugin © (31.07.04 18:05) [7]
> ДАРЮ :-))
> file backup.cmd
> поставь в планировщик как задание на 23:50.
> Надеюсь на работе в это время уже никого не будет :-))
Диспетчера круглосуточно работают, поэтому и необходимо отрубить силой, а то уснут, а прога подключеной к базе осталась...
DSKalugin (2004-07-31 18:05:00) [14]ДАРЮ :-))
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 сервера
Desdechado (2004-07-31 17:06:00) [15]При Backup стартует самая обычная транзакция, которая не требует монопольного подключения к БД. И пользователей выгонять не надо.
Domkrat (2004-07-31 13:23:00) [16]Для выполнения backup базы Firebird в файл your_own_database.gbk (а я так понял, что речь идет именно о Firebird) совсем не обязательно быть единственным активным пользователем. Так что вопрос нужно писАть сразу целиком.
А вот если ты захочешь сделать backup/restore - тогда другой разговор.
Можно как самый крайний вариант забрать на момент backup/restore права у всех пользователей (либо у роли пользователей), но это способ для самоубийц, пробовать сам не хочу.
Domkrat (2004-07-31 13:13:00) [17]Недавно обдумывал подобный вариант. Есть такая мысль.
1. Одна машина генерирует ALERT EVENT для БД. Используй компоненту TSIBfibEventAlerter
2. Приложения, запущенные на других машинах должны уметь отловить этот EVENT и должно уметь на него правитьно отреагировать
3. Количество и смысл алертов может варьироваться от фантазии автора
4. Естественно, что процедура отлавливания событий должна быть встроена в программы, работающие с этой БД. Если вываливать пользователей втупую (типа "остановить сервис или сделать базе Shutdown"), могут быть проблемы с БД
Koala (2004-07-31 13:09:00) [18]для архивации базы, если подключены пользователи то отключить и сделать backup базе....
Koala (2004-07-31 13:09:00) [19]для архивации базы, если подключены пользователи то отключить и сделать backup базе....
DSKalugin (2004-07-30 20:08:00) [20]а зачем такое вообще делать???? В чем собсно такая необходимость?
может эту задачу можно будет решить более цивилизованными путями?
К примеру остановить сервис или сделать базе Shutdown, смотря какие цели. Так какие цели?