Страница 1 из 1

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

Добавлено: 22 фев 2012, 15:01
tvv
Добрый день!

Восстановление производится на 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 не может открыть, или не может найти ???

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

Добавлено: 22 фев 2012, 15:38
Dimitry Sibiryakov
Место для временных файлов.

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

Добавлено: 24 фев 2012, 09:15
tvv
Добрый день!

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

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

Добавлено: 24 фев 2012, 15:08
kdv
смотрите в tmp, пока создаются индексы на этапе рестора. Может у вас по количеству файлов ограничение, или по размеру.

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

Добавлено: 27 фев 2012, 16:47
tvv
Переменная 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.
Похоже, что-то не настроено.

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

Добавлено: 27 фев 2012, 16:51
hvlad
tvv писал(а):Переменная TMP=/var/111
Этот подкаталог физически есть ? Firebird'у доступен ?

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

Добавлено: 28 фев 2012, 11:18
tvv
Каталог /var/111 создан.
./fbserver - стартован.

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

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

Добавлено: 28 фев 2012, 13:41
hvlad
Что-то много нестыковок в показаниях:
На /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колько записей в таблице с непостроившимся индексом и каков размер индексируемых полей ?

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

Добавлено: 28 фев 2012, 16:41
tvv
Таблица по которой строится индекс 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

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

Добавлено: 28 фев 2012, 18:35
hvlad
Cколько раз нужно задать вопрос, чтобы получить ответ ?

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

Добавлено: 28 фев 2012, 21:03
kdv
если ошибка возникает сразу при попытке выполнить команду - значит или нет папки temp или к ней нет прав (у Firebird).

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

Добавлено: 29 фев 2012, 10:32
tvv
Добрый день!

Сейчас в 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 - перестартован.

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

Добавлено: 29 фев 2012, 12:44
tvv
Добрый день!

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