Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Всем категорические приветы!

Мужчины, первым дело сразу говорю, что я весь дубовый в плане баз данных, но общие принципы представляю.
Так вот есть такая "чудо программа" МЕДОК, давеча вышла её новая версия с поддержкой FB 3 в котором есть много плюшек по сравнению со старой версией 2.1, так вот разработчик этой "чудо программы" предоставил инструкцию

[url=]https://www.medoc.ua/uk/faq/mgracja-na-firebird-3[/url] и программу (ConvertFB.exe) для конвертации базы,

но почитав её я пришёл к выводу, что мы имеем дело с обычным gfix и gbak с определёнными ключами для проверки базы и переводом ODS в версию 12.

Все делал по инструкции, и пришёл к вот такому сообщению


Summary of validation errors

Number of record level errors : 2
Number of Blob page errors : 2
Number of index page errors : 6
Number of database page errors : 360


При последующей конвертации процесс падает на вот этом моменте


gbak: writing data for table CARDSIGNIMG
gbak:20000 records written
gbak:40000 records written
gbak:60000 records written
gbak:80000 records written
gbak:100000 records written
gbak:120000 records written
gbak:140000 records written
gbak:160000 records written
gbak:180000 records written
gbak:200000 records written
gbak:220000 records written
gbak:240000 records written
gbak:260000 records written
gbak:280000 records written
gbak:300000 records written
gbak:320000 records written
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): BLOB not found
gds_$receive failed ---> BLOB not found


Получается всего два блоба портят всю малину, и я не могу воспользоваться всеми прелестями SMT, АЗАЗАЗА!!!

Вопрос, как можно найти этих двоих блобов и заменить их на NULL?

Всем спасибо, всем успеха!
26 мар 19, 10:07    [21843446]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
slavashkoda,

а обратится в их техподдержку не пробовал?
26 мар 19, 10:57    [21843504]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Симонов Денис, проблема явно не в их конвертере, проблема в том, что в базе повреждены две записи
я ещё и сам пробовал делать бекап/рестор средствами FB - результат тот же
26 мар 19, 11:10    [21843520]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
AltHasp
Member

Откуда:
Сообщений: 98
slavashkoda,

А что нельзы эти блобы выгрузить во внешние файлы, а потом импортировать во вновь созданную БД ?
26 мар 19, 12:13    [21843581]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Vlad F
Member

Откуда:
Сообщений: 816
slavashkoda,

Попробуй починить ее, руководствуясь этим http://www.ibase.ru/db_repair
Только потренируйся сначала на кошечках копии базы.
26 мар 19, 13:27    [21843688]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28015
slavashkoda,

сначала надо починить базу на 2.1, а когда она будет проходить бэкап-рестор, тогда уже ресторить на 3.0.

slavashkoda
Вопрос, как можно найти этих двоих блобов и заменить их на NULL?

для начала нужно запросом select *, char_length(blobfield) найти примерно где проблемная запись. Бэкап читает таблицу в натуральном порядке, так что уже ясно, что проблема где-то за 320000 записью.
Дальше уже тыкать с where id = ....
в конкретные записи, по очереди, пока не вылезет ошибка. Как нашли нужный id, тогда ему update table set blobfiield=null where id = ...
26 мар 19, 13:58    [21843745]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
kdv,

набрал такой код

http://prntscr.com/n39fyf

получил такой результат

http://prntscr.com/n39gmk

единственное, что заметил необычное - есть два блоба в которых сидят *.bmp файлы, по жирности они отличаются от всех, но их размер не критичен как по мне

http://prntscr.com/n39idk
26 мар 19, 21:17    [21844291]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
AltHasp,

хорошая и здравая идея, но проблема в том что у меня сам файл БД 72 гига и около 70% этого объёма это блобы именно из этой таблицы
26 мар 19, 21:18    [21844292]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Vlad F,

хорошая статья, особенно глава ДОПОЛНИТЕЛЬНЫЕ СПОСОБЫ РЕМОНТА БД
так как раз о блобах идёт речь

сделал такой код

SELECT
    CAST(SUBSTRING(IMG FROM 1 FOR 32000) AS VARCHAR(32000)) AS myblobfield,
    code
FROM        cardsignimg
where code between 320000 and 340000



но при выполнения никаких ошибок не вываливалось, и я по прежнему не могу найти повреждённый блоб и его code :(
26 мар 19, 21:29    [21844299]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Vlad F
Member

Откуда:
Сообщений: 816
slavashkoda,

Это Димы статья, AKA kdv. Но нах мне твой новый селект, - ты базу пытался чинить, чи не?
26 мар 19, 23:13    [21844361]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Vlad F,

что за манеры!

ты думаешь, не пытался? gfix'ом проходил и не раз и разными ключами, всё как Вы выражаетесь "нах"!
26 мар 19, 23:22    [21844363]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28015
slavashkoda,

блобы вообще плохо "чинятся". Селект с substring, видимо, не читает битый кусок.
Лет 20 назад я для починки аналогичных повреждений писал примитивную программу, которая через IBQuery
перебирает записи, сохраняя блоб в один временный файл (постоянно перетирая этот файл).
И для битых блобов сохраняла id записи. После чего блобы в этих записях обнулял руками (update set ... null...).
26 мар 19, 23:27    [21844369]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
hvlad
Member

Откуда:
Сообщений: 10405
slavashkoda
набрал такой код

http://prntscr.com/n39fyf

получил такой результат

http://prntscr.com/n39gmk
Полный фетч делай
26 мар 19, 23:32    [21844372]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
kdv,

это печально
есть ли шанс при помощи IBExpert'a сделать выгрузку таблицы cardsignimg, а позже импортировать обратно? починятся блобы или так и затянутся обратно повреждённые?
26 мар 19, 23:35    [21844373]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Vlad F
Member

Откуда:
Сообщений: 816
slavashkoda,

Я понял, вы в корне не верно понимаете значение выражение "нах", оно означает, - нах не сдалось.
Нах нам (ну или, по крайней мере, мне) ваш изобретательный селект? Тебя про селекты kdv подучал? -
ему про них и отвечай А, если пытался таки что-то чинить, даже безуспешно, то где все сопутствующие подробности?
26 мар 19, 23:35    [21844374]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Vlad F
Member

Откуда:
Сообщений: 816
slavashkoda
kdv,

это печально
есть ли шанс при помощи IBExpert'a сделать выгрузку таблицы cardsignimg, а позже импортировать обратно? починятся блобы или так и затянутся обратно повреждённые?

Поврежденные не затянутся, не боись. Но не факт, что они перед тем все выгрузятся, не споткнувшись.
P.S. Давно бы уже попробовал и нам рассказал. Там же всего-то, - пару кнопок нажать.
26 мар 19, 23:39    [21844378]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Vlad F,

ааа... я всё понял, впредь к Вам обращаться не буду, успехов!
26 мар 19, 23:39    [21844379]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
slavashkoda
Member

Откуда:
Сообщений: 9
Vlad F,

согласен, про пару кнопок))
сейчас поставлю выгружаться, бо там около 50 гигов блобов будет... утром напишу
26 мар 19, 23:41    [21844380]     Ответить | Цитировать Сообщить модератору
 Re: При конвертации базы из FB 2.1 в FB 3.0 вылез error BLOB  [new]
Vlad F
Member

Откуда:
Сообщений: 816
slavashkoda,

)).
26 мар 19, 23:51    [21844383]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить