Передача данных между разными СУБД - PullRequest
3 голосов
/ 01 марта 2011

Я хотел бы перенести всю базу данных, имеющуюся в Informix, в Oracle.У нас есть приложение, которое работает с обеими базами данных, один из наших клиентов переходит с Informix на Oracle, и ему необходимо перенести всю базу данных на Oracle (структура одинакова).

Нам часто нужно передавать данные между oracle / Mssql / Informix, иногда только одной таблицей, а не всей базой данных.

Кто-нибудь знает о какой-нибудь хорошей программе, которая выполняет такую ​​работу?

Ответы [ 5 ]

4 голосов
/ 07 марта 2011

Pentaho Интеграция данных ETL инструменты доступны с открытым исходным кодом (также известный под прежнимимя "Чайник") для миграции между базами данных и многих других вариантов использования.

Из их таблицы данных:

Общие случаи использования

  • Хранилище данныхзаполнение со встроенной поддержкой медленно меняющихся измерений, нежелательных измерений
  • Экспорт баз данных в текстовые файлы или другие базы данных
  • Импорт данных в базы данных, начиная от текста-файлы к листам Excel
  • Миграция данных между приложениями базы данных
  • ...

Список форматов ввода / вывода данных можно найти впринятый ответ на этот вопрос: Кто-нибудь знает список списка соединителей Pentaho Data Integration (Kettle)? Он поддерживает все базы данных с драйвером JDBC, что означает большинство из них.

1 голос
/ 15 февраля 2013

sqlldr - Утилита импорта Oracle

Вот что я сделал для передачи 50 ТБ данных из MySQL в ORacle.Сгенерировал CSV-файлы из MySql и использовал утилиту sqlldr в oracle для экспорта всех данных из файлов в oracle db.Это самый быстрый способ импорта данных.Я исследовал это в течение нескольких недель и выполнил множество тестовых примеров, и sqlldr - лучший и самый быстрый способ импорта в oracle.

1 голос
/ 01 марта 2011

вы можете попробовать Oracle Migration Workbench.См. http://download.oracle.com/docs/html/B15858_01/toc.htm Если вы хотите читать данные Informix в Oracle на регулярной основе, использование гетерогенных служб может быть лучшим вариантом.Проверьте hs4odbc или dg4odbc, в зависимости от имеющейся у вас версии Oracle.

Надеюсь, это поможет, Рональд.

1 голос
/ 01 марта 2011

Я делал это в прошлом, и это не тривиальная задача.В итоге мы записали каждую таблицу в плоский файл с разделителями каналов и перезагрузили каждую таблицу в Oracle с помощью Oracle SQL Loader.Было множество сценариев Perl для очистки исходных данных и сценариев оболочки для максимально возможной автоматизации процесса и параллельной работы.

Поправки, которые могут появиться: 1. Выберите разделитель, который настолько уникален, насколько это возможно.2. Постарайтесь найти типы данных, которые максимально приближены к типу Informix.то есть дата и время 3. Постарайтесь сделать данные максимально чистыми, прежде чем выгружать плоские файлы.4. Скорее всего, HS будет слишком медленным.

Это было сделано много лет назад.Возможно, вы захотите исследовать программное обеспечение Golden Gate (в настоящее время принадлежащее Oracle), которое может помочь в этом процессе (когда я это делал, GG не существовало)

Другая идея - использовать инструмент ETL для чтения Informix и вывода данныхв Oracle (Informatica приходит на ум)

Удачи:)

1 голос
/ 01 марта 2011

Проверьте мой вопрос, он включает в себя несколько очень хороших идей: Поиск (бесплатное) средство миграции базы данных

...