Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Миграция с оракле в постгрес / 17 сообщений из 17, страница 1 из 1
04.04.2018, 03:08
    #39625286
SAS2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Кто уже мигрировал данные и как прошло?
...
Рейтинг: 0 / 0
04.04.2018, 09:35
    #39625349
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
SAS2014,

нормально
...
Рейтинг: 0 / 0
04.04.2018, 09:43
    #39625355
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
как два пальца... внатури
...
Рейтинг: 0 / 0
04.04.2018, 11:09
    #39625401
Andrej_f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
SAS2014Кто уже мигрировал данныеЯ мигрировал один проект на C++Builder (Oracle) и CMS e107 (MySQL).
SAS2014и как прошло?Не без трудностей в обоих случаях. С Ораклом основная проблема функции/процедуры (например, их вызов), с MySQL - синтаксис SQL запросов: всякие REGEXP, SUBSTRING_INDEX, DATE_FORMAT, YEAR и прочую фигню.
Короче, радость надолго.
...
Рейтинг: 0 / 0
05.04.2018, 03:10
    #39625807
SAS2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
вот функции и процедуры меня волнуют так как в базе их много
...
Рейтинг: 0 / 0
05.04.2018, 03:53
    #39625809
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
SAS2014вот функции и процедуры меня волнуют так как в базе их много

Если использовались пакеджи и пакетные переменные, то никак.
...
Рейтинг: 0 / 0
05.04.2018, 04:07
    #39625811
SAS2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
миграцию делали через ora2pg?
...
Рейтинг: 0 / 0
05.04.2018, 06:10
    #39625821
Andrej_f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
SAS2014миграцию делали через ora2pg?Да. С ней возни тоже не мало. Вот, например, выдержка из моего лога миграции (я вручную лог своих действий вел):автортекущая версия ora2pg некорректно определяет конец блоков
в случае:
begin
...
if ...
...
end if;
end;
убирая END IF;авторОшибка:
FATAL: ОШИБКА: значение не умещается в тип character varying(15)
Aborting export...

Решение:
пишем log_statement = 'all' в postgresql.conf, перезапускаем Postgresql:
service postgresql restart

смотрим лог и видим:
СООБЩЕНИЕ: выполнение <unnamed>: INSERT INTO tcar (cimei,cnomgos,ncarmarka,nfuel100,nwinterp,ndopp) VALUES ($1,$2,$3,$4,$5,$6)
ПОДРОБНОСТИ: параметры: $1 = 'E''214810''', $2 = 'NULL', $3 = '617', $4 = '30.3', $5 = '15', $6 = '0'
ОШИБКА: значение не умещается в тип character varying(15)
ОПЕРАТОР: INSERT INTO tcar (cimei,cnomgos,$ncarmarka,nfuel100,nwinterp,ndopp) VALUES ($1,$2,$3,$4,$5,$6)

когда импорт происходит из файла и параметр TYPE установлен в INSERT, то выполняется оператор:
INSERT INTO tcar (cimei,cnomgos,ncarmarka,nfuel100,nwinterp,ndopp) VALUES (E'214810',NULL,617,30.3,15,0);

когда импорт происходит напрямую из базы в базу, то получается избыток '
и даже E обрамляется ими (символ E это примочка PostgreSQL для указания,
что в строке могут использоваться Escape-символы).
Для отключения этой примочки при TYPE INSERT используется параметр:
STANDARD_CONFORMING_STRINGS
а при TYPE COPY:
NOESCAPE

Но никакие изменения этих параметров при при TYPE INSERT не помогли избавиться от ошибки,
и только при TYPE COPY экспорт/импорт из базы в базу проходит на ура (с любыми значениями
параметров STANDARD_CONFORMING_STRINGS и NOESCAPE).

Если хочешь, отправлю весь тебе, хоть мои грабли обойдёшь.
...
Рейтинг: 0 / 0
05.04.2018, 07:07
    #39625829
SAS2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Andrej_fSAS2014миграцию делали через ora2pg?Да. С ней возни тоже не мало. Вот, например, выдержка из моего лога миграции (я вручную лог своих действий вел):автортекущая версия ora2pg некорректно определяет конец блоков
в случае:
begin
...
if ...
...
end if;
end;
убирая END IF;авторОшибка:
FATAL: ОШИБКА: значение не умещается в тип character varying(15)
Aborting export...

Решение:
пишем log_statement = 'all' в postgresql.conf, перезапускаем Postgresql:
service postgresql restart

смотрим лог и видим:
СООБЩЕНИЕ: выполнение <unnamed>: INSERT INTO tcar (cimei,cnomgos,ncarmarka,nfuel100,nwinterp,ndopp) VALUES ($1,$2,$3,$4,$5,$6)
ПОДРОБНОСТИ: параметры: $1 = 'E''214810''', $2 = 'NULL', $3 = '617', $4 = '30.3', $5 = '15', $6 = '0'
ОШИБКА: значение не умещается в тип character varying(15)
ОПЕРАТОР: INSERT INTO tcar (cimei,cnomgos,$ncarmarka,nfuel100,nwinterp,ndopp) VALUES ($1,$2,$3,$4,$5,$6)

когда импорт происходит из файла и параметр TYPE установлен в INSERT, то выполняется оператор:
INSERT INTO tcar (cimei,cnomgos,ncarmarka,nfuel100,nwinterp,ndopp) VALUES (E'214810',NULL,617,30.3,15,0);

