Страница 1 из 1
Проблема с Backup'ом в несколько файлов
Добавлено: 17 июл 2006, 18:31
gorin_dmitry
Стоит IB 7.5 SP1. У меня издавна написана утилитка для backup БД с разбиением на файлы. Работаю через IBX TIBBackupService.
1. Перестала принимать размер файла меньше 2 Гб.
2. Если указать 2 или более Гб, то на файлы не режет, а пишет все в один.
2. Если укзать меньше, то создает кучу пустых файлов (24 штуки) и подвисает.
Кто в курсе, помогите! На 6.5 и 7.1 все работало!
Добавлено: 17 июл 2006, 19:50
kdv
сервис создает сразу все указываемые в параметрах файлы бэкапа. размером 0 байт (так видно в операционке, вообще-то у меня по 4к они потом стали видны). потом только их заполняет по ходу бэкапа. Вот сейчас запустил из IBExpert на IB 7.5.1 SP1 бэкап базы 2.5 гиг в 4 файла по 500 мег. Все идет по плану, наблюдаю заполнение файлов бэкапа и переключение на очередные.
Проверь версию клиента (gds32.dll) на всякий случай.
Добавлено: 17 июл 2006, 19:56
kdv
да, причем хоть 4-ый файл был указан 500 мег, бэкап его все равно сделал 650 мег, потому как бэкап ровно в 2 гига не влез.
Кстати, что значит "зависает"? Ты лог бэкапа ведешь?
Добавлено: 18 июл 2006, 12:09
gorin_dmitry
Проблема пока в том, что сервис отказывается создать более 23 файлов, какого бы размера они не получались. От 24 и более - он создает 24 файла, открывает их и "висит". При этом verbose даже не начинается.
Вот я и думаю - неучтенное ли это ограничение на количество файлов и переполнение какого-то буфера со входными именами.
Добавлено: 18 июл 2006, 12:34
kdv
переполнение какого-то буфера со входными именами.
очень похоже на это.
к слову, а зачем бэкап бить на файлы?
Добавлено: 18 июл 2006, 12:48
gorin_dmitry
Заказчик держит копии на DVD и CDROM.
Дело не в количестве файлов, а в совокупной длине названий.
Я ее вычислить не могу - она плавает (400-600 байт).
Причем посмотрел по API и исходнику IBX - у isc_service_start на размер буфера с входными параметрами отводится аж 16 разрядов.
Даже на 24 файлах с их размерами и именем базы я не дотагиваю даже до 1024 байт. То есть в клиентские буфера я укладываюсь.
Видимо внутри сервера какой-то баг сидит.
Добавлено: 18 июл 2006, 13:41
kdv
вариант только такой - бэкап делать в один файл. потом на него напускать zip или какой-нибудь сплиттер для разбивки по дискам. Результат писать на диски.
Одновременно сообщить в qc.borland.com, с примером.