Цей розділ описує експортування даних з бази даних Microsoft SQL Server до бази даних Oracle в Database Tour.

Підготовка до експортування

Це не обов'язково, але рекомендується зареєструвати і вихідну, і цільову бази даних перед тим, як ви почнете налаштовувати ваш процес експорту.

Обидві бази даних повинні підтримувати однакову архітектуру: 32-bit або 64-bit. Тобто обидві бази даних повинні успішно відкриватися однією копією (instance) Database Tour.

Для обох баз даних рекомендується використовувати інтерфейс FD.

Кроки експорту

Експорт одного набору даних

  1. Відкрийте вихідну базу даних SQL Server.
  2. Виберіть набір даних для експорту. Тобто виберіть таблицю у списку таблиць або напишіть та виконайте ваш запит SQL.
  3. Якщо ви вибрали таблицю, перейдіть до закладки Дані.
  4. Клікніть кнопку Експорт.
  5. Перейдіть до закладки База даних та виберіть вашу зареєстровану цільову базу даних Oracle.
  6. Вкажіть цільову таблицю.
  7. Уважно перегляньте наступні опції експорту, оскільки вони можуть суттєво вплинути на швидкість експорту:
    • Режим економії пам'яті. Рекомендується вибрати цю опцію.
    • Використовувати параметри SQL. Рекомендується вибрати цю опцію.
    • Пакетний режим. Рекомендується вибрати цю опцію.
    • Commit-інтервал. Чим більше його значення, тим швидше експортуватимуться дані. Проте занадто великі значення можуть викликати помилки роботи з оперативною пам'яттю та інші проблеми. Тому спробуйте погратися з цим параметром для знаходження оптимального значення перед портуванням рішення до продуктивного середовища.
    Якщо ваш набір даних дуже великий, врахуйте наші рекомендації для експорту великих наборів даних.
  8. Виберіть потрібний Режим експорту та інші параметри:
    Експорт даних до Oracle
  9. Клікніть Далі. Перевірте відповідності полів джерело-ціль. Ви можете пропустити цей крок, клікнувши Експорт замість Далі, тоді список колонок (полів) джерела і відповідний йому список полів цілі визначається автоматично відповідно до вибраного цільового формату та опцій.
  10. Клікніть Експорт.

Експорт групи таблиць

  1. Відкрийте вихідну базу даних SQL Server.
  2. Перейдіть до закладки Таблиці ліворуч. Клікніть список таблиць правою кнопкою і виберіть Множинний вибір.
  3. Виберіть таблиці для експорту.
  4. Клікніть кнопку Експорт.
  5. Перейдіть до закладки База даних та виберіть вашу зареєстровану цільову базу даних Oracle. Вкажіть необхідні опції експорту (в т.ч. виберіть коректний Режим експорту). Залиште поле Назва таблиці пустим, інакше дані будуть експортуватися до однієї таблиці (в цьому випадку необхідно, щоб вихідні таблиці мали однакову або дуже подібну структуру).
  6. Клікніть Далі і вкажіть відповідності таблиць джерело-ціль. Ви можете пропустити цей крок, клікнувши Експорт замість Далі, тоді відповідності між таблицями джерела та цілі визначаються автоматично в залежності від вибраного цільового формату та опцій.
  7. Клікніть Експорт.

У випадку проблем з продуктивністю: Спробуйте різні комбінації опцій Збереження пам'яті та Commit-інтервал; для великих таблиць використовуйте наші рекомендації.

Експорт даних з командного рядка

Зауваження

Експорт даних з SQL Server до Oracle з командного рядка

Командний рядок для експорту групи таблиць з SQL Server до Oracle може виглядати так:

dbtour.exe /silent /export /ExportType=DATABASE /ExportMode=REPLACE+INSERT /CommitInterval=200 /SrcDBInterface=FD /SrcDBKind=DSN "/SrcDBDriver=SQL SERVER" /SrcServer=localhost\SQLEXPRESS /SrcDB=master /SrcDBUserName=sa /SrcDBPassword=sa_password /TrgDBInterface=FD /TrgDBKind=DSN /TrgDBDriver=ORACLE /TrgOSAuthentication=Yes /TrgAuthenticationMode=Normal /TrgVendorHomepath=C:\app\John\product\12.1.0\client_1 /TrgDB=cloud_prod "/TableMappingsFile=c:\DWH\Export\SQL-Server-To-Oracle-Table-Mappings.xml" /LogFile=C:\DWH\Export\Log\export.log /AppendLog

