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

Откуда:
Сообщений: 80
Здравствуйте, понадобилось опустить версию БД FireBird с 3.0 до 2.5. Самый рабочий вариант оказался взять утилиту gbak от версии 2.5 и ей сделать копию базы 3.0 и восстановить ее на сервер 2.5. Но при ресторе получаю ошибку : ERROR:invalid request BLR at offset 8052; BLR syntax error: expected valid BLR code at offset 8053, encountered 203. При этом восстановление переносит все таблицы, а спотыкается на VIEW.
Все остальные рассмотренные варианты тормозят процесс восстановление на старте и пишут : unsupported on-disk structure for file C:\MyBase.FDB; found 12.0, support 11.2.
15 июн 20, 17:53    [22151179]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50345

tarakan
Самый рабочий вариант

....который не работает, ага.

Значит тебе остался только один путь: создавай пустую базу из исходного скрипта и
перекачивай данные, например, IBDataPump-ом. Ссылка на версию, работающую с тройкой должна
быть в закреплённых темах.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 17:58    [22151185]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
tarakan
Member

Откуда:
Сообщений: 80
Спасибо за вариант, но .... мне нужно это сделать несколько раз. И каждый раз переливать данные - это будет долго...
15 июн 20, 18:00    [22151187]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50345

Во-первых, не дольше, чем бэкап-ресторе.
Во-вторых, это быстрее, чем писать на форуме.
В-третьих, ты можешь это заскриптовать, так что на "несколько раз" хватит вызова одного
батника.

Posted via ActualForum NNTP Server 1.5

15 июн 20, 18:02    [22151188]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
hvlad
Member

Откуда:
Сообщений: 10955
tarakan
Здравствуйте, понадобилось опустить версию БД FireBird с 3.0 до 2.5. Самый рабочий вариант оказался взять утилиту gbak от версии 2.5 и ей сделать копию базы 3.0 и восстановить ее на сервер 2.5
Это правильно.

tarakan
Но при ресторе получаю ошибку : ERROR:invalid request BLR at offset 8052; BLR syntax error: expected valid BLR code at offset 8053, encountered 203. При этом восстановление переносит все таблицы, а спотыкается на VIEW.
Замени в исходной БД тело этой VIEW на пустое с такими же полями (чтобы зависимости от неё не нарушить).
Затем попробуй ещё раз, можно просто бекап метаданных (ключ -m), рестор как обычно.
Если получилось - повезло, можно делать нормальный бекап и потом после рестора вернуть VIEW обратно.

Если не повезёт - есть более радикальный способ с созданием скрипта всех PSQL объектов (процедуры, триггеры, вьюхи, вычислимые поля и т.п.), удалением этих объектов из исходной БД, бекап\рестор как обычно и накат скрипта для пересоздания PSQL объектов.
15 июн 20, 18:08    [22151190]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
tarakan
Member

Откуда:
Сообщений: 80
hvlad
Замени в исходной БД тело этой VIEW на пустое с такими же полями (чтобы зависимости от неё не нарушить).

Дело в том, что я не знаю на какой именно view он спотыкается, их там 32 штуки.
15 июн 20, 18:11    [22151192]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
hvlad
Member

Откуда:
Сообщений: 10955
tarakan
hvlad
Замени в исходной БД тело этой VIEW на пустое с такими же полями (чтобы зависимости от неё не нарушить).

Дело в том, что я не знаю на какой именно view он спотыкается, их там 32 штуки.
Откуда тогда известно, что дело во VIEW ?


PS данная конкретная ошибка возникла из-за использования CASE или DECODE - для них FB3 использует новый BLR код, а FB2.х его не понимает.

PPS так ли уж нужно переходить назад на 2.5 ?
15 июн 20, 18:16    [22151195]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
tarakan
Member

Откуда:
Сообщений: 80
hvlad
Откуда тогда известно, что дело во VIEW ?

После рестора открываю БД, а в ней есть все, кроме VIEW и STORED_PROCEDURE.
hvlad
PPS так ли уж нужно переходить назад на 2.5 ?

Да... нужно... навесили геморой...
hvlad

PS данная конкретная ошибка возникла из-за использования CASE или DECODE - для них FB3 использует новый BLR код, а FB2.х его не понимает

А вот за это разъяснение ОГРОМНОЕ СПАСИБО. Теперь знаю где копать!
15 июн 20, 18:23    [22151200]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
hvlad
Member

Откуда:
Сообщений: 10955
tarakan
После рестора открываю БД, а в ней есть все, кроме VIEW и STORED_PROCEDURE.
Если проблема только в этом, то пересоздать их из скрипта - проще простого.
15 июн 20, 18:48    [22151210]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
AltHasp
Member

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

ИМХО,
1) ibeblock (Extract Matadata from OLD_DB, Extract tables into csv file);
2) IbeScript (Recreate metadata on New_DB+Import tables from csv file);
3) В bat-файл передаете как параметр путь и имя старой и новой базы.
Это максисально быстро и времени для создания скрипта понадобится около 10 минут.
Попробуйте.
Удачи!
16 июн 20, 08:34    [22151344]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
tarakan
Member

Откуда:
Сообщений: 80
Всем спасибо. Очень помогли!
16 июн 20, 08:41    [22151346]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
sysdba22
Member

Откуда:
Сообщений: 252
hvlad
tarakan
Здравствуйте, понадобилось опустить версию БД FireBird с 3.0 до 2.5. Самый рабочий вариант оказался взять утилиту gbak от версии 2.5 и ей сделать копию базы 3.0 и восстановить ее на сервер 2.5
Это правильно.


А 4.0 -> 3.0 тоже так получится? Т.е. берем gbak 3.0 подключаемся к серверу 4.0 делаем бэкап базы и потом восстанавливаем на 3.0?
17 июн 20, 12:37    [22152267]     Ответить | Цитировать Сообщить модератору
 Re: Firebird понижение версии БД  [new]
hvlad
Member

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

да, должно
17 июн 20, 13:01    [22152293]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить