Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.
Модераторы: kdv, Alexey Kovyazin
-
Brainenjii
- Сообщения: 9
- Зарегистрирован: 06 ноя 2008, 15:18
Сообщение
Brainenjii » 07 ноя 2008, 07:08
Приветствую... Есть база, которая сначала была на Windows версии Firebird, потом после бекап-рестора перенесена на Linux... Сейчас backup'ы Linux'овой версии не восстанавливается - прекращается на этой ошибке... Не подскажите, что можно сделать? ^_^
// Копирование самого файла базы данных при отключенных пользователях приводит к
Engine Message :
database file appears corrupt ()
wrong page type
page 3 is of wrong type (expected 4, found 0)
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 07 ноя 2008, 10:59
А не пробовал по-человечески, перенести не "после бэкап-рестора", а собственно бэкап перенести, и там, на линуксе, отресторить?
Или по сетке сразу там отресторить?
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 07 ноя 2008, 11:40
Копировать базу, по большому счету, нельзя. И вообще, "бэкапы не восстанавливаются", при этом приведенное сообщение к рестору вообще никак не относится. Так что Вы с терминологией определитесь, пожалуйста - что у Вас бэкап, что такое "восстановление бэкапа", и т.д.
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 07 ноя 2008, 14:37
Brainenjii писал(а):Приветствую... Есть база, которая сначала была на Windows версии Firebird, потом после бекап-рестора перенесена на Linux... Сейчас backup'ы Linux'овой версии не восстанавливается - прекращается на этой ошибке... Не подскажите, что можно сделать? ^_^
Использовать для рестора не меньшую версию того-же сервера, что и при бекапе.
Brainenjii писал(а):// Копирование самого файла базы данных при отключенных пользователях приводит к
Engine Message :
database file appears corrupt ()
wrong page type
page 3 is of wrong type (expected 4, found 0)
Или юзеры не отключены, или база уже битая.
gfix -v -f
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 07 ноя 2008, 17:24
gfix этой базе уже не поможет. потому что третья страница это корневая Pointer page (тип страницы - 4). и если там 0 вместо типа страницы, то может она уже вся нулями прописана. а значит это только через наш ремонт. ну или ручками реконструировать
-
Brainenjii
- Сообщения: 9
- Зарегистрирован: 06 ноя 2008, 15:18
Сообщение
Brainenjii » 07 ноя 2008, 17:49
С формулировками наверняка не слишком точен >_< В общем, был сделан fbk файл на виндовой машине, перенесён на линуксовую, там был сделан restore для этого файла. Теперь, backup'ы линуксовой базы не ресторятся - ошибка в теме...
gfix /path/to/dbfile.fdb -v -full -user SYSDBA -pass mypass - ничего не выдаёт... Но после gbak -b /path/to/dbfile.fdb /path/to/backup.fbk -user SYSDBA -pass masterkey - и копирования получившегося fbk на виндовую машину, где ей делается рестор - всё та же ошибка...
На linux'e и windows одна и так же версия firebird (правда не знаю, где посмотреть версию именно firebird на линуксовой машине, так что смотрел gfix -z = "gfix version LI-V2.0.4.13130 Firebird 2.0". На Windows - Firebird 2.0.4-13130 (в панели управления)...
UPD: пока набирал пост ещё пробовал по всякому, в общем, получилось так - сделал shut full force 0, потом файл скопировал на виндовую машину, тут ему online и она заработала ^_^ backup'ы и restore проходят ^_^ Спасибо за ссылку на gfix ^_^
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 07 ноя 2008, 19:47
Название дистрибутива LInux и файловой системы, номера версий его ядра и libc возможно, будут представлять интерес. 2hvlad: кстати, о том же, наверное, следует допросить и Бегемотика.
-
Kotъ-Begemotъ
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Сообщение
Kotъ-Begemotъ » 16 ноя 2008, 01:50
Merlin писал(а):кстати, о том же, наверное, следует допросить и Бегемотика.
Не стОит. Бегемотик не дожидаясь пыток калёным железом всё рассказал dimitr'у
)) И как dimitr сказал, проблема действительно была в разнице версий. Хотя еще одну проблемку я отловил позже - когда делал скрипт с базы, для поля одной таблицы записалось
DEFAULT CURRENT_TIMESTAMP, Именно так - с запятой в конце... Понятно, что приводило это к невозможности вставки в данную таблицу при явно не заданном поле... Но изначальная причина, по словам dimitr'а - это разница в версиях, между linux - windows так как за этот "промежуток" были внесены изменения в BLR