Ошибка после восстановления БД.

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Ошибка после восстановления БД.

Сообщение tvv » 22 фев 2012, 15:01

Добрый день!

Восстановление производится на VM Centos Linux.
Firebird 2.1
После восстановления БД в LOG-файле появляются сообщение:

gbak:cannot commit index TDOCUMENTS_IDX2
gbak: ERROR:operating system directive open failed
gbak: ERROR: No such file or directory

Подскажите, пожалуйста!
Что gbak не может открыть, или не может найти ???

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Ошибка после восстановления БД.

Сообщение Dimitry Sibiryakov » 22 фев 2012, 15:38

Место для временных файлов.

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 24 фев 2012, 09:15

Добрый день!

На /tmp - доступно 1.8 Gb.
Переменная TMP=/var/111
На /var - 6.4 Gb.
Восстановленная БД располагается на /var и весит 3.6 Gb.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Ошибка после восстановления БД.

Сообщение kdv » 24 фев 2012, 15:08

смотрите в tmp, пока создаются индексы на этапе рестора. Может у вас по количеству файлов ограничение, или по размеру.

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 27 фев 2012, 16:47

Переменная TMP направлена на /tmp
TMP=/tmp

/tmp - 7.4 Gb

В IBExpert выполняю команду на индексе, который не создался:
ALTER INDEX "@TMPSORT_IDX2" ACTIVE
Появляется сообщение:
____________________________________________________
can't format message 13:98 - message system code -4
operating system directive open failed
No such file or directory
____________________________________________________

Собщение аналогичное, что и при восстановление БД командой gbak.
Похоже, что-то не настроено.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка после восстановления БД.

Сообщение hvlad » 27 фев 2012, 16:51

tvv писал(а):Переменная TMP=/var/111
Этот подкаталог физически есть ? Firebird'у доступен ?

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 28 фев 2012, 11:18

Каталог /var/111 создан.
./fbserver - стартован.

Может не хватать оперативной памяти при создании индексов?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка после восстановления БД.

Сообщение hvlad » 28 фев 2012, 13:41

Что-то много нестыковок в показаниях:
На /tmp - доступно 1.8 Gb.
Переменная TMP=/var/111
На /var - 6.4 Gb.
не стыкуется с
Переменная TMP направлена на /tmp
TMP=/tmp

/tmp - 7.4 Gb
А это
gbak:cannot commit index TDOCUMENTS_IDX2
отличается от этого
В IBExpert выполняю команду на индексе, который не создался:
ALTER INDEX "@TMPSORT_IDX2" ACTIVE
Далее
Каталог /var/111 создан.
Я ещё о правах спрашивал.

Cколько записей в таблице с непостроившимся индексом и каков размер индексируемых полей ?

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 28 фев 2012, 16:41

Таблица по которой строится индекс 16 млн. записей
Поля по которым строится индекс
CONID - BIGINT
GID - BIGINT
TYPREC - CHAR 1

Выполнил CREATE INDEX из утилиты isql.

SQL> CREATE INDEX "@TMPSORT_IDX2" ON "@TMPSORT" (CONID, GID, TYPREC);
Statement failed, SQLCODE = -902
operating system directive open failed
-No such file or directory

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка после восстановления БД.

Сообщение hvlad » 28 фев 2012, 18:35

Cколько раз нужно задать вопрос, чтобы получить ответ ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Ошибка после восстановления БД.

Сообщение kdv » 28 фев 2012, 21:03

если ошибка возникает сразу при попытке выполнить команду - значит или нет папки temp или к ней нет прав (у Firebird).

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 29 фев 2012, 10:32

Добрый день!

Сейчас в LINUX определено так:
TEMP=/var/temp - rwx rwx rwx firebird firebird
TMP=/tmp - rwx rwx rwx root root

/tmp - доступно 7.4 Gb
/var - доступно 6.3 Gb

./fbserver - перестартован.

tvv
Сообщения: 13
Зарегистрирован: 22 фев 2012, 13:00

Re: Ошибка после восстановления БД.

Сообщение tvv » 29 фев 2012, 12:44

Добрый день!

Всем СПАСИБО!!!
Нашел в conf нужный temp.
После настройки всё заработало.

Ответить