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

Начало » Использование СУБД » Firebird, HQbird, InterBase » Инкрементальный backup на другой сервер (Не делается)
icon5.gif  Инкрементальный backup на другой сервер [сообщение #1991] Thu, 06 April 2023 10:53 Переход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
Всем доброго дня!

Имеем два сервера server1 и server2 под управлением Windows Server 2016. На обоих серверах установлен Interbase 2009 и есть пользователь user, входящий в группу администраторов.
На сервере server1 есть БД D:\Bases\MyDatabase.gdb. Пытаюсь на server2 сделать реплику БД, для чего на server1 пишу следующее:
gbak -d D:\Bases\MyDatabase.gdb server2:E:\Bases\MyDatabase.dmp -user SYSDBA -password masterkey -v -y server2:E:\Bases\replica_%date%.log
Выполняю. На server2 создается log-файл и в него записывается следующее:
gbak: ERROR: I/O error for file "E:\Bases\MyDatabase.dmp"
gbak: ERROR:     Error while trying to create file
gbak: ERROR:     unknown Win32 error 3
gbak: Exiting before completion due to errors
Различные манипуляции, типа указать имя сервера как \\server2: или \\server2\ приводят только к изменению номера ошибки Win32 error.
Запуск сервера Interbase от имени user (с правами администратора на двух серверах) ничего не дает.
Пробовал расшарить диск на server2, дать полный доступ everyone, подключить эту шару на server1, указать это утилите gbak. Ничего не меняется, кроме номера ошибки.

Может кто-то сталкивался с похожей проблемой?
Re: Инкрементальный backup на другой сервер [сообщение #1992 является ответом на сообщение #1991] Thu, 06 April 2023 11:04 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 364
Зарегистрирован: August 2022
Senior Member
Файл бекапа (дампа) создаётся gbak'ом (т.к. не используются services), т.е. путь к нему должен быть доступен gbak'у.
Отсюда вывод - либо указывать локальный путь, либо сетевую шару:
Цитата:
Пробовал расшарить диск на server2, дать полный доступ everyone, подключить эту шару на server1, указать это утилите gbak. Ничего не меняется, кроме номера ошибки.
Вот именно это, по идее, должно работать.
Показывай, как делал и что получил.
Re: Инкрементальный backup на другой сервер [сообщение #1993 является ответом на сообщение #1992] Thu, 06 April 2023 12:09 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
Значит так. Расшарил на server2 диск Е.
Подключил его на server1 как Y.
Пишу:
gbak -d D:\Bases\MyDatabase.gdb Y:\Bases\MyDatabase.dmp -user SYSDBA -password masterkey -v -y Y:\Bases\replica_%date%.log
Выполняю. На диске Y в директории Bases создается log-файл следующего содержания:
gbak: ERROR: I/O error for file "Y:\Bases\MyDatabase.dmp"
gbak: ERROR:     Error while trying to create file
gbak: ERROR:     unknown Win32 error 3
gbak: Exiting before completion due to errors
Не могу понять, в чем проблема.
Re: Инкрементальный backup на другой сервер [сообщение #1994 является ответом на сообщение #1993] Thu, 06 April 2023 12:17 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
dimasok

gbak: ERROR: unknown Win32 error 3
ERROR_PATH_NOT_FOUND = 0x3
The system cannot find the path specified.
Re: Инкрементальный backup на другой сервер [сообщение #1995 является ответом на сообщение #1993] Thu, 06 April 2023 12:21 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 364
Зарегистрирован: August 2022
Senior Member
Process Monitor подскажет
Re: Инкрементальный backup на другой сервер [сообщение #1996 является ответом на сообщение #1995] Thu, 06 April 2023 12:36 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
а вообще конечно прикольно видеть "неизвестные коды ошибок".

[Обновления: Thu, 06 April 2023 12:36]

Известить модератора

Re: Инкрементальный backup на другой сервер [сообщение #1997 является ответом на сообщение #1995] Thu, 06 April 2023 12:53 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
Цитата:
Process Monitor подскажет
Спасибо, попробую, когда пользователи работать перестанут.

[Обновления: Thu, 06 April 2023 12:55]

Известить модератора

Re: Инкрементальный backup на другой сервер [сообщение #1998 является ответом на сообщение #1994] Thu, 06 April 2023 12:54 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
МП писал(а) Thu, 06 April 2023 12:17
dimasok

gbak: ERROR: unknown Win32 error 3
ERROR_PATH_NOT_FOUND = 0x3
The system cannot find the path specified.
И при этом по указанному пути создается log-файл. Как-то не логично gbak сообщение об ошибке выдает.

[Обновления: Thu, 06 April 2023 12:56]

Известить модератора

Re: Инкрементальный backup на другой сервер [сообщение #1999 является ответом на сообщение #1998] Thu, 06 April 2023 14:21 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 416
Зарегистрирован: August 2022
Senior Member
Вполне логично если предположить, что Interbase делает дамп исключительно силами сервера через сервисы, а твой сервер запущен от локальной учётки, не имеющей доступа к расшаренным дискам. Лог же gbak пишет самостоятельно, в сессии пользователя, потому он и создаётся.

PS: Что, собственно, и подтверждает OpGuide:
Цитата:
An online dump is a server-side operation only.

[Обновления: Thu, 06 April 2023 14:25]

Известить модератора

Re: Инкрементальный backup на другой сервер [сообщение #2001 является ответом на сообщение #1999] Thu, 06 April 2023 14:30 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
В общем натравил я на сервер ProcessMonitor. Что удалось выяснить. IBServer читает файл БД, дамп которой надо сделать, потом начинает искать файлы GDS_A.DLL, GDS_B.DLL, GDS_C.DLL, GDS_D.DLL, не находит их, обращается к KernelBase.dll, затем к netmsg.dll, затем к interbase.msg и начинает запись в log-файл. Как я понимаю, запись об ошибке.
Возникает вопрос, что это за библиотеки GDS_A.DLL, GDS_B.DLL, GDS_C.DLL, GDS_D.DLL?
Если делать дамп на тот же сервер, где и БД, все создается нормально.
Re: Инкрементальный backup на другой сервер [сообщение #2002 является ответом на сообщение #1999] Thu, 06 April 2023 14:48 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
SD писал(а) Thu, 06 April 2023 14:21
Вполне логично если предположить, что Interbase делает дамп исключительно силами сервера через сервисы, а твой сервер запущен от локальной учётки, не имеющей доступа к расшаренным дискам. Лог же gbak пишет самостоятельно, в сессии пользователя, потому он и создаётся.

PS: Что, собственно, и подтверждает OpGuide:
Цитата:
An online dump is a server-side operation only.
На сайте ibase.ru написано:
Цитата:
Файлы инкрементного бэкапа могут быть как на компьютере сервера, так и на удаленном компьютере, который доступен серверу InterBase для записи файлов. Это значит, что при создании дампа запись в файл производится сервером InterBase, а не утилитой gbak. В то время как файл дампа может быть как на локальном так и на сетевом диске, файл page appendix всегда находится только на локальном диске.
А фразу Цитата:
An online dump is a server-side operation only
я понимаю так, что инициировано создание дампа может быть только с сервера, где лежит файл БД. Может я не прав, но на том же ibase.ru мне попадались примеры, где дамп создается на удаленном сервере. Не могу сходу найти.
Цитата:
а твой сервер запущен от локальной учётки
А от какой учетки его надо запустить?
Re: Инкрементальный backup на другой сервер [сообщение #2006 является ответом на сообщение #2002] Fri, 07 April 2023 00:35 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 416
Зарегистрирован: August 2022
Senior Member
dimasok писал(а) Thu, 06 April 2023 13:48
А от какой учетки его надо запустить?
Ну, если ты смог прочитать "на удаленном компьютере, который доступен серверу InterBase для записи файлов", то, возможно, от учётки, которой на удалённом компьютере доступна запись файлов, не правда ли?..
Re: Инкрементальный backup на другой сервер [сообщение #2007 является ответом на сообщение #2006] Fri, 07 April 2023 08:38 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
SD писал(а) Fri, 07 April 2023 00:35
dimasok писал(а) Thu, 06 April 2023 13:48
А от какой учетки его надо запустить?
Ну, если ты смог прочитать "на удаленном компьютере, который доступен серверу InterBase для записи файлов", то, возможно, от учётки, которой на удалённом компьютере доступна запись файлов, не правда ли?..
В первом посте я написал, что учетка user имеет права администратора на обоих серверах, естественно, она может без проблем переписывать файлы между серверами в любом направлении. Вчера специально на файерволе посмотрели, никаких затыков нет.
Вот например, если в строчке для gbak заменить ключ -d на -b, то на server2 делается бэкап. В этом случае gbak работает от имени учетки user. Так же, как и сервер Interbase в случае ключа -b.
Re: Инкрементальный backup на другой сервер [сообщение #2010 является ответом на сообщение #2007] Fri, 07 April 2023 11:05 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 364
Зарегистрирован: August 2022
Senior Member
dimasok писал(а) Fri, 07 April 2023 08:38
SD писал(а) Fri, 07 April 2023 00:35
dimasok писал(а) Thu, 06 April 2023 13:48
А от какой учетки его надо запустить?
Ну, если ты смог прочитать "на удаленном компьютере, который доступен серверу InterBase для записи файлов", то, возможно, от учётки, которой на удалённом компьютере доступна запись файлов, не правда ли?..
В первом посте я написал, что учетка user имеет права администратора на обоих серверах, естественно, она может без проблем переписывать файлы между серверами в любом направлении. Вчера специально на файерволе посмотрели, никаких затыков нет.
Вот например, если в строчке для gbak заменить ключ -d на -b, то на server2 делается бэкап. В этом случае gbak работает от имени учетки user. Так же, как и сервер Interbase в случае ключа -b.
Речь об учётной записи сервера (сервиса), не об gbak.
Re: Инкрементальный backup на другой сервер [сообщение #2011 является ответом на сообщение #2010] Fri, 07 April 2023 11:37 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
[/quote]Речь об учётной записи сервера (сервиса), не об gbak.[/quote]
Сервер (сервис) запущен от имени учетной записи user, который администратор на обеих серверах.
Re: Инкрементальный backup на другой сервер [сообщение #2013 является ответом на сообщение #2011] Fri, 07 April 2023 12:00 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
dimasok
. Сервер (сервис) запущен от имени учетной записи user, который администратор на обеих серверах.
картинку покажи
Re: Инкрементальный backup на другой сервер [сообщение #2015 является ответом на сообщение #2013] Fri, 07 April 2023 12:17 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
/index.php/fa/98/0/
  • Вложение: Сервисы.png
    (Размер: 57.79KB, Загружено 1176 раз)

[Обновления: Fri, 07 April 2023 12:19]

Известить модератора

Re: Инкрементальный backup на другой сервер [сообщение #2017 является ответом на сообщение #2015] Fri, 07 April 2023 13:37 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 364
Зарегистрирован: August 2022
Senior Member
Сервис не видит замапленные диски.
См, например https://serverfault.com/questions/116986/unc-shortcut-vs-map ped-network-drive

Можно указать UNC путь, без маппинга

gbak -d D:\Bases\MyDatabase.gdb \\server2\share\...\MyDatabase.dmp ...
Re: Инкрементальный backup на другой сервер [сообщение #2023 является ответом на сообщение #2017] Fri, 07 April 2023 15:40 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
hvlad писал(а) Fri, 07 April 2023 13:37
Сервис не видит замапленные диски.
См, например https://serverfault.com/questions/116986/unc-shortcut-vs-map ped-network-drive

Можно указать UNC путь, без маппинга

gbak -d D:\Bases\MyDatabase.gdb \\server2\share\...\MyDatabase.dmp ...
Спасибо, мил человек! Я неправильно имя шары указывал. Сейчас попробовал указать, как в примере, и все сработало.
Всем спасибо за помощь!
Re: Инкрементальный backup на другой сервер [сообщение #2118 является ответом на сообщение #2023] Wed, 19 April 2023 00:09 Переход к предыдущему сообщениюПереход к следующему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 98
Зарегистрирован: June 2022
Member
жалко, что я пропустил, не успел прекратить этот ужас в зародыше.

В InterBase gbak -d - это аналог nbackup в Firebird. Поэтому они оба работают что с файлом базы что с инкрементом ФИЗИЧЕСКИ. Указание имени сервера в пути к базе или инкременту - ахинея.
И да, в назначении должно быть указано имя шареной папки, а не второй сервак.
Надо было читать или
https://www.ibase.ru/ib2007updateguide/
OpGuide.pdf к оригинальной версии (ИБ 2009).
Re: Инкрементальный backup на другой сервер [сообщение #2120 является ответом на сообщение #2118] Wed, 19 April 2023 00:47 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 416
Зарегистрирован: August 2022
Senior Member
А неча на собственный форум раз в полгода заходить...
Re: Инкрементальный backup на другой сервер [сообщение #2122 является ответом на сообщение #2118] Thu, 20 April 2023 12:09 Переход к предыдущему сообщениюПереход к следующему сообщению
dimasok в настоящее время не в онлайне  dimasok
Сообщений: 14
Зарегистрирован: April 2023
Junior Member
kdv писал(а) Wed, 19 April 2023 00:09
жалко, что я пропустил, не успел прекратить этот ужас в зародыше.

В InterBase gbak -d - это аналог nbackup в Firebird. Поэтому они оба работают что с файлом базы что с инкрементом ФИЗИЧЕСКИ. Указание имени сервера в пути к базе или инкременту - ахинея.
И да, в назначении должно быть указано имя шареной папки, а не второй сервак.
Надо было читать или
https://www.ibase.ru/ib2007updateguide/
OpGuide.pdf к оригинальной версии (ИБ 2009).
Я сначала все это прочитал, перед тем как вопрос задать.
Без указания имени сервера в пути к инкременту НЕ РАБОТАЕТ! Я пробовал мапить диск сервера, где инкремент находится. Завершается с ошибкой "Не найден указанный путь". Прокатило только \\имя сервера\имя шары\путь к файлу инкремента.
Re: Инкрементальный backup на другой сервер [сообщение #2123 является ответом на сообщение #2122] Thu, 20 April 2023 14:13 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 416
Зарегистрирован: August 2022
Senior Member
Ты бы ещё на совершенно левой машине этот диск "мапал"... Пользовательскую сессию от сессии сервиса совсем отличить не в состоянии?..
Re: Инкрементальный backup на другой сервер [сообщение #2132 является ответом на сообщение #2122] Tue, 25 April 2023 00:19 Переход к предыдущему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 98
Зарегистрирован: June 2022
Member
dimasok писал(а) Thu, 20 April 2023 12:09

Без указания имени сервера в пути к инкременту НЕ РАБОТАЕТ!
ну не надо...
Во-первых, путь к шаре - это путь к шаре, тут "имя сервера" это не то имя сервера, которое обычно имеется в виду при коннекте к базам ИБ и ФБ.
Во-вторых, если ИБ/ФБ работает на винде как служба, то она работает обычно под аккаунтом LocalSystem, который права на доступ к любой шаре вне компьютера не может получить в принципе. И чтобы он мог получить доступ к шареному файлу, бэкапу и проч, надо запускать службу под специально созданным аккаунтом, которому и надо дать все нужные права.

p.s. в конце-концов, можно было запустить processmonitor и посмотреть, куда лезет гбак, и куда лезет ИБ, и что там за ошибки.
Предыдущая тема: Как правильно остановить сервер Firebird?
Следующая тема: Есть ли утилита для автоматического backup/restore
Переход к форуму:
  


Текущее время: Wed Dec 18 17:09:54 GMT+3 2024

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