когда импорт происходит напрямую из базы в базу, то получается избыток '
и даже E обрамляется ими (символ E это примочка PostgreSQL для указания,
что в строке могут использоваться Escape-символы).
Для отключения этой примочки при TYPE INSERT используется параметр:
STANDARD_CONFORMING_STRINGS
а при TYPE COPY:
NOESCAPE

Но никакие изменения этих параметров при при TYPE INSERT не помогли избавиться от ошибки,
и только при TYPE COPY экспорт/импорт из базы в базу проходит на ура (с любыми значениями
параметров STANDARD_CONFORMING_STRINGS и NOESCAPE).

Если хочешь, отправлю весь тебе, хоть мои грабли обойдёшь.

Я пока разведку провожу и мнения людей кто уже прошел этот путь
...
Рейтинг: 0 / 0
05.04.2018, 07:08
    #39625830
SAS2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
но уже вижу что пляски и жесткий секс обеспечен если база большая и структура ее сложная
...
Рейтинг: 0 / 0
06.04.2018, 11:19
    #39626656
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
При любой СУБД - секс обеспечен.
По моему опыту стоит делать так:
1)Переносим структуру.
2)Адаптировать структуру под новую СУБД
3)Переписать код всех процедур
4)Если надо - адаптировать логику приложения.
Это придётся сделать, если понадобится хитрым образом управлять транзакциями, к примеру.
5)Осуществляем тестовую переливку данных из старой базы в новую тестовую.
6)Долго тестировать на копии боевых данных.
И потом в назначенный день миграции
останавливаем старую базу(подключения к ней)
Выгружаем данные в промежуточный формат(к примеру CSV).
Импортируем данные в новую базу. Postgres нормально с CSV работает, тем более, тест миграции
можно тоже провести.
Глушим старую базу и пускаем новую в боевой режим.
Как-то так. По-лёгкому всё равно не сделать, а таким способом - меньше проблем.
...
Рейтинг: 0 / 0
06.04.2018, 13:59
    #39626798
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Тут еще надо учитывать особенности работы постгресса, однако, разработчики это частенько игнорируют.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.11.2020, 17:36
    #40014954
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
ОКТОГЕН
При любой СУБД - секс обеспечен.
По моему опыту стоит делать так:
1)Переносим структуру.
2)Адаптировать структуру под новую СУБД
3)Переписать код всех процедур
4)Если надо - адаптировать логику приложения.
Это придётся сделать, если понадобится хитрым образом управлять транзакциями, к примеру.
5)Осуществляем тестовую переливку данных из старой базы в новую тестовую.
6)Долго тестировать на копии боевых данных.
И потом в назначенный день миграции
останавливаем старую базу(подключения к ней)
Выгружаем данные в промежуточный формат(к примеру CSV).
Импортируем данные в новую базу. Postgres нормально с CSV работает, тем более, тест миграции
можно тоже провести.
Глушим старую базу и пускаем новую в боевой режим.
Как-то так. По-лёгкому всё равно не сделать, а таким способом - меньше проблем.



Интересует 5 пункт
Осуществляем тестовую переливку данных из старой базы в новую тестовую.
для больших таблиц с кучей CLOB
прокатит ли импорт/экспорст в CSV

Задача перенсти данные из Оракла 12 (хитрого в частном облаке)
4 схемы
2 из них большие по данным ( Clob , Mat.View )
и связаны грантами друг с другом (перекрестные ссылки )

Если кто делал такое поделитесь
(как получить csv с оракла и залить их в PostGres )


Задача переписывания оракл. пакетов тоже стоит
но вначале хотелось бы понять каким образом переносить CLOB
и сделать это хотя бы на паре таблиц чтобы оценить возможность переноса в принципе.
...
Рейтинг: 0 / 0
03.11.2020, 17:59
    #40014973
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Я делал.

Програмка на Java, селектит из Oracle, COPY'ит в Postgre. Из проблем помню только, что в некоторых строчках попадались невалидные данные (например в поле number попадался NAN ).

исходный код не сохранился, но в принципе ничего сложно нет

p.s. база вроде была около 280-300 Gb.
...
Рейтинг: 0 / 0
04.11.2020, 10:32
    #40015154
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Leonid Kudryavtsev
Я делал.

Програмка на Java, селектит из Oracle, COPY'ит в Postgre. Из проблем помню только, что в некоторых строчках попадались невалидные данные (например в поле number попадался NAN ).

исходный код не сохранился, но в принципе ничего сложно нет

p.s. база вроде была около 280-300 Gb.


Проблема в том что я не знаю явы
но ок
а не было проблем с CLOB
и были ли mat.view что с ними ?
...
Рейтинг: 0 / 0
04.11.2020, 14:45
    #40015212
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Гулин Федор
прокатит ли импорт/экспорст в CSV

Как ты себе представляешь экспорт CLOB в CSV?..

Обломись, только прямая перекачка.
...
Рейтинг: 0 / 0
05.11.2020, 05:18
    #40015395
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Миграция с оракле в постгрес
Dimitry Sibiryakov
Как ты себе представляешь экспорт CLOB в CSV?..

если под CSV подразумевается нечто, для скармливания Pg COPY - то вроде элементарно, в HEX кодах или \uXX. AFAIK

а не было проблем с CLOB
Никаких проблем с CLOB/BLOB нет.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Миграция с оракле в постгрес / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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