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