Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка gbak "ERROR:validation error for column" / 17 сообщений из 17, страница 1 из 1
08.12.2015, 12:43
    #39123105
obtim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
С целью очистки базы *.gdb были выполнены следующие операции
1. gfix -shut –force 10 -user <USER_IB> -pass <PASSWORD_IB> имя файла.gdb
2. gbak -b -user <USER_IB> -pass <PASSWORD_IB> -v -g имя файла.gdb имя файла.bak
3. Удален текущий filial02.gdb 4. gbak -user <USER_IB> -pass <PASSWORD_IB> -c -v имя файла.bak имя файла.gdb
Во время операции восстановления получена ошибка gbak: ERROR:validation error for column "REPL$CHANGELOG"."MODIFYDATE", value "*** null ***" gbak: ERROR:warning -- record could not be restored
Т.к. восстановление было завершено некорректно, то вернул исходный имя файла.gdb(был сохранен).
После чего база заработала в штатном режиме. Насколько понимаю, индекс-битый в исходных данных(поиск идет по индексу).
В FireBird не силен и не до конца понимаю: как надо решать проблему?
...
Рейтинг: 0 / 0
08.12.2015, 12:46
    #39123109
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtim,

поле MODIFYDATE таблицы REPL$CHANGELOG содержит значение NULL, при этом на нём выставлено ограничение NOT NULL. Видать оно было добавлено уже после того как в этой таблице были данные.
...
Рейтинг: 0 / 0
08.12.2015, 13:01
    #39123126
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtim> 3. Удален текущий filial02.gdb 4. gbak -user <USER_IB> -pass <PASSWORD_IB> -c -v имя файла.bak имя файла.gdb

Про причину ошибки Денис уже подсказал,
я лишь добавлю, что алгоритм неправильный -
надо третьим пунктом делать не удаление
файла текущей БД, а restore (в файл с другим
именем, отличный от оригинальной БД) и при
его успешном завершении удаление старого
файла и переименование нового.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2015, 13:23
    #39123163
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtimУдален текущий filial02.gdb
стыдоба
12 типичных ошибок при бэкапе баз данных

чинить конкретную проблему - весьма геморройно:
http://www.ibase.ru/devinfo/db_repair.htm#col_add

можно, конечно, в опции рестора попробовать добавить опцию -no_validity, вдруг поможет (хотя не должно).
...
Рейтинг: 0 / 0
08.12.2015, 13:57
    #39123208
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
kdv> чинить конкретную проблему - весьма геморройно:

У них оригинал БД есть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2015, 14:27
    #39123256
obtim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
Симонов Денисobtim,

поле MODIFYDATE таблицы REPL$CHANGELOG содержит значение NULL, при этом на нём выставлено ограничение NOT NULL. Видать оно было добавлено уже после того как в этой таблице были данные.
Правильно понимаю: ручной поиск по таблице на предмет Null. Удаление. Дальше проверка через бэкап-ресторе?
...
Рейтинг: 0 / 0
08.12.2015, 14:30
    #39123259
obtim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
Похоже я всех ввел немного в заблуждение: ПРОБЛЕМЫ С ВОССТАНОВЛЕНИЕМ БД НЕТ. ОНА БЫЛА СОХРАНЕНА ПЕРЕД ОПЕРАЦИЯМИ ПРИ ОТКЛЮЧЕННЫХ ПОЛЬЗОВАТЕЛЯХ. ВСЯ ОПЕРАЦИЯ ПРОВОДИТСЯ С ЦЕЛЬЮ ОЧИСТКИ ОТ "МУСОРА" И УБЫСТРЕНИЯ. ВОПРОС ИМЕННО ПО ОШИБКЕ, КОТОРАЯ ВОЗНИКАЕТ ПРИ ВОССТАНОВЛЕНИИ БД.
...
Рейтинг: 0 / 0
08.12.2015, 14:32
    #39123261
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtim,

почему же сразу удаление. Можно значение в это поле записать, если оно по смыслу будет подходить.
...
Рейтинг: 0 / 0
08.12.2015, 14:34
    #39123264
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
мусор чистит "cборка мусора" а не gbak.
"ускорение" же достигается за счёт оптимизации запросов и правильной структуры данных.

gbak применяют таки для резервной копии, а не для вышеперечисленного.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2015, 14:44
    #39123275
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtimВСЯ ОПЕРАЦИЯ ПРОВОДИТСЯ С ЦЕЛЬЮ ОЧИСТКИ ОТ "МУСОРА" И УБЫСТРЕНИЯ.Цель благая, только относительно выбранной цели ваши действия - это "прыжок в ширину". Да, после Б/Р размер БД может стать ненадолго немного меньше исходного, только ожидаемый эффект от этого несколько преувеличен.
...
Рейтинг: 0 / 0
08.12.2015, 15:36
    #39123343