Експорт з SQL Server до Oracle файлом операцій

Командний рядок вище може бути трансформований у файл операцій, з яким працювати комфортніше. Файл операцій містить всі параметри командного рядка (крім ключа /silent), один параметр на рядок тексту, і дозволяє коментарі:

/export 
/ExportType=DATABASE 
/ExportMode=REPLACE+INSERT ;Target tables recreated when exist
;/ExportMode=APPEND ;Incoming records are appended to target tables
/CommitInterval=1000 ;COMMIT after exporting every 1000 records
/SrcDBInterface=FD 
/SrcDBKind=DSN 
/SrcDBDriver=SQL SERVER 
/SrcServer=localhost\SQLEXPRESS 
/SrcDB=master 
/SrcDBUserName=sa 
/SrcDBPassword=sa_password 
/TrgDBInterface=FD 
/TrgDBKind=DSN 
/TrgDBDriver=ORACLE 
/TrgOSAuthentication=Yes 
/TrgAuthenticationMode=Normal 
/TrgVendorHomepath=C:\app\John\product\12.1.0\client_1 
/TrgDB=cloud_prod 
/TableMappingsFile=c:\DWH\Export\SQL-Server-To-Oracle-Table-Mappings.xml 
/LogFile=C:\DWH\Export\Log\export.log 
/AppendLog

Файл операцій можна виконати або з інтерфейсу Database Tour, в діалозі Відкриття джерела даних, або з командного рядка типу цього:

dbtour.exe /silent /ActionFile=c:\DWH\Export\ExportActionMsSqlOra.txt

Приклад файлу відповідностей таблиць для експорту з SQL Server до Oracle

Файл відповідностей таблиць містить відповідності між назвами вихідних та цільових таблиць. Опціонально кожна пара таблиць може включати вкладені відповідності колонок, тобто відповідності між колонками таблиці-джерела та цільової таблиці. Наступний приклад містить відповідності для трьох пар таблиць. Одна з них містить вкладені відповідності колонок; для інших таблиць відповідності таблиць будуть створені автоматично. Рекомендується явно вказувати відповідності таблиць та полів.

<?xml version="1.0" encoding="UTF-8"?>
<-- Source-to-Target table mappings for master database --> 
<TableMappings>
  <Items>
    <TableMapping>
      <Source>
        <TableName>dbo.customer</TableName>
      </Source>
      <Target>
        <TableName>DWH.CUSTOMER</TableName>
      </Target>
      <FieldMappings>
        <Items>
          <FieldMapping>
            <Source>
              <FieldName>cust_it</FieldName>
            </Source>
            <Target>
              <FieldName>CUSTOMER_ID</FieldName>
              <FieldType>INTEGER</FieldType>
              <FieldNotNull>1</FieldNotNull>
              <FieldDefaultValue></FieldDefaultValue>
              <FieldSQLSpecification>INTEGER</FieldSQLSpecification>
            </Target>
          </FieldMapping>
          <FieldMapping>
            <Source>
              <FieldName>cust_name</FieldName>
            </Source>
            <Target>
              <FieldName>CUSTOMER_NAME</FieldName>
              <FieldType>VARCHAR2</FieldType>
              <FieldSize>60</FieldSize>
              <FieldNotNull>1</FieldNotNull>
              <FieldDefaultValue></FieldDefaultValue>
              <FieldSQLSpecification>VARCHAR2(60)</FieldSQLSpecification>
            </Target>
          </FieldMapping>
        </Items>
      </FieldMappings>
    </TableMapping>
    <TableMapping>
      <Source>
        <TableName>dbo.order</TableName>
      </Source>
      <Target>
        <TableName>DWH.ORDER</TableName>
      </Target>
    </TableMapping>
    <TableMapping>
      <Source>
        <TableName>dbo.payment</TableName>
      </Source>
      <Target>
        <FileName>DWH.PAYMENT</TableName>
      </Target>
    </TableMapping>
  </Items>
</TableMappings>

Див. також:

 Відкриття баз даних SQL Server

 Відкриття баз даних Oracle

 Експорт даних

 Параметри запуску: Експорт / Імпорт даних

 Файл відповідностей полів

 Файл відповідностей таблиць

 Файл операцій