Каковы наиболее разумные способы регулярного перемещения табличных данных из SQL Server в Oracle (on * nix)?
Постоянное перемещение данных с SQL Server на Oracle
Ответ 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", где вы хотите скопировать свои таблицы.
Вы также можете изменить некоторые свойства. Нажмите "ОК" и нажмите "ОК".
Сообщите мне в случае возникновения каких-либо проблем.