|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Кто уже мигрировал данные и как прошло? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 03:08 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
SAS2014, нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 09:35 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
как два пальца... внатури ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 09:43 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
SAS2014Кто уже мигрировал данныеЯ мигрировал один проект на C++Builder (Oracle) и CMS e107 (MySQL). SAS2014и как прошло?Не без трудностей в обоих случаях. С Ораклом основная проблема функции/процедуры (например, их вызов), с MySQL - синтаксис SQL запросов: всякие REGEXP, SUBSTRING_INDEX, DATE_FORMAT, YEAR и прочую фигню. Короче, радость надолго. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 11:09 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
вот функции и процедуры меня волнуют так как в базе их много ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 03:10 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
SAS2014вот функции и процедуры меня волнуют так как в базе их много Если использовались пакеджи и пакетные переменные, то никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 03:53 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
миграцию делали через ora2pg? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 04:07 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
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). Если хочешь, отправлю весь тебе, хоть мои грабли обойдёшь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 06:10 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
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). Если хочешь, отправлю весь тебе, хоть мои грабли обойдёшь. Я пока разведку провожу и мнения людей кто уже прошел этот путь ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:07 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
но уже вижу что пляски и жесткий секс обеспечен если база большая и структура ее сложная ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:08 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
При любой СУБД - секс обеспечен. По моему опыту стоит делать так: 1)Переносим структуру. 2)Адаптировать структуру под новую СУБД 3)Переписать код всех процедур 4)Если надо - адаптировать логику приложения. Это придётся сделать, если понадобится хитрым образом управлять транзакциями, к примеру. 5)Осуществляем тестовую переливку данных из старой базы в новую тестовую. 6)Долго тестировать на копии боевых данных. И потом в назначенный день миграции останавливаем старую базу(подключения к ней) Выгружаем данные в промежуточный формат(к примеру CSV). Импортируем данные в новую базу. Postgres нормально с CSV работает, тем более, тест миграции можно тоже провести. Глушим старую базу и пускаем новую в боевой режим. Как-то так. По-лёгкому всё равно не сделать, а таким способом - меньше проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 11:19 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Тут еще надо учитывать особенности работы постгресса, однако, разработчики это частенько игнорируют. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2018, 13:59 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
ОКТОГЕН При любой СУБД - секс обеспечен. По моему опыту стоит делать так: 1)Переносим структуру. 2)Адаптировать структуру под новую СУБД 3)Переписать код всех процедур 4)Если надо - адаптировать логику приложения. Это придётся сделать, если понадобится хитрым образом управлять транзакциями, к примеру. 5)Осуществляем тестовую переливку данных из старой базы в новую тестовую. 6)Долго тестировать на копии боевых данных. И потом в назначенный день миграции останавливаем старую базу(подключения к ней) Выгружаем данные в промежуточный формат(к примеру CSV). Импортируем данные в новую базу. Postgres нормально с CSV работает, тем более, тест миграции можно тоже провести. Глушим старую базу и пускаем новую в боевой режим. Как-то так. По-лёгкому всё равно не сделать, а таким способом - меньше проблем. Интересует 5 пункт Осуществляем тестовую переливку данных из старой базы в новую тестовую. для больших таблиц с кучей CLOB прокатит ли импорт/экспорст в CSV Задача перенсти данные из Оракла 12 (хитрого в частном облаке) 4 схемы 2 из них большие по данным ( Clob , Mat.View ) и связаны грантами друг с другом (перекрестные ссылки ) Если кто делал такое поделитесь (как получить csv с оракла и залить их в PostGres ) Задача переписывания оракл. пакетов тоже стоит но вначале хотелось бы понять каким образом переносить CLOB и сделать это хотя бы на паре таблиц чтобы оценить возможность переноса в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 17:36 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Я делал. Програмка на Java, селектит из Oracle, COPY'ит в Postgre. Из проблем помню только, что в некоторых строчках попадались невалидные данные (например в поле number попадался NAN ). исходный код не сохранился, но в принципе ничего сложно нет p.s. база вроде была около 280-300 Gb. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 17:59 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Я делал. Програмка на Java, селектит из Oracle, COPY'ит в Postgre. Из проблем помню только, что в некоторых строчках попадались невалидные данные (например в поле number попадался NAN ). исходный код не сохранился, но в принципе ничего сложно нет p.s. база вроде была около 280-300 Gb. Проблема в том что я не знаю явы но ок а не было проблем с CLOB и были ли mat.view что с ними ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 10:32 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Гулин Федор прокатит ли импорт/экспорст в CSV Как ты себе представляешь экспорт CLOB в CSV?.. Обломись, только прямая перекачка. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 14:45 |
|
Миграция с оракле в постгрес
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Как ты себе представляешь экспорт CLOB в CSV?.. если под CSV подразумевается нечто, для скармливания Pg COPY - то вроде элементарно, в HEX кодах или \uXX. AFAIK а не было проблем с CLOB Никаких проблем с CLOB/BLOB нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 05:18 |
|
|
start [/forum/topic.php?fid=53&msg=39625830&tid=1994395]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 560ms |
0 / 0 |