Проблема с Backup'ом в несколько файлов

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
gorin_dmitry
Сообщения: 6
Зарегистрирован: 15 мар 2005, 17:29

Проблема с Backup'ом в несколько файлов

Сообщение gorin_dmitry » 17 июл 2006, 18:31

Стоит IB 7.5 SP1. У меня издавна написана утилитка для backup БД с разбиением на файлы. Работаю через IBX TIBBackupService.
1. Перестала принимать размер файла меньше 2 Гб.
2. Если указать 2 или более Гб, то на файлы не режет, а пишет все в один.
2. Если укзать меньше, то создает кучу пустых файлов (24 штуки) и подвисает.
Кто в курсе, помогите! На 6.5 и 7.1 все работало!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 июл 2006, 19:50

сервис создает сразу все указываемые в параметрах файлы бэкапа. размером 0 байт (так видно в операционке, вообще-то у меня по 4к они потом стали видны). потом только их заполняет по ходу бэкапа. Вот сейчас запустил из IBExpert на IB 7.5.1 SP1 бэкап базы 2.5 гиг в 4 файла по 500 мег. Все идет по плану, наблюдаю заполнение файлов бэкапа и переключение на очередные.

Проверь версию клиента (gds32.dll) на всякий случай.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 июл 2006, 19:56

да, причем хоть 4-ый файл был указан 500 мег, бэкап его все равно сделал 650 мег, потому как бэкап ровно в 2 гига не влез.

Кстати, что значит "зависает"? Ты лог бэкапа ведешь?

gorin_dmitry
Сообщения: 6
Зарегистрирован: 15 мар 2005, 17:29

Сообщение gorin_dmitry » 18 июл 2006, 12:09

Проблема пока в том, что сервис отказывается создать более 23 файлов, какого бы размера они не получались. От 24 и более - он создает 24 файла, открывает их и "висит". При этом verbose даже не начинается.
Вот я и думаю - неучтенное ли это ограничение на количество файлов и переполнение какого-то буфера со входными именами.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 июл 2006, 12:34

переполнение какого-то буфера со входными именами.
очень похоже на это.

к слову, а зачем бэкап бить на файлы?

gorin_dmitry
Сообщения: 6
Зарегистрирован: 15 мар 2005, 17:29

Сообщение gorin_dmitry » 18 июл 2006, 12:48

Заказчик держит копии на DVD и CDROM.

Дело не в количестве файлов, а в совокупной длине названий.
Я ее вычислить не могу - она плавает (400-600 байт).
Причем посмотрел по API и исходнику IBX - у isc_service_start на размер буфера с входными параметрами отводится аж 16 разрядов.
Даже на 24 файлах с их размерами и именем базы я не дотагиваю даже до 1024 байт. То есть в клиентские буфера я укладываюсь.
Видимо внутри сервера какой-то баг сидит.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 июл 2006, 13:41

вариант только такой - бэкап делать в один файл. потом на него напускать zip или какой-нибудь сплиттер для разбивки по дискам. Результат писать на диски.

Одновременно сообщить в qc.borland.com, с примером.

Ответить