Цей розділ описує експортування даних з бази даних Microsoft SQL Server до бази даних Oracle в Database Tour.
Підготовка до експортування
Це не обов'язково, але рекомендується зареєструвати і вихідну, і цільову бази даних перед тим, як ви почнете налаштовувати ваш процес експорту.
Для обох баз даних рекомендується використовувати інтерфейс FD.
Обидві бази даних повинні підтримувати однакову архітектуру: 32-bit або 64-bit. Тобто обидві бази даних повинні успішно відкриватися однією копією (instance) Database Tour.
Зауваження: На наших веб-сайтах є обидві версії Database Tour: 32-bit та 64-bit. Будь-ласка, перевіряйте, яку саме версію ви завантажуєте.Якщо ваша операційна система 64-бітна, ви можете встановити і Database Tour 32-bit, і Database Tour 64-bit і використовувати їх незалежно.
Кроки експорту
Експорт одного набору даних
- Відкрийте вихідну базу даних SQL Server.
- Виберіть набір даних для експорту. Тобто виберіть таблицю у списку таблиць або напишіть та виконайте ваш запит SQL.
- Якщо ви вибрали таблицю, перейдіть до закладки Дані.
- Клікніть кнопку Експорт.
- Перейдіть до закладки База даних та виберіть вашу зареєстровану цільову базу даних Oracle.
- Вкажіть цільову таблицю.
- Уважно перегляньте наступні опції експорту, оскільки вони можуть суттєво вплинути на швидкість експорту:
- Рекомендується вибрати всі опції Режим економії пам'яті, Використовувати параметри SQL, Пакетний режим. В разі проблем при експорті, якщо є підозра, що вони викликані цими опціями, спробуйте іншу їх комбінацію. Якщо вихідні дані та/або назви колонок джерела або цілі можуть містити символи Unicode, переконайтеся, що вибрали коректне кодування потоку SQL, наприклад, UTF-8.
- Commit-інтервал. Чим більше його значення, тим швидше експортуватимуться дані. Проте занадто великі значення можуть викликати помилки роботи з оперативною пам'яттю та інші проблеми. Тому спробуйте погратися з цим параметром для знаходження оптимального значення перед портуванням рішення до продуктивного середовища.
Якщо ваш набір даних дуже великий, врахуйте наші рекомендації для експорту великих наборів даних.
- Виберіть потрібний Режим експорту та інші параметри:
- Клікніть Далі. Перевірте відповідності полів джерело-ціль, тобто список колонок (полів) джерела і відповідний йому список полів цілі.
Тут можна вказати повні специфікації колонок цільової таблиці та їх описи (коментарі). Їх буде застосовано, якщо цільова таблиця не існує або якщо її потрібно перестворити.
Ви можете пропустити цей крок, клікнувши Експорт замість Далі, тоді відповідності полів будуються неявним чином згідно з правилами іменування та в залежності від доступних типів цільової бази даних.
- Клікніть Експорт, щоб розпочати процедуру експорту. Ви можете перервати цю процедуру, натиснувши клавішу ESC або клікнувши Відмінити в додатковому віконці, що показується під час експорту.
Експорт групи наборів даних
- Відкрийте вихідну базу даних SQL Server.
- Ви можете експортувати вибрані таблиці або відкриті набори даних будь-якого виду.
- Експортування вибраних таблиць
- Перейдіть до закладки Таблиці ліворуч.
- Клікніть список таблиць правою кнопкою і виберіть Множинний вибір.
- Виберіть таблиці для експорту.
- Клікніть кнопку Експорт або виберіть меню Інструменти | Експорт даних | Вибрані таблиці....
- Експортування відкритих наборів даних (можна використовувати результати запитів SQL або мікс запитів та таблиць)
- Відкрийте кілька вікон SQL, впишіть туди тексти потрібних запитів SQL та виконайте їх для отримання даних. Відкрийте також потрібні таблиці і перейдіть на закладку Дані.
- Виберіть меню Інструменти | Експорт даних | Відкриті набори даних....
- Виберіть набори даних для експорту та клікніть OK.
- Експортування вибраних таблиць
- Перейдіть до закладки База даних та виберіть вашу зареєстровану цільову базу даних Oracle.
- Вкажіть параметри експорту:
- Увімкніть опцію Режим економії пам'яті і пов'язані з нею опції. В разі проблем при експорті, якщо є підозра, що вони викликані цими опціями, спробуйте іншу їх комбінацію.
- Виберіть Режим експорту, який слід застосувати для більшості таблиць. Ви зможете при потребі перевизначити його на наступному етапі для певних таблиць. Тобто, наприклад, для більшості таблиць це може бути Replace+Insert, для деяких - Update, ще інших - Append і т.д.
- Залиште поле для цільової таблиці пустим. Заповнюйте його лише тоді, коли хочете всі вихідні набори даних експортувати до однієї цільової таблиці.
- Клікніть Далі і вкажіть відповідності таблиць джерело-ціль, тобто відповідності між вихідними наборами даних та цільовими таблицями.
Тут можна вказати повні специфікації колонок для цільових таблиць, а також перевизначити Режим експорту для певних таблиць (якщо вам потрібен різний режим експорту для різних таблиць).
SQL Server і Oracle підтримують описи (коментарі) таблиць та колонок, і ви їх також можете вказати тут; використовуйте макрос <copy_from_source>, щоб змусити програму копіювати описи з вихідних таблиць (якщо є) до цільових. Майте на увазі, що описи застосовуються лише під час створення таблиць і ігноруються, якщо режим експорту вказує лише додавання, оновлення або вилучення записів в існуючій таблиці.
Ви можете пропустити цей крок, клікнувши Експорт замість Далі, тоді відповідності будуються неявно згідно з правилами іменування в цільовій базі даних та вибраними опціями.
- Клікніть Експорт.
У випадку проблем з продуктивністю: Спробуйте різні комбінації опцій Збереження пам'яті та 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" /MemorySaving /UseSQLParameters /UseBatchMode /Encoding=UTF-8 /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
/MemorySaving
/UseSQLParameters
/UseBatchMode
/Encoding=UTF-8
/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>
<TableDescription>Customers</TableDescription>
</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>
<FieldDescription>Internal customer identifier</FieldDescription>
</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>
<FieldDescription>Full customer name</FieldDescription>
</Target>
</FieldMapping>
</Items>
</FieldMappings>
</TableMapping>
<TableMapping>
<Source>
<TableName>dbo.order</TableName>
</Source>
<Target>
<TableName>DWH.ORDER</TableName>
<TableDescription>Orders</TableDescription>
</Target>
</TableMapping>
<TableMapping>
<Source>
<TableName>dbo.payment</TableName>
</Source>
<Target>
<FileName>DWH.PAYMENT</TableName>
<TableDescription>Payments</TableDescription>
</Target>
</TableMapping>
</Items>
</TableMappings>
Див. також:
Відкриття баз даних SQL Server