Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

Активные подключения   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.041 c
3-1090828255
serg128
2004-07-26 11:50
2004.08.22
Как в ф-ции format задать разделители тысяч?


4-1089310683
my_name
2004-07-08 22:18
2004.08.22
Форму на панель задач


14-1091785039
Cerberus
2004-08-06 13:37
2004.08.22
Текстовые фаилы


14-1091619964
Гость
2004-08-04 15:46
2004.08.22
Загрузка XML на SQL Server с помощью Delphi 7


1-1091805745
ghg
2004-08-06 19:22
2004.08.22
размер стека





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский