Подтвердить что ты не робот

Постоянное перемещение данных с SQL Server на Oracle

Каковы наиболее разумные способы регулярного перемещения табличных данных из SQL Server в Oracle (on * nix)?

4b9b3361

Ответ 1

Использование служб интеграции SQL Server (SSIS), скорее всего, будет вашим лучшим выбором. Если вы не знакомы с SSIS, лучший способ попробовать что-то сделать - это использовать мастер экспорта SQL Server и создать пакет SSIS для вас. Например, если вы заходите в SQL Server Management Studio и щелкните правой кнопкой мыши на своей базе данных, выберите "Задачи- > Экспорт данных". Оттуда нажмите кнопку "Далее", чтобы перейти к шагу "Выбрать пункт назначения". Выберите "Поставщик Microsoft OLE DB для Oracle" и нажмите "Свойства", чтобы определить соединение с базой данных. Когда вы нажмете мастер, на странице "Сохранить и выполнить" убедитесь, что вы установили флажок "Сохранить пакет SSIS", на следующем экране укажите, где сохранить пакет SSIS. Как только вы закончите Мастер экспорта, ваши данные будут экспортированы, и у вас будет пакет SSIS, который вы можете использовать как есть, или входите и настраивайте его, чтобы делать более конкретные вещи. После того, как у вас есть пакет SSIS, вы можете запланировать его, создав задание агента SQL Server.

Ответ 2

  • Oracle Неоднородная связь/Шлюзы базы данных в соединение с материализованным представлением, PL/SQL или Java
  • SSIS или DTS: оба могут быть но требуется больше, чем доступ только для чтения к SQL Server
  • Java (возможно, в Oracle, но, возможно, в ОС) с использованием ODBC или SQLJ для доступа к SQL Server и, возможно, Oracle
  • SQL Server планируется экспортировать в CSV, Oracle планируется импортировать из CSV
  • Любой из других инструментов ETL (например, Informatica, Cognos)
  • Любой из бесчисленных языков, которые могут обращаться к обеим базам данных (но для этого потребуется поддерживать третью среду для запуска приложения)

Планирование:

  • Автоматически/не требуется с материализованными представлениями
  • Oracle DBMS_JOB/DBMS_SCHEDULER
  • OS-specific (cron, Задачи с расписанием Windows и т.д.)
  • В случае экспорта SSIS, DTS или CSV, запланированного в SQL Server

Ответ 3

У вас может быть интерфейс SQL Server с Oracle напрямую через SSIS (или DTS для 2k). Он будет обеспечивать функциональность ETL и может быть запланирован на регулярной основе.

Ответ 4

Создайте ссылку базы данных с Oracle на Sql Server (гетерогенная связь). Вы можете использовать эту ссылку для извлечения данных с Sql Server с помощью простого оператора select. Если вы хотите запланировать, вы можете использовать материализованное представление или dbms_scheduler.

Альтернативой является размещение ваших данных в файле csv, вы можете использовать внешнюю таблицу или sqlloader для загрузки этих данных в базу данных Oracle.

Ответ 5

Мне удалось создать связанный сервер (я думаю, изнутри Enterprise Manager) в Oracle на стороне SQL Server. Затем я мог бы использовать обычные хранимые процедуры с обеих сторон для выполнения меньшего перемещения данных и обновлений в обоих направлениях. Этот подход может обойти необходимость попытаться собрать что-то вместе за пределами баз данных.

Попробуйте использовать последний возможный клиент Oracle на стороне SQL Server. Я вспоминаю некоторые недостатки клиента 10.2.0.2, и для получения клиентом 10.2.0.4 требуется ваш "официальный" номер регистрации или покупки Oracle или что-то в этом роде.

Для больших перемещений данных (или, возможно, даже ходов/обновлений, которые вы хотите делать ежедневно или менее часто), обязательно используйте один из инструментов ETL. У нас была Informatica для наших процессов ETL, но если SSIS может снять то, что вам нужно, это тоже хорошо.

Ответ 6

Вот что я делаю: Подключитесь к SQL Server разработчиком Oracle SQL, используя эту ссылку: https://kentgraziano.com/2013/01/14/tech-tip-connect-to-sql-server-using-oracle-sql-developer/

После того, как вы добавили SQL-банку, вы увидите вкладку SQL Server в окне Connection:

введите описание изображения здесь

Затем подключитесь к экземпляру SQL.

Затем откройте экземпляр SQL и выберите базу данных или таблицу, которую вы хотите скопировать. Щелкните правой кнопкой мыши по любой базе данных/таблице, затем выберите "copy to oracle" и выберите нужного пользователя [базу данных] в "Destination Connection Name", где вы хотите скопировать свои таблицы.

Вы также можете изменить некоторые свойства. Нажмите "ОК" и нажмите "ОК".

Сообщите мне в случае возникновения каких-либо проблем.