Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

FB2.5 после апдейта к UTF8 базу невозможно бакапнуть

$
0
0
апдейт базы для UTF8 делается не для всей базы, а для некоторых столбцов отдельных таблиц. проводятся следующие операции:

удаляются все триггера, вьюшки и процедуры.

автор
1) добавляется к таблице новый столбец TMP CHARACTER SET UTF8;
2) в этот столбец копируются данные из старого столбца;
3) старый столбец дропается;
4) создается новый с тем же именемс CHARACTER SET UTF8;
5) меняется позиция нового столбца со старым;
6) копируются данные из TMP в новый столбец;
7) дропается TMP.


после этого идет сравнение метаданных базы со скриптом создания и востанавливаются все процедуры и триггеры.

При попытке бакапить базу выдается сообщение:
Arithmetic overflow or division by zero has occured.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.
gds_$receive failed.
Exiting before completion due to error.


При этом сама база вроде как рабочая. Все данные читаются и все замечательно. Сначала такое сообщение выбрасывало после строчки обработки какогото индекса.
Попробовал для всех индексов применить 'SET STATISTIK INDEX' бакап сразу же выкидывает такое сообщение.

FB2.5
Все скриптовые операции производятся IBEScript и если сключить конвертацию столбцов , то все проходит замечательно.

В чем может быть засада?

PS:Все обновление делается в пакете. Применяется для роботов. Есть базы, которые просто великолепно данную операцию производят, но есть и вот с таким случаем. Нужно знать как лечить такую штуку на будущее и в чем собственно проблема.

Viewing all articles
Browse latest Browse all 1677

Trending Articles