Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.05;
Скачать: CL | DM;

Вниз

Ошибка восстановления базы   Найти похожие ветки 

 
Roma111   (2002-11-15 10:12) [0]

Здравствуйте знатоки,
есть база, работающая в FireBird, 4.3 Мб, 34 таблицы, работает в основном на добавление данных. Происходит регулярный Backup. C недавнего времени база перестала восстанавливаться из Backup. Выдается ошибка "Arithmetic exception, numeric overflow, or string truncation". Это происходит, как видно из сообщения, после начала восстановления одной из таблиц "DATA_LOG". Я проверял все таблицы нормально читаются.
Кто что знает, помогите...


 
KDS ©   (2002-11-15 10:42) [1]

Проверь тип полей и тип данных, которые туда вставляются.
Возможно автоинкрементное поле поле имеет тип SMALLINT (до 32767)
А текущее состояние генератора уже больше. Проверь длину строчных полей. Была ли реструктуризация?


 
Roma111   (2002-11-15 10:53) [2]

KDS,
нет генераторы у меня ~8000, типы ключевых полей - INTEGER.
А что со строчными полями, они у меня Varchar длиной от 20 до 500, могут быть с ними проблеммы.
Еще, что значит реструктуризация?


 
Prooksius ©   (2002-11-15 12:53) [3]

2 KDS © (15.11.02 10:42)
А причем здесь генераторы? При ресторе ведь не используются генераторы для вставки в "автоинкрементные" поля. Это если в рабочей базе такое случается, то да.

2Roma111 (15.11.02 10:53)
Попробуй проделать валидэйшн, может это что-то выяснит.


 
Roma111   (2002-11-15 13:45) [4]

Prooksius
Запускал Validation из IBConsole, выдало все нормально -
No database validation errors were found.
Я обнаружил интересную вещь - при Restore база частично восстанавливается, создаются все таблицы, вьеры, и т.д., но заполняются не все. В одной таблице Data_zel оказалась всего одна запись. Что может быть неисправно в таблице. Раньше ведь целый месяц процесс Backup-Restore протекал без проблем.


 
Prooksius ©   (2002-11-15 14:15) [5]

Посмотри, на какой строчке заканчиваются данные. Что может быть не так в следующей строчке (которая уже не попала в базу). Я надеюсь, ты сохранил базу (сам GDB), или поверх существующей restore делаешь?
Ты мог изменить длину поля, а данные поля оставил теми же. И какое-то поле(я) оказалось(лись) больше, чем надо. Вот у тебя и ругается restore.


 
Roma111   (2002-11-15 15:01) [6]

Эврика, я открыватель еще одного глюка IB6.
Я недавно добавил в эту таблицу DATA_ZEL поле
PROLONGATION INTEGER NOT NULL
при выполнении select оно на всех записях показывалось 0, а на самом деле было NULL. После
update data_zel set prolongation=0
процесс UPDATE-RESTORE идет без проблем.


 
Prooksius ©   (2002-11-15 16:07) [7]

А где (в какой программе) ты добавлял это поле?


 
Roma111   (2002-11-15 17:33) [8]

IBConsole



Страницы: 1 вся ветка

Текущий архив: 2002.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
7-14839
Azbul
2002-10-05 07:23
2002.12.05
Как установить системнок время


4-14886
Tihas
2002-10-10 03:13
2002.12.05
У меня вопросик как работать правильно с MoveWindow


3-14359
seter
2002-11-15 10:47
2002.12.05
Подскажите чайнику как програмно очичтить БД


1-14559
Сергей_М
2002-11-23 21:19
2002.12.05
Отркрыть файл в HEX формате


7-14846
crush_fm
2002-10-01 20:37
2002.12.05
CPU