powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
9 сообщений из 9, страница 1 из 1
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333760
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
апдейт базы для UTF8 делается не для всей базы, а для некоторых столбцов отдельных таблиц. проводятся следующие операции:

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

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


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

При попытке бакапить базу выдается сообщение:
Код: plaintext
1.
2.
3.
4.
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:Все обновление делается в пакете. Применяется для роботов. Есть базы, которые просто великолепно данную операцию производят, но есть и вот с таким случаем. Нужно знать как лечить такую штуку на будущее и в чем собственно проблема.
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333767
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

а чего не вот так

1) добавляется к таблице новый столбец TMP CHARACTER SET UTF8;
2) в этот столбец копируются данные из старого столбца;
3) старый столбец дропается;
4) переименовываем столбец TMP на имя которое было до этого
5) меняется позиция нового столбца
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333784
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Можно и так, но суть от этого не меняется. Хотя будет немного побыстрее.
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333812
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

а после каждого шага подтверждение транзакции делается? Или только одна транзакция на все шаги?
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333979
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Конечно после каждого. Иначе не находит новые столбцы.
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39333984
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdВ чем может быть засада?
Да в чём угодно, собственно. Новый столбец короче старого. Старый с кодировкой NONE и т.д.
и т.п. Надо смотреть какие именно данные отказываются читаться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39334016
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Из такой поврежденной базы я делал в IBExper полную выгрузку данных в скрипт. При этом ошибок о нечитаемости данных, а в часности arithmetic exception не наблюдалось. Беглый просмотр полученного скрипта на какие либо ошибки тоже ничего не дал.

Завтра попробую увеличить длинну временного столбца и сравнить размеры данных.
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39334120
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Дмитрий, еще вопрос: как можно узнать, какие данные отказывается читать?
...
Рейтинг: 0 / 0
FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
    #39334141
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ты это и на простом селекте вычислишь после перезаливки в TMP.
Делай полный фетч. Если не триллиарды записей, ручками двигаясь по резалт-сету увидишь последнюю удачно отфетченную запись.

Далее в оригинальной базе с той же сортировкой ищешь эту последнюю удачную и после неё будет искомое.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5 после апдейта к UTF8 базу невозможно бакапнуть
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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