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
移行の詳細を制御する方法については、 Migration Toolkit command options を参照してください。
注釈
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以外の置換文字に置き換えます。
注釈
MTKはNULL文字を暗黙的に空の文字列に置き換えます。 - -replaceNullChar オプションは、-copyViaDBLinkOra オプションと併用できません。
データを移行したら、 SQLステートメントを使用して、 -replaceNullChar
で指定された文字をバイナリのゼロに置き換えます。
Oracleからスキーマを移行する¶
コマンドラインで指定されない限り、 Migration ToolkitはソースデータベースがOracleであり、ターゲットデータベースがEDB Postgres Advanced Serverであると想定しています。 Linuxでスキーマ全体を移行するには、実行可能ファイルに移動して次のコマンドを呼び出します。
$ ./runMTK.sh <schema_name>
Windowsでスキーマ全体を移行するには、実行可能ファイルに移動して次のコマンドを呼び出します。
> .\runMTK.bat <schema_name>
そこで:
<schema_name> は、移行するtoolkit.properties
ファイルで指定されたソースデータベースのスキーマの名前です。少なくとも1つのschema_name
値を含める必要があります。
注釈
移行されたスキーマのデフォルトのデータベースユーザーが自動的に移行されると、カスタムプロファイルが存在する場合はデフォルトのデータベースユーザーのカスタムプロファイルも移行されます。カスタムプロファイルは、ユーザーが作成したプロファイルです。たとえば、カスタムプロファイルはOracleプロファイル DEFAULT および`MONITORING_PROFILE` を除外します。 - PostgreSQLのデフォルトの行のサイズは8 KBに制限されています。これは、各テーブルの行が単一の8 KBブロックに収まる必要があることを意味します。それ以外の場合、たとえば、1600列のINTを持つテーブルを作成し、すべての列にデータを挿入できることを示すエラーが発生します。ただし、 INTは4バイトとして保存されるため、 BIGINT列で同じことはできませんが、各BIGINTにはより多くの領域(8バイト)が必要です。詳細については、PostgreSQLドキュメントの PostgreSQL Limits を参照してください。
コマンド名の後にスキーマ名のコンマ区切りリストを指定することにより、複数のスキーマを移行できます。
Linuxでは、次のコマンドを実行します。
$ ./runMTK.sh <schema_name1>,<schema_name2>,<schema_name3>
Windowsでは、次のコマンドを実行します。
> .\runMTK.bat <schema_name1>,<schema_name2>,<schema_name3>
Oracle以外のソースデータベースからの移行¶
ソースデータベースタイプとターゲットデータベースタイプを指定しない場合、PostgresはソースデータベースがOracleであり、ターゲットデータベースが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