проблема с базой firebird

Lera

Участник
Привет, есть небольшая программка - АРМ сотрудника, в основе которой лежит субд firebird, обрабатываемые данные лежат тоже в базе. После обновления версии ПО и соответственно обновления бд, база перестала работать. :recovery:
Критическая ситуация
Ошибка при обновлении БД - Unsuccesfull metadata update / failed attempt to store duplicate value (visible to active transactions)
image_150.png
Разработчик ПО прислал инструкции и bat файлик со следующими командами:
Код:
gfix -user SYSDBA -password masterkey DATA.fdb -mend -ignore
gbak -user SYSDBA -password masterkey -b -l -ignore -g -v DATA.fdb DATA.fbk
gbak -user SYSDBA -password masterkey -c -rep -v DATA.fbk DATA.fdb
Толком где его выполнять и чего делать тоже не объяснили.
Естественно батник не работает на компе.

Подскажите что такое gfix и gbak в коде скрипта?
 

Fedor

Участник
gbak является программой, которая подсоединяется к базе данных, стартует транзакцию snapshotLINK, и затем сохраняет в специальный файл метаданные (описания таблиц, процедур, триггеров и т. д.) и данные (запросами select * from tablename).

Gfix - утилита для починки БД, спасает но не всегда. Лучше использовать IBSurgeon FirstAid
Как ими пользоваться http://firebirdsql.su/doku.php?id=gbak
 

Razer

Случайный прохожий
надо запускать из каталога где лежат эти утилиты
 

Cocos

Случайный прохожий
читайте матчасть
Ошибки при создании метаданных

Создание индекса с существующим именем

Код:
CREATE INDEX COUNTRY_IDX1 ON COUNTRY (CURRENCY);
CREATE INDEX COUNTRY_IDX1 ON COUNTRY (CURRENCY);
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$INDICES failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_5»


Создание генератора с существующим именем
Код:
CREATE generator test;
CREATE generator test;
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE GENERATOR failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_11».


Создание таблицы с одноименными полями

Код:
CREATE TABLE test(x INT, x VARCHAR(30));
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATION_FIELDS failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_15».


Создание процедуры с одноименными полями

Код:
CREATE PROCEDURE test (t INT) RETURNS (t VARCHAR(30))
AS
BEGIN
END;
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$PROCEDURE_PARAMETERS failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_18».

Создание домена с существующим именем
Код:
CREATE DOMAIN test SMALLINT;
CREATE DOMAIN test SMALLINT;
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$FIELDS failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_2».

Создание триггера с существующим именем

Код:
CREATE TRIGGER country_bi0 FOR country
active BEFORE INSERT POSITION 0
AS
BEGIN
  /* Trigger text */
END;
CREATE TRIGGER country_bi0 FOR country
active BEFORE INSERT POSITION 0
AS
BEGIN
  /* Trigger text */
END;
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE TRIGGER failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_8».

Создание UDF с существующим именем

Код:
DECLARE EXTERNAL FUNCTION DIV
    INTEGER,
    INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION DIV
    INTEGER,
    INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf';
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE FUNCTION failed.
attempt to store duplicate value (visible to active transactions) in unique index «RDB$INDEX_9».

http://firebirdsql.su/doku.php?id=oshibki_pri_sozdanii_metadannyx
 
Последнее редактирование модератором:
Верх Низ