Секретное имя пользователя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
Если исходная база есть, то вот это покажет, где нуллы (gbak сразу вываливается, как только встречает одну ошибку, а если их там больше ?)
работает долго, читает всё, что есть в базе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
execute block
returns (
  TABLE_NAME varchar(32),
  DESCR      varchar(15000))
AS
  declare S  varchar(15000);
  declare S2 varchar(15000);
  declare S3 varchar(15000);
begin
  for
    select
        TRIM(RDB$RELATION_NAME),
        LIST(' or ' || TRIM(RDB$FIELD_NAME) || ' is null',''),
        LIST('case when sum(case when ' || TRIM(RDB$FIELD_NAME) || ' is null then 1 end)>0 then '', '||TRIM(RDB$FIELD_NAME) || ':'' || sum(case when ' || TRIM(RDB$FIELD_NAME) || ' is null then 1 end) else '''' end','||')
      from RDB$RELATION_FIELDS
      where coalesce(RDB$SYSTEM_FLAG,0) = 0
      and coalesce(RDB$NULL_FLAG,0) != 0
      group by 1
    into TABLE_NAME, S, S2
  do
    begin
      DESCR = NULL;
      S3='select '||S2||' from '||TABLE_NAME||' where 1=0 '||S;

      execute statement S3 into DESCR;

      if (char_length(DESCR)>0) then suspend;
    end
end

...
Рейтинг: 0 / 0
08.12.2015, 21:49
    #39123663
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtim> ВСЯ ОПЕРАЦИЯ ПРОВОДИТСЯ С ЦЕЛЬЮ ОЧИСТКИ ОТ "МУСОРА" И УБЫСТРЕНИЯ

Так для этого sweep надо запускать, ночером.
А gbak (как backup, так и restore) тоже нужно,
но для других целей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.12.2015, 07:01
    #39123735
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
Вообще говоря, у товарисча, судя по расширению GDB база работает давно и подрастает весьма заметно.
Так же судя по тому что вопрос перебэкапа вызывал проблемы, причем связанные вероятно с не совсем корректной доработкой базы на производстве - опять же, перебэкап никогда не делался.

А он ведь нужен иногда что бы например счетчики транзакций сбросить.
...
Рейтинг: 0 / 0
09.12.2015, 09:08
    #39123779
obtim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
Если под перебэкапом подразумевается бэкап-ресторе, то последний раз делалось месяца 2 назад. Сама по себе база от программы, которая на данный момент не поддерживается разработчиком.
...
Рейтинг: 0 / 0
09.12.2015, 10:38
    #39123874
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtimбэкап-ресторе, то последний раз делалось месяца 2 назад.
О, брат! Да ты не видал ещё сдыхающих без предупреждения дисков или внезапно рассыпающихся в пыль RAID-массивов, или не поднимающихся после выключения электропитания серверов?!
Задумайся. http://ibase.ru/devinfo/sys_failure.htm
...
Рейтинг: 0 / 0
09.12.2015, 11:00
    #39123899
obtim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
o_v_aobtimбэкап-ресторе, то последний раз делалось месяца 2 назад.
О, брат! Да ты не видал ещё сдыхающих без предупреждения дисков или внезапно рассыпающихся в пыль RAID-массивов, или не поднимающихся после выключения электропитания серверов?!
Задумайся. http://ibase.ru/devinfo/sys_failure.htm
Похоже я продолжаю упорно плохо объяснять :(
У нас есть схема бэкапа. Он делается каждый день. В схеме бэкапа предусмотрена проверка. В данный момент она "совпала" с "оптимизацией базы". Прошлый раз рестор делался около двух месяцев назад.
П.С. Всем спасибо за все советы!
...
Рейтинг: 0 / 0
09.12.2015, 11:21
    #39123916
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка gbak "ERROR:validation error for column"
obtimП.С. Всем спасибо за все советы!
Просто глаз за потенциальные грабли зацепился по ходу темы. Вильнуло.
Но если тебя всё устраивает и в случае неустранимого сбоя базы актуальность восстановленных из бэкапа данных (а он всегда восстановим?) приемлема при данной схеме организации бэкапа, то "у меня больше нет вопросов к докладчику".
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка gbak "ERROR:validation error for column" / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]