Invoking Migration Toolkit¶
Migration Toolkitをインストールし、toolkit.properties fileでソースデータベースとターゲットデータベースの接続プロパティを指定すると、 Migration Toolkitは移行を実行する準備が整います。
Migration
Toolkitの実行可能ファイルの名前付けは、LinuxシステムではrunMTK.sh、
WindowsシステムではrunMTK.batです。
Linuxシステムでは、実行可能ファイルは次の場所にあります。
/usr/edb/migrationtoolkit/bin
Windowsでは、実行可能ファイルは次の場所にあります。
C:\Program Files\edb\mtk\bin
!!! Note * Migration
Toolkitの起動時に次のエラーが表示される場合は、toolkit.propertiesファイルのファイル権限を確認してください。
MTK-11015: The connection credentials file ../etc/toolkit.properties is
not secure and accessible to group/others users. This file contains
plain passwords and should be restricted to Migration Toolkit owner user
only.
Migration
Toolkitを実行するオペレーティングシステムユーザアカウントは、ファイルの最小読み取りパーミッションを持つtoolkit.propertiesファイルの所有者でなければなりません。さらに、グループおよび他のユーザーに対して、いかなる種類のアクセス許可も存在してはなりません。以下は、ユーザenterprisedbがMigration
Toolkitを実行している場合の推奨ファイル許可の例です。
-rw------- 1 enterprisedb enterprisedb 191 Aug 1 09:59 toolkit.properties
埋め込みたバイナリゼロ(NULL文字)を含む文字データのインポート¶
Migration
Toolkitは、値がNULLの列のインポートをサポートしています。ただし、
Migration Toolkitは、
JDBC接続プロトコルでのNULL文字値(埋め込みバイナリゼロ0x00)のインポートをサポートしていません。
NULL文字を含むデータをインポートする場合は、-replaceNullCharオプションを使用して、NULL文字を単一の非NULLの置換文字に置き換えます。
!!! Note * -MTKはNULL文字を暗黙的に空の文字列に置き換えます。
--replaceNullCharオプションは、-copyViaDBLinkOraオプションでは機能しません。
データを移行したら、
SQLステートメントを使用して、-replaceNullCharで指定された文字をバイナリのゼロに置き換えます。
オラクルからスキーマを移行する¶
コマンドラインで指定されていない限り、 Migration Toolkitは、ソースデータベースがオラクルで、ターゲットデータベースがEDB Postgres Advanced Serverであると想定しています。 Linuxで完全なスキーマを移行するには、実行可能ファイルに移動し、次のコマンドを呼び出します。
$ ./runMTK.sh <schema_name>
Windowsで完全なスキーマを移行するには、実行可能ファイルに移動し、次のコマンドを呼び出します。
> .\runMTK.bat <schema_name>
どこで:
<schema_name>は、移行するtoolkit.propertiesファイルで指定されたソースデータベース内のスキーマの名前です。少なくとも1つのschema_name値を含める必要があります。
!!! Note *
-移行されたスキーマのデフォルトデータベースユーザが自動的に移行される場合、カスタムプロファイルが存在する場合、デフォルトデータベースユーザのカスタムプロファイルも移行されます。カスタムプロファイルは、ユーザーが作成したプロファイルです。例、カスタムプロファイルはオラクルプロファイルDEFAULTおよびMONITORING_PROFILEを除外します。
PostgreSQLのデフォルト行のサイズは8
KBに制限されています。これは、各テーブル行が単一の8
KBブロックに収まる必要があることを意味します。それ以外の場合、例、1600列のINTを持つテーブルを作成し、すべての列にデータを挿入できることを示すエラーが発生します。ただし、INTは4バイトとして格納されますが、各BIGINTにはより多くのスペース(8バイト)が必要であるため、BIGINT列で同じことはできません。詳細については、
PostgreSQL文書のPostgreSQL
Limitsを参照してください。
コマンド名前の後にスキーマ名のカンマ区切りリストを続けることで、マルチプルのスキーマを移行できます。
Linuxでは、次のコマンドを実行します。
$ ./runMTK.sh <schema_name1>,<schema_name2>,<schema_name3>
Windowsでは、次のコマンドを実行します。
> .\runMTK.bat <schema_name1>,<schema_name2>,<schema_name3>
</ div>
Oracle以外のソースデータベースからの移行¶
ソースデータベースタイプとターゲットデータベースタイプを指定しない場合、 Postgresはソースデータベースがオラクルであり、ターゲットデータベースがEDB Postgres Advanced Serverであると想定します。
Migration Toolkitを呼び出すには、コマンドウィンドウを開き、実行可能ファイルに移動して、次のコマンドを呼び出します。
$ ./runMTK.sh -sourcedbtype <source_type> -targetdbtype <target_type> [options, …] <schema_name>;
-sourcedbtype <source_type>
<source_type>は、ソースデータベースのサーバータイプを指定します。
<source_type>は大文字と小文字を区別しません。デフォルトでは、<source_type>はoracleです。
source_typeは、次の値のいずれかです。
To migrate from: |
Specify: |
|---|---|
Oracle |
oracle (the default value) |
MySQL |
mysql |
SQL Server |
sqlserver |
Sybase |
sybase |
PostgreSQL |
postgres or postgresql |
EDB Postgres Advanced Server |
enterprisedb |
-targetdbtype <target_type>
<target_type>は、ターゲットデータベースのサーバータイプを指定します。
<target_type>は大文字と小文字を区別しません。デフォルトでは、<target_type>はenterprisedbです。
<target_type>は次の値のいずれかです。
To migrate to: |
Specify: |
|---|---|
EDB Postgres Advanced Server |
enterprisedb |
PostgreSQL |
postgres or postgresql |
<schema_name>
<schema_name>は、移行するtoolkit.propertiesファイルで指定されたソースデータベース内のスキーマの名前です。少なくとも1つの<schema_name>値を含める必要があります。
次の例では、HR名前付けのスキーマ(テーブル定義とテーブルコンテンツ)をLinuxシステム上のMySQLデータベースからEDB
Postgres Advanced
Serverホストに移行します。このコマンドには、‑sourcedbtypeおよび-targetdbtypeオプションが含まれています。
Linuxでは、次のコマンドを使用します。
$ ./runMTK.sh -sourcedbtype mysql -targetdbtype enterprisedb HR
Windowsでは、次のコマンドを使用します。
> .\runMTK.bat -sourcedbtype mysql -targetdbtype enterprisedb HR
Migration Toolkitコマンドの最後にスキーマのコンマ区切りリストを含めることにより、ソースデータベースからマルチプルのスキーマを移行できます。次の例では、マルチプルのスキーマ(HRおよびACCTG名前付け)をMySQLデータベースからPostgreSQLデータベースに移行します。
Linuxでは、次のコマンドを使用します。
$ ./runMTK.sh -sourcedbtype mysql -targetdbtype postgres HR,ACCTG
Windowsでは、次のコマンドを使用します。
> .\runMTK.bat -sourcedbtype mysql -targetdbtype postgres HR,ACCTG