Можно ли сделать резервную копию Firebird DB при использовании SuperServer на Windows Server 2016? - PullRequest
0 голосов
/ 01 июля 2018

Когда я выполняю команду резервного копирования Firebird 3.0.x:

c:\Db>"C:\Program Files\Firebird\Firebird_3_0\gbak.exe"  -b c:\Db\Db1.fdb c:\Db\Db1_backup.fbk -garbage_collect -transportable -verify -user SYSDBA -pas PASSWORD

Ошибка 1 произошла:

gbak: ERROR:I/O error during "CreateFile (open)" operation for file "C:\DB\DB1.FDB"
gbak: ERROR:    Error while trying to open file
gbak: ERROR:    The process cannot access the file because it is being used by another process.
gbak:Exiting before completion due to errors

Пример 2 с протоколами TCP / INET / localhost / remote:

c:\Db>"c:\Program Files\Firebird\Firebird_3_0\gbak.exe" -backup inet://c:\Db\Db1.fdb d:\_Backups\Db1_20180702_230546.fbk -garbage_collect -transportable -verify -skip_data SOMETAB_TO_SKIP -user SYSDBA -password PASSWORD123

Ошибка 2 произошла:

gbak: ERROR:Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

Прежде всего ... если честно, я не уверен, когда это началось или почему. Я не смотрел на свой сервер, возможно, 3 месяца, но сегодня мой резервный диск сломался, поэтому мне пришлось. Я только что увидел эту ошибку сегодня впервые, и я жил в убеждении, что моя резервная копия работает. Но у меня был Firebird 2.5 раньше.

Вопрос в том, относится ли это только к Firebird 3 SuperServer в Windows? И нет способа, как сделать резервную копию базы данных Firebird 3 SuperServer, когда она используется сервером FB?

Протестировано и не выполнено на сервере Firebird 3.0.2 и 3.0.3 на Windows Server 2016.

Firebird работает как сервис

В firebird.config ничего не меняется, кроме:

WireCompression = true
RemoteServicePort = 1234
CpuAffinityMask = 8
ServerMode = Super or SuperClassic (when I testing it)

Когда я выполняю первую команду в SuperClassic, она работает.

Когда я выполняю первую команду на SuperServer 2.5.x, она работает.

1 Ответ

0 голосов
/ 04 июля 2018

Хорошо, так что я наконец-то понял, в чем проблема. Вот объяснение:

Мой пароль неверный!

НО!

Когда я использую SuperClassic, я могу использовать НЕПРАВИЛЬНЫЙ пароль, а Firebird разрешает доступ к базе данных. (как локальный пользователь)

Когда я использую SuperServer, я могу использовать НЕПРАВИЛЬНЫЙ пароль и Firebird разрешает доступ к базе данных, КОГДА я ПЕРВОЕ соединение ! (как локальный пользователь с и без удаленных протоколов)

Когда я использую SuperServer и использую НЕПРАВИЛЬНЫЙ пароль, Firebird запрещает доступ к базе данных, КОГДА я второе (и более) соединение! (локальный и удаленный пользователь)

Только с удаленными протоколами вы не можете получить доступ к базе данных с неверным паролем.

( Под удаленными протоколами я имею в виду это .)

Это причины различий в поведении и почему я не видел использования НЕПРАВИЛЬНОГО пароля. Спасибо всем, кто пытался мне помочь.

...