SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Почему gbak от firebird 2.5 разбивает файл бэкапа на тома (gbak от firebird 2.5 разбивает файл бэкапа на тома)
Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #245] Fri, 29 July 2022 00:12 Переход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
БД Firebird 2.5, размер БД около 370 Гб. При попыке выполнить бэкап базы на отдельный диск размером в 1 Тб gbak выдает сообщение о создании первого тома и ввода имени нового файла. БД в работе, режим только для чтения не устанавливался, т.е. запись и работа с БД в ходе резервного копирования не остановлены. На диске куда выполняется бэкап копировались фалы размером в 300 Гб, т.е. ограничений на размер файла нет. GBAK запускается с ключами -b -t -v
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -b -v -t LOCALHOST:C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK -user SYSDBA -password masterkey
после обработки около 95млн записей выдается сообщение:
Done with volume #1, "F:\DATA\DB_NEW.FBK" Press return to reopen that file, or type a new name followed by return to open a different file. Name:
Первый раз вижу такое сообщение. Файл на диске при этом около 80 Мб. Почему начинается разбивка на тома и что с этим делать.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #246 является ответом на сообщение #245] Fri, 29 July 2022 14:23 Переход к предыдущему сообщениюПереход к следующему сообщению
neozx1984 в настоящее время не в онлайне  neozx1984
Сообщений: 23
Зарегистрирован: June 2022
Junior Member
Предполагаю, что gbak получает ошибку записи и решает, что нужно писать в следующий файл/диск.
Возможно произошла какая-то временная ошибка вводы/вывода, можно посмотреть в журналах ОС.

Как workaround можно попробовать через pipe передать в программу, которая будет по другому обрабатывать ошибки записи на диск, т.е. делать несколько попыток записи.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #248 является ответом на сообщение #246] Sat, 30 July 2022 16:19 Переход к предыдущему сообщениюПереход к следующему сообщению
basid в настоящее время не в онлайне  basid
Сообщений: 79
Зарегистрирован: June 2022
Географическое положение: Asia/Irkutsk
Member
Что выдаётся в начале и конце протокола для команды (сложено по правилам cmd):
gbak -se localhost -user ЛОГИН -pas ПАРОЛ^
 -v -y ПОЛНЫЙ/ПУТЬ/ПРОТОКОЛ^
 -b -g БАЗА nul
?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #250 является ответом на сообщение #245] Mon, 01 August 2022 04:31 Переход к предыдущему сообщениюПереход к следующему сообщению
fraks в настоящее время не в онлайне  fraks
Сообщений: 108
Зарегистрирован: June 2022
Географическое положение: Новосибирск
Senior Member
SZeman писал(а) Fri, 29 July 2022 04:12
GBAK запускается с ключами -b -t -v
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -b -v -t LOCALHOST:C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK -user SYSDBA -password masterkey
gbak:backup options are:
        -CO(NVERT)            backup external files as tables
        -E(XPAND)             no data compression
        -FA(CTOR)             blocking factor
        -G(ARBAGE_COLLECT)    inhibit garbage collection
        -IG(NORE)             ignore bad checksums
        -L(IMBO)              ignore transactions in limbo
        -NOD(BTRIGGERS)       do not run database triggers
        -NT                   Non-Transportable backup file format
        -OL(D_DESCRIPTIONS)   save old style metadata descriptions
        -T(RANSPORTABLE)      transportable backup -- data in XDR format
А если запустить без ключа -Т ?

Кроме того,
gbak:Usage:
     gbak -b <db set> <backup set> [backup options] [general options]
     gbak -c <backup set> <db set> [restore options] [general options]
     <db set> = <database> | <db1 size1>...<dbN> (size in db pages)
     <backup set> = <backup> | <bk1 size1>...<bkN> (size in bytes = n[K|M|G])
     -recreate overwrite and -replace can be used instead of -c
