Можно ли сделать резервную копию Firebird DB при использовании SuperServer на Windows Server 2016?
Когда я выполняю команду резервного копирования 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 ответ
Итак, я наконец понял, в чем проблема. Вот объяснение:
Мой пароль неверный!
НО!
Когда я использую SuperClassic, я могу использовать НЕПРАВИЛЬНЫЙ пароль, и Firebird разрешает доступ к базе данных. (как локальный пользователь)
Когда я использую SuperServer, я могу использовать НЕПРАВИЛЬНЫЙ пароль, и Firebird разрешает доступ к базе данных, когда я ПЕРВЫЕ соединение! (как локальный пользователь с и без удаленных протоколов)
Когда я использую SuperServer и использую НЕПРАВИЛЬНЫЙ пароль, Firebird запрещает доступ к базе данных, КОГДА я являюсь вторым (и более) соединением! (локальный и удаленный пользователь)
Только с удаленными протоколами вы не можете получить доступ к базе данных с неправильным паролем.
(Под удаленными протоколами я имею в виду это.)
Это причины различий в поведении и почему я не видел использование НЕПРАВИЛЬНОГО пароля. Спасибо всем, кто пытался мне помочь.