Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня, 1. событие прогресса подразумевает просто передачу текста, eсть ли возможность получить процентуальное значение? Код: pascal 1. 2. 3. 4. 5. 2. Не видно и возможности прерывать выполнение резервного копирования, есть ли возможность прервать этот процесс корректно? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 15:54 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
1. Нет, нельзя. 2. Просто пристрели сервис с помощью Detach (StopService или что там у твоих компонент способно вызвать isc_detach_service()) и молись чтобы сервер это заметил. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 16:20 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov 1. Нет, нельзя. 2. Просто пристрели сервис с помощью Detach (StopService или что там у твоих компонент способно вызвать isc_detach_service()) и молись чтобы сервер это заметил. т.е. без "молиться" никак? А как же с Delta которая может остаться? или TFDFBNBackup корректно обработает эту ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 16:29 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Никак. Нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2021, 16:42 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotun, из компонент сервером "управлять" можно только через services api. Это кидание разных команд на сервер. Команду кинул - сервер начинает выполнять. Команды обычно "непрерываемые". Например, если запустить nbackup и грохнуть его, то база автоматически не разблокируется и сервер дельту не удалит, потому что даже nbackup просто кидает команды серверу. Разве что он после "блокирования" БД умеет базу скопировать куда-то. И с обычным gbak-ом так же - если приложение можно пристрелить, то его запуск с -se или через services api только команду серверу дает, и сервер дальше ее выполняет до упора. "Прогресс" при операциях что gbak, что nbackup оценить невозможно. Потому что серверу неинтересен ни размер базы, ни скорость, с которой делается бэкап или нбэкап. Такие дела. p.s. т.е. размер базы-то получить можно через isc_database_info (или какой-то компонент), но в БД могут быть пустые страницы, версии записей, и т.д. p.p.s. прогресс можно получить разве что в процессе шифрования/дешифрования БД в ФБ 3 или 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2021, 19:16 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
kdv hlopotun, .......... "Прогресс" при операциях что gbak, что nbackup оценить невозможно. Потому что серверу неинтересен ни размер базы, ни скорость, с которой делается бэкап или нбэкап. .......... при создании резервной копии получаю прогресс тупо сравнивая в таймере размер файла базы данных и размер файла резервной копии в момент резервного копирования. Это работает, единственно нужно правильно выбрать функцию получения размера файлов (не все опробованные варианты отрабатывали правильно с открытыми файлами). А вот при восстановлении из резервной копии уже засада. База данных сразу создаётся в полном размере и сравнивать его с размером резервной копии смысла не имеет. Думал может можно что то из события OnProgress компонента TFDFBNRestore выяснить, но он почемуто не вызывается (в отличии от OnError, AfterExecute итп). Тут народ дискутирует на эту тему, но как решить эту проблему не нашли, посылают в форум поддержки firebird. Возможно TFDFBTrace может тут помочь. Короче тут решения пока не нашел. Может у кого есть какие идеи? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 10:17 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotun, единственное что приходит в голову это заглядывать в сам файл базы и смотреть смещение откуда начинаются пустые данные в процессе восстановления. Если FB сразу создаёт базу в полном размере значит чем то забивает пустое место. Остаётся разобраться чем забивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 10:32 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotun, да, забивает 00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 10:34 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotun, алгоритм примерно такой. Смешаться из конца файла в сторону начала до появления первых не 00 данных. У кого то есть подходявая процедура которая корректно сможет просканировать эти данные из открытого другим процессом файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 10:43 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotun У кого то есть подходявая процедура которая корректно сможет просканировать эти данные из открытого другим процессом файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 11:15 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Не учи человека плохому, угробит ведь пользователям базы... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 12:42 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov угробит ведь пользователям базы... Не слышал историю, как в базе нужно было поменять номер телефона? Люди открыли базу в блокноте, нашли нужную строку и поменяли. Когда приложение перестало запускаться, открыли еще раз и вернули номер обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 12:52 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov _Vasilisk_, Не учи человека плохому, угробит ведь пользователям базы... другими словами корректного способа нет кроме как пытаться это выяснить у самого FB. А любое чтение со стороны может нарушить целостность восстанавливаемой базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 12:53 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
11.06.2021 12:42, Dimitry Sibiryakov пишет: > Не учи человека плохому, угробит ведь пользователям базы... он и без этого очень настойчиво и упорно сооружает квадратный пинзец. зы: а "прогресс" нужен чтоб рисовать градусник! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 12:54 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
Корректного способа нет в принципе. Целостность восстанавливаемой базы может нарушить то для чего ты свой "прогресс" используешь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 12:55 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotunединственное что приходит в голову это заглядывать в сам файл базы и смотреть смещение откуда начинаются пустые данные в процессе восстановления. Если FB сразу создаёт базу в полном размере значит чем то забивает пустое место. Остаётся разобраться чем забивает. господи помилуй, вы серьезно? Раз вы про нбэкап, а не про бэкап, то Нбэкап это КОПИРОВАНИЕ ФАЙЛА БАЗЫ. Ничего там не "создается". Вот вы делаете нбэкап базы nbackup -b 0 db.fdb db.nb0 база копируется. Файл копируется, целиком. Дальше nbackup -b 1 db.fdb db.nb1 в db.nb1 копируются страницы, измененные с момента -b 0. Потом, вы "восстанавливаете" базу из нбэкапа. nbackup -r db.nb0 db.nb1 здесь просто сначала копируется db.nb0, потом на него "накатываются" изменения db.nb1. Никакого "создания" базы данных тут нет, это тупо копирование файла, и вообще, db.nb0 это УЖЕ готовая база данных, которую для использования надо всего-лишь "разблокировать" (nbackup -f db.nb0). Вы бы хоть прочитали документацию, пару раз. https://www.ibase.ru/files/firebird/nbackup_ru.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 14:10 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotunединственное что приходит в голову это заглядывать в сам файл базы и смотреть смещение откуда начинаются пустые данные в процессе восстановления. и, соответственно, поскольку копирование файла это последовательное копирование блоков из одного файла в другой, если вы "заглянете" в создаваемый из копии файл, то сам файл БД Firebird это random access file, вы или получите сообщение что "база данных повреждена", или какую-то другую хрень. Просто потому, что целостный файл БД еще не скопирован до конца. Это не gbak -c, который создает пустую базу, а потом наливает в нее данные. я просто потрясён, что такие примитивы приходится объяснять. random access, sequential access, не, не знакомы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 14:14 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
kdv, спасибо что обьяснили. Доку по nbackup читал, и не раз, но не всё запомнил походу. А вывод что сразу создаётся наполненный файл сделал из того что размер его сразу после начала копирования был равен файлу резервной копии а если изнасиловать и прервать то полько начальная часть была заполнена данными. Про рандомную запись даже не подумал. Каюсь ... Уже переделываю просто на бесконечный прогрессбар без всякого анализа размера. Пользователя развлекать во время восстановления как то надо по любому, иначе он прибивает задачу и потом проблем ещё больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 14:47 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
hlopotunА вывод что сразу создаётся наполненный файл сделал из того это винда так делает, давно. пора бы уж и узнать :-) вы когда любой файл копируете, он сначала создается пустой весь, а уж потом наполняется содержимым из копии, поблочно. И ФБ тут вообще ни при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2021, 19:41 |
|
||
|
FireDAC - TFDFBNBackup - прогресс и прерывание резервного копирования
|
|||
|---|---|---|---|
|
#18+
kdv hlopotunА вывод что сразу создаётся наполненный файл сделал из того это винда так делает, давно. пора бы уж и узнать :-) вы когда любой файл копируете, он сначала создается пустой весь, а уж потом наполняется содержимым из копии, поблочно. И ФБ тут вообще ни при чем. ну, например, при создании файла резервной копии этого не происходит. И отслеживание размера вполне себе работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2021, 20:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40076460&tid=2037249]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 283ms |

| 0 / 0 |