т.е. резать бэкап на файлы по размеру, видимо умеет (никогда не пробовал). Если задать соответствующие опции.
Есть ли уверенность что бэкап выполняется именно приведенной тут строкой, нет ли вариантов что выполняется что-то другое?
Или какие-нибудь переменные средЫ?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #254 является ответом на сообщение #250] Mon, 01 August 2022 10:33 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
Раньше когда БД была 40-50 Гб бэкап выполнялся. Правда выполнялся на тот же диск где и сама база. Сейчас для бэкапа подключили новый диск. Ключ t использую всегда. На сколько я понимаю к разбиению он не имеет отношения
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #255 является ответом на сообщение #250] Mon, 01 August 2022 10:37 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
Вариантов что выполняется что-то другое нет. попробую сделать копию БД при отключенном сервере и выполнить бэкап на копии чтобы база не была в работе. Возможно из-за долгого выполнения бэкапа слишком много изменений происходит в БД и gbak выполняет таким образом рестарт.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #256 является ответом на сообщение #245] Mon, 01 August 2022 15:52 Переход к предыдущему сообщениюПереход к следующему сообщению
Alexey Kovyazin в настоящее время не в онлайне  Alexey Kovyazin
Сообщений: 21
Зарегистрирован: June 2022
Junior Member
> Done with volume #1, "F:\DATA\DB_NEW.FBK" Press return to reopen that file, or type a new name followed by return to open a different file. Name:

Это заканчивается место, по моему. Попробуйте на другой диск направить.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #257 является ответом на сообщение #256] Mon, 01 August 2022 17:00 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
Места на диске более чем достаточно, чуть мене 700гб. Для бэкапа специально новый диск выделили. На момент выдачи сообщения файл бэкапа имел размер около 80мб.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #258 является ответом на сообщение #257] Mon, 01 August 2022 20:35 Переход к предыдущему сообщениюПереход к следующему сообщению
Alexey Kovyazin в настоящее время не в онлайне  Alexey Kovyazin
Сообщений: 21
Зарегистрирован: June 2022
Junior Member
На другой компьютер, или на другой диск, пробовали направлять бэкап?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #260 является ответом на сообщение #255] Tue, 02 August 2022 04:25 Переход к предыдущему сообщениюПереход к следующему сообщению
fraks в настоящее время не в онлайне  fraks
Сообщений: 108
Зарегистрирован: June 2022
Географическое положение: Новосибирск
Senior Member
SZeman писал(а) Mon, 01 August 2022 14:37
Возможно из-за долгого выполнения бэкапа слишком много изменений происходит в БД и gbak выполняет таким образом рестарт.
Какой рестарт??
Весь бэкап выполняется в одной транзакции, что бы получился единомоментный снимок всей базы.
Да, эта транзакция может удерживать версии, и они таким образом могут накапливаться, за время работы gbak, но никаких рестартов быть не может.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #268 является ответом на сообщение #258] Fri, 05 August 2022 10:17 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
На другой диск писать не пробовали. Другого нет. На диске рядом с базой нет достаточного места для работы. Бэкап выполнялся на специально для него подключенный новый диск. Сейчас проблему я думаю что решили. Остановили систему которая работала с БД. Остановили Firebird и сделали копию БД копированием файла. Запустили еще раз бэкап, но уже не с живой БД, а с ее копии. Полет нормальный уже - сутки идет выполнение. Для работы использовали тот же командный файл, выполняли на тот же диск что и в начале, единственное конечно что изменилось - это сам файл с которого делался бэкап.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #270 является ответом на сообщение #268] Fri, 05 August 2022 11:46 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время в онлайне  МП
Сообщений: 768
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SZeman писал(а) Fri, 05 August 2022 10:17
Запустили еще раз бэкап, но уже не с живой БД, а с ее копии. Полет нормальный уже - сутки идет выполнение.
бекап что ли сутки висит? Confused
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #271 является ответом на сообщение #270] Fri, 05 August 2022 13:06 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
Бэкап завершился успешно. Выполнялся да почти сутки. Перед бэкапом делали удаление данных из одной таблицы около 700 млн записей. Итоговый файл бэкапа 122 гб. В БД есть ооочень большие таблицы, около 1.5 млрд записей.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #272 является ответом на сообщение #271] Fri, 05 August 2022 17:54 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время в онлайне  МП
Сообщений: 768
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SZeman писал(а) Fri, 05 August 2022 13:06
Бэкап завершился успешно. Выполнялся да почти сутки. Перед бэкапом делали удаление данных из одной таблицы около 700 млн записей. Итоговый файл бэкапа 122 гб. В БД есть ооочень большие таблицы, около 1.5 млрд записей.
классика! Razz

а всё из-за того, что ты не поставил ключик -g
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #277 является ответом на сообщение #272] Sun, 07 August 2022 10:50 Переход к предыдущему сообщениюПереход к следующему сообщению
Alexey Kovyazin в настоящее время не в онлайне  Alexey Kovyazin
Сообщений: 21
Зарегистрирован: June 2022
Junior Member
Сутки на 112 Гб это жуть конечно.
-g обязательно, ну и прочие варианту ускорения стоит посмотреть:
https://ib-aid.com/articles/firebird-gbak-backup-tips-and-tr icks

Для больших БД нужен HQbird, в HQbird есть функция многопоточного бэкапа, если на SSD, то на 8 ядрах раз в 6 быстрее. Нет денег купить, можно поставить триал и сделать б/р.

Недавно одни юзеры делали бэкап-рестор 2.6Тб базы на 2.5 HQbird, бэкап 5 часов, рестор 11, но в 2.5 рестор многопоточен только для индексов, начиная с 4-ки hqbird - и для данных.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #278 является ответом на сообщение #277] Mon, 08 August 2022 04:24 Переход к предыдущему сообщениюПереход к следующему сообщению
fraks в настоящее время не в онлайне  fraks
Сообщений: 108
Зарегистрирован: June 2022
Географическое положение: Новосибирск
Senior Member
Осталось непонятным от чего была исходная проблема, почему бэкап хотел разбиться на файлы.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #282 является ответом на сообщение #254] Mon, 08 August 2022 14:03 Переход к предыдущему сообщениюПереход к следующему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 89
Зарегистрирован: June 2022
Member
SZeman писал(а) Mon, 01 August 2022 10:33
Ключ t использую всегда.
поздравляю. ключ -t по умолчанию, он вообще ни зачем не нужен, потому что бэкап и так всегда "транспортабельный". Какой-то смысл бы имел ключ -nt (non-transportable), но это сейчас тоже не имеет смысла.

Лучше было бы "всегда указывать" -g. Было бы больше пользы.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #288 является ответом на сообщение #282] Tue, 09 August 2022 15:00 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
kdv писал(а) Mon, 08 August 2022 14:03
SZeman писал(а) Mon, 01 August 2022 10:33
Ключ t использую всегда.
поздравляю. ключ -t по умолчанию, он вообще ни зачем не нужен, потому что бэкап и так всегда "транспортабельный". Какой-то смысл бы имел ключ -nt (non-transportable), но это сейчас тоже не имеет смысла.

Лучше было бы "всегда указывать" -g. Было бы больше пользы.
Спасибо за совет. Сегодня попробую еще раз сделать бэкап добавив ключик -g
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #289 является ответом на сообщение #278] Tue, 09 August 2022 15:02 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
fraks писал(а) Mon, 08 August 2022 04:24
Осталось непонятным от чего была исходная проблема, почему бэкап хотел разбиться на файлы.
Да этот вопрос самого мучает. За много лет работы с базами FireBird первый раз увидел такое сообщение и оно повергло в ступор.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #290 является ответом на сообщение #289] Tue, 09 August 2022 17:30 Переход к предыдущему сообщениюПереход к следующему сообщению
DarkMaster в настоящее время не в онлайне  DarkMaster
Сообщений: 33
Зарегистрирован: August 2022
Member
Ставлю на то, что запускался другой скрипт. Ну gbak все-таки не настолько интеллектуален, чтобы самому принимать решение о разбивке на тома.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #291 является ответом на сообщение #290] Tue, 09 August 2022 17:32 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
DarkMaster писал(а) Tue, 09 August 2022 17:30
Ставлю на то, что запускался другой скрипт. Ну gbak все-таки не настолько интеллектуален, чтобы самому принимать решение о разбивке на тома.
Скрипт запускался через bat файл. Этот файл один.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #292 является ответом на сообщение #291] Tue, 09 August 2022 21:23 Переход к предыдущему сообщениюПереход к следующему сообщению
DarkMaster в настоящее время не в онлайне  DarkMaster
Сообщений: 33
Зарегистрирован: August 2022
Member
В ваших линуксах (ну и в наших виндах) - симлинки не?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #293 является ответом на сообщение #245] Wed, 10 August 2022 12:01 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 290
Зарегистрирован: August 2022
Senior Member
SZeman писал(а) Fri, 29 July 2022 00:12
БД Firebird 2.5, размер БД около 370 Гб. При попыке выполнить бэкап базы на отдельный диск размером в 1 Тб gbak выдает сообщение о создании первого тома и ввода имени нового файла. БД в работе, режим только для чтения не устанавливался, т.е. запись и работа с БД в ходе резервного копирования не остановлены. На диске куда выполняется бэкап копировались фалы размером в 300 Гб, т.е. ограничений на размер файла нет. GBAK запускается с ключами -b -t -v
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -b -v -t LOCALHOST:C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK -user SYSDBA -password masterkey
после обработки около 95млн записей выдается сообщение:
Done with volume #1, "F:\DATA\DB_NEW.FBK" Press return to reopen that file, or type a new name followed by return to open a different file. Name:
Первый раз вижу такое сообщение. Файл на диске при этом около 80 Мб. Почему начинается разбивка на тома и что с этим делать.
gbak считает, что нет места на диске с файлом бекапа.
Попробуй через сервисы, он тогда не будет спрашивать имя тома, а покажет ошибку из-за которой он считает что нет места на диске:

-SE LOCALHOST:service_mgr -b -v -t -g C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #294 является ответом на сообщение #245] Wed, 10 August 2022 14:05 Переход к предыдущему сообщениюПереход к следующему сообщению
ggreggory в настоящее время не в онлайне  ggreggory
Сообщений: 56
Зарегистрирован: July 2022
Member
SZeman писал(а) Fri, 29 July 2022 00:12
На диске куда выполняется бэкап копировались фалы размером в 300 Гб, т.е. ограничений на размер файла нет
Как версия: у пользователя, от имени которого выполняется gbak, настроены дисковые квоты.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #315 является ответом на сообщение #293] Fri, 12 August 2022 10:21 Переход к предыдущему сообщениюПереход к следующему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
hvlad писал(а) Wed, 10 August 2022 12:01
SZeman писал(а) Fri, 29 July 2022 00:12
БД Firebird 2.5, размер БД около 370 Гб. При попыке выполнить бэкап базы на отдельный диск размером в 1 Тб gbak выдает сообщение о создании первого тома и ввода имени нового файла. БД в работе, режим только для чтения не устанавливался, т.е. запись и работа с БД в ходе резервного копирования не остановлены. На диске куда выполняется бэкап копировались фалы размером в 300 Гб, т.е. ограничений на размер файла нет. GBAK запускается с ключами -b -t -v
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -b -v -t LOCALHOST:C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK -user SYSDBA -password masterkey
после обработки около 95млн записей выдается сообщение:
Done with volume #1, "F:\DATA\DB_NEW.FBK" Press return to reopen that file, or type a new name followed by return to open a different file. Name:
Первый раз вижу такое сообщение. Файл на диске при этом около 80 Мб. Почему начинается разбивка на тома и что с этим делать.
gbak считает, что нет места на диске с файлом бекапа.
Попробуй через сервисы, он тогда не будет спрашивать имя тома, а покажет ошибку из-за которой он считает что нет места на диске:

-SE LOCALHOST:service_mgr -b -v -t -g C:\DATA\DB.FDB F:\DATA\DB_NEW.FBK
Бэкап прошел на тот же диск что и раньше. Запускался тем же батником что и раньше. Прошел без ошибок и предложений бить на тома. Пробовать еще раз на работающей БД не стал. Сделал копию файла и для нее запустил бэкап. Копию естественно делал на выключенном сервере.
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #316 является ответом на сообщение #315] Fri, 12 August 2022 14:12 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 328
Зарегистрирован: August 2022
Senior Member
А что говорит SMART этого диска?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #320 является ответом на сообщение #315] Fri, 12 August 2022 18:21 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 290
Зарегистрирован: August 2022
Senior Member
SZeman писал(а) Fri, 12 August 2022 10:21
Пробовать еще раз на работающей БД не стал.
А почему ?
Re: Почему gbak от firebird 2.5 разбивает файл бэкапа на тома [сообщение #321 является ответом на сообщение #320] Fri, 12 August 2022 19:11 Переход к предыдущему сообщению
SZeman в настоящее время не в онлайне  SZeman
Сообщений: 11
Зарегистрирован: July 2022
Junior Member
hvlad писал(а) Fri, 12 August 2022 18:21
SZeman писал(а) Fri, 12 August 2022 10:21
Пробовать еще раз на работающей БД не стал.
А почему ?
В БД данные пишутся непрерывно, практически нон-стоп. Бэкап выполняется очень долго. Решил не экспериментировать на живье и пойти более щадящим путем и попробовать работать - это помогло. Задача решена. Повторные бэкапы с копии проходят также успешно. По рекомендации KDV пробовал запускать без уборки мусора - бэкап проходит успешно.
Предыдущая тема: смотрю книгу, вижу
Следующая тема: Драйвер для python - возможны ли именованные параметры?
Переход к форуму:
  


Текущее время: Thu Mar 28 17:03:19 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01096 секунд