|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Подскажите как правильно с помощью компонента FIBPlus делать Backup/Restor. Точнее Backup у меня уже получилось сделать, но когда я в IBExpert открыл таблицу на редактирование и параллельно открыл приложение чтобы сделать Backup - программа сделала Backup и даже ничего не сказала что есть активные подключения. Отсюда вытекает вопрос: Как программно проверить есть ли активные соединения с БД, и если их нет (конечно кроме моего одного) - только тогда делать Backup. Насколько небезопасен может быть такой метод создания резервной копии. Это нужно т.к. уровень пользователя который будет пользоваться программой, мягко говоря, ниже плинтуса. Поэтому научить их делать полноценный Backup/Restor - это проблема. Даже просьба выйти из программы на всех клиентах для создания резервной копии может просто проигнорироваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2016, 23:25 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Как программно перевести БД в монопольный режим, и после Backup/Restor вернуть назад нормальный режим ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2016, 23:26 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrushНасколько небезопасен может быть такой метод создания резервной копии. Нинасколько. Это совершенно штатный способ. Для бэкапа не требуется монопольное подключение. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 00:01 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrush, бэкап - это вычитка и переливка данных в файл бэкапа в транзакции snapshot. Таких приложений можно одновременно стартовать хоть миллион. http://www.ibase.ru/gbak/ ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 01:31 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Есть в "плюсах" компонент работы с сервисами. Через него и шатдаун базе делать можно, и в онлайн её переводить. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 08:22 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Для начала автору надо понять что такое транзакция snapshot и как она работает. p.s. года два ходил на курсы по MS SQL, подобные вопросы ("мы делаем бэкап, данные которые мы вносим в базу в него попадут?") были в топе. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:12 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Gallemar, Из комментария kdv я понял что для бэкапа стартует транзакция и все изменения которые вносятся во время бэкапа - можно сказать мусор, если придется делать рестор. Но вопрос остался на повестке дня: как узнать что к базе никто не подключен, кроме меня. Думаю сделать проверку, и если пользователи подключены - выдавать сообщение пока не выйдут и не делать бэкап. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:33 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
А какой смысл так заботиться о данных, внесенных во время бекапа? Чем они более ценны, чем те, что будет внесены через секунду после команды - "можно работать"? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:43 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Для каких целей создаётся бэкап? Какой смысл для текущего бэкапа выгонять всех, если равно после завершения бэкапа пользователи начнут работу и нальют новых данных, которых не будет в только что сформированном бэкапе? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:44 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrush, что за бред? Мусор это никому не нужные версии. Мусор никогда и не при каких условиях не попадёт в файл бекапа который делается с помощью gbak. И кстати это не единственный вариант бекапа. akrushПоэтому научить их делать полноценный Backup/Restor - это проблема. backup ты можешь делать и без их ведома. restore пользователю в общем случае не нужен, только когда есть проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:44 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrushНо вопрос остался на повестке дня: как узнать что к базе никто не подключен, кроме меня. Думаю сделать проверку, и если пользователи подключены - выдавать сообщение пока не выйдут и не делать бэкап. Вообще подключения ты увидишь в таблице mon$attachments, проверку ты можешь сделать триггером на коннект, но зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 10:57 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrush я понял что для бэкапа стартует транзакция и все изменения которые вносятся во время бэкапа - можно сказать мусор, если придется делать рестор. SNAPSHOT (константа concurrency) – уровень изоляции, эквивалентный Repeatable Read. На самом деле этот уровень изоляции ближе к "изолированность образа", т. к. не допускает фантомов. Все операции в транзакции с данным уровнем изоляции видят только те данные, которые существовали (committed) на момент старта этой транзакции (даже если они впоследствии были изменены или удалены другими транзакциями). По умолчанию в IB/FB API. Скопипащено с http://ibase.ru/ibtrans/ ,заходи и читай. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:03 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
И ещё вот - http://ibase.ru/mga/ - читай про многоверсионность. Так отпадет вопрос "а как делать бэкап с подключенными пользователями". ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:07 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
Симонов Денис, Я не имел ввиду что в бэкап попадет мусор. Я имел ввиду что данные которые вводятся во время бэкапа, если вдруг понадобится сразу сделать рестор - будут по сути мусором, т.к. пропадут. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:07 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
В чем суть вопроса или самой программы. Разрабатывается программа для расчета субсидии на жилищно-коммунальные услуги (Украина). Точнее пишется по Винду. Когда поднимаются тарифы или еще что-то и нужно сделать массовый перерасчет - нужно сделать бэкап, запустить перерасчет. Во время перерасчета никто ничего не вводит т.к. после перерасчета выборочно нужно проверить правильность расчета и ЕСЛИ расчет НЕПРАВИЛЬНЫЙ - сделать рестор для отката изменений. Это первый вариант, так сейчас делаем в ДОС программе по субсидии. Второй вариант - я читал здесь на форуме что можно стартануть транзакцию, сделать все что нужно, но не подтверждать. Посмотреть ИЗМЕНЕНИЯ и если все нормально - подтвердить, если ошибка - откатить. Это был, точнее будет, мой следующий вопрос. Не хочу засорять ветку обсуждения Backup/Restor, но если ткнете носом куда почитать - буду очень признателен. Понимаю что все это звучит примитивно, но я стараюсь разобраться во всем этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:13 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrushСимонов Денис, Я не имел ввиду что в бэкап попадет мусор. Я имел ввиду что данные которые вводятся во время бэкапа, если вдруг понадобится сразу сделать рестор - будут по сути мусором, т.к. пропадут. Перед бэкапом переименуй файл БД. Если не удалось - то есть коннекты. Если удалось - то после переименовки никто не сможет подключиться по старому имени т.к. оно теперь другое. Это нормально работает на винде, но под юниксами не прокатит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:13 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrush, Как все запущено... Вы пытаетесь заложить неправильную последовательность действий. Рестор нельзя рассматривать как штатный способ отката неверных расчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:17 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
fraksakrushСимонов Денис, Я не имел ввиду что в бэкап попадет мусор. Я имел ввиду что данные которые вводятся во время бэкапа, если вдруг понадобится сразу сделать рестор - будут по сути мусором, т.к. пропадут. Перед бэкапом переименуй файл БД. Если не удалось - то есть коннекты. Если удалось - то после переименовки никто не сможет подключиться по старому имени т.к. оно теперь другое. Это нормально работает на винде, но под юниксами не прокатит. Таким образом я могу переименовать, скопировать и переименовать назад и мне не нужно делать бэкап/рестор. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:18 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrushfraksпропущено... Перед бэкапом переименуй файл БД. Если не удалось - то есть коннекты. Если удалось - то после переименовки никто не сможет подключиться по старому имени т.к. оно теперь другое. Это нормально работает на винде, но под юниксами не прокатит. Таким образом я могу переименовать, скопировать и переименовать назад и мне не нужно делать бэкап/рестор. Собственно, я тоже не пойму зачем в вашей задаче (откатиться назад после неправильных расчетов) делать бэкап-рестор, тем более что это дольше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:22 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrushВо время перерасчета никто ничего не вводит т.к. после перерасчета выборочно нужно проверить правильность расчета и ЕСЛИ расчет НЕПРАВИЛЬНЫЙ - сделать рестор для отката изменений. че-то жесть какая-то. если вам надо перерасчет выполнить в монопольном режиме, для этого есть транзакции с блокированием таблиц. Но откатывать "рестором или копированием" - это какой-то запредельный способ. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:25 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
akrush, вы мыслите в терминах файл-серверных СУБД. Рестор для отката это как-то слишком жёстко. Помимо транзакций СУБД есть так называемые бизнес-транзакции. Они обычно делаются через статусы документов (на проверке, отклонён, проведён ...). Если надо делать откаты бизнес транзакций, то все изменения логируются и в случае необходимости по логу возвращаются в исходное состояние. Или даже можно сделать свою систему версий документов. А ещё для временного просмотра и последующего подтверждения можно использовать GTT. В общем вопрос скорее по проектированию БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:38 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
kdvakrushВо время перерасчета никто ничего не вводит т.к. после перерасчета выборочно нужно проверить правильность расчета и ЕСЛИ расчет НЕПРАВИЛЬНЫЙ - сделать рестор для отката изменений. че-то жесть какая-то. если вам надо перерасчет выполнить в монопольном режиме, для этого есть транзакции с блокированием таблиц. Но откатывать "рестором или копированием" - это какой-то запредельный способ. не такой уж запредельный. в свое время так и считали налоги. в субботу приходишь, оставляешь в сети только себя и сервер, делаешь резервную копию, считаешь. срослось (процесс вероятностный, 80% - успех) - оставляешь как есть, нет - по новой. в понедельник утром докладываешь консилиуму инспекторов результаты - по отмашке втыкаешь сервер в общую сеть. только было это в прошлом веке, и на фокспро. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:39 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
pastor, это что за процессы там такие, при расчете, что по одним и тем же данным может "то сойтись", и то "не сойтись"? Типа рандомного калькулятора, что-ли? И почему нельзя посмотреть, где не сошлось, исправить, и пересчитать? я все же подозреваю, что автор не в курсе транзакций, в т.ч. транзакций snapshot, в которых можно хоть до посинения пересчитывать. В конце-концов, есть же и программные механизмы, чтобы запретить менять старые данные, и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:47 |
|
FIBPus Backup/Restor
|
|||
---|---|---|---|
#18+
kdvpastor, это что за процессы там такие, при расчете, что по одним и тем же данным может "то сойтись", и то "не сойтись"? Типа рандомного калькулятора, что-ли? И почему нельзя посмотреть, где не сошлось, исправить, и пересчитать? 200 тыс налогоплательщиков, примерно столько же объектов обложения. фокспро в дос-режиме, с использованием расширенной памяти типа DOS-GW (или как его там). может тупо умереть на нехватке памяти, перестроении индексов, переполненнии количества блокировок, открытых файлов и пр. расчет делался на клиентской машине со специально заточенной win95, с highmem и пр. припарками, битвой за каждый бит. база тащилась по нетвари (коаксиалу) на эту админскую машину, после удачи - обратно в нетварь так что вопрос был не в сошлось/не сошлось (это все равно разгребать по заявлениям, платежкам и пр.), а в дошло до конца или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2016, 11:56 |
|
|
start [/forum/topic.php?fid=40&msg=39246799&tid=1562157]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 453ms |
0 / 0 |