移行ツールキットの呼び出し¶
Migration Toolkitをインストールし、 toolkit.propertiesファイルでソースデータベースとターゲットデータベースの接続プロパティを指定した後 、移行ツールキットは移行を実行する準備ができています。
Migration Toolkit実行可能ファイルの名前は、Linuxシステムでは runMTK.sh 、Windowsシステムでは runMTK.bat です。 Linuxシステムでは、実行可能ファイルは次の場所にあります。
/usr/edb/migrationtoolkit/bin
Windowsでは、実行可能ファイルは次の場所にあります。
C:/Program Files/edb/mtk/bin
注: 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であり、ターゲットデータベースがAdvanced Serverであると想定しています。 Linuxで完全なスキーマを移行するには、実行可能ファイルに移動し、次のコマンドを呼び出します。
$ ./runMTK.sh <schema_name>
Windowsで完全なスキーマを移行するには、実行可能ファイルに移動し、次のコマンドを呼び出します。
> ./runMTK.bat <schema_name>
どこで:
schema_name
schema_nameは、移行するソースデータベース(toolkit.propertiesファイルで指定)内のスキーマの名前です。少なくとも1つのschema_nameを含める必要があります。
注: 移行されたスキーマのデフォルトデータベースユーザーが自動的に移行される場合、そのようなカスタムプロファイルが存在する場合、デフォルトデータベースユーザーのカスタムプロファイルも移行されます。カスタムプロファイルは、ユーザーが作成したプロファイルです。たとえば、カスタムプロファイルは、OracleプロファイルDEFAULTおよびMONITORING_PROFILEを除外します。
コマンド名の後にスキーマ名のカンマ区切りリストを続けることで、複数のスキーマを移行できます。
Linuxでは、次のコマンドを実行します。
$ ./runMTK.sh <schema_name1>,<schema_name2>,<schema_name3>
Windowsでは、次のコマンドを実行します。
> ./runMTK.bat <schema_name1>,<schema_name2>,<schema_name3>
Oracle以外のソースデータベースからの移行¶
ソースデータベースタイプとターゲットデータベースタイプを指定しない場合、PostgresはソースデータベースがOracle、ターゲットデータベースがAdvanced Serverであると想定します。
Migration Toolkitを呼び出すには、コマンドウィンドウを開き、実行可能ファイルに移動して、次のコマンドを呼び出します。
$ ./runMTK.sh -sourcedbtype <db_type> -targetdbtype <target_type> [options, …] schema_name;
どこで:
-sourcedbtype source_type
source_typeは、ソースデータベースのサーバータイプを指定します。source_typeは大文字と小文字を区別しません。デフォルトでは、source_typeはoracleです。source_typeは次の値のいずれかです:
から移行するには: |
以下を指定します。 |
|---|---|
オラクル |
oracle(デフォルト値) |
MySQL |
mysql |
SQLサーバー |
sqlserver |
Sybase |
sybase |
PostgreSQL |
postgresまたはpostgresql |
Advanced Server |
enterprisedb |
-targetdbtype target_type
target_typeはターゲットデータベースのサーバータイプを指定します。target_typeは大文字と小文字を区別しません。デフォルトでは、target_typeはenterprisedbです。target_typeは次の値のいずれかです:
移行するには: |
以下を指定します。 |
|---|---|
Advanced Server |
enterprisedb |
PostgreSQL |
postgresまたはpostgresql |
schema_name
schema_nameは、移行したいソースデータベース(toolkit.propertiesファイルで指定)内のスキーマの名前です。少なくとも1つのschema_nameを含める必要があります。
次の例は、Linuxシステム上のMySQLデータベースからAdvanced Serverホストに HR という名前のスキーマ(テーブル定義とテーブルコンテンツ)を移行します。コマンドには ‑sourcedbtype および -targetdbtype オプションが含まれていることに注意してください:
$ ./runMTK.sh -sourcedbtype mysql -targetdbtype enterprisedb HR
Windowsでは、次のコマンドを使用します。
> ./runMTK.bat -sourcedbtype mysql -targetdbtype enterprisedb HR
Migration Toolkitコマンドの最後にスキーマのコンマ区切りリストを含めることにより、ソースデータベースから複数のスキーマを移行できます。次の例では、複数のスキーマ(HRおよびACCTGという名前)をMySQLデータベースからPostgreSQLデータベースに移行します。
Linuxでは、次のコマンドを使用して、MySQLデータベースから複数のスキーマを移行します。
$ ./runMTK.sh -sourcedbtype mysql -targetdbtype postgres HR,ACCTG
Windowsでは、次のコマンド形式を使用します。
> ./runMTK.bat -sourcedbtype mysql -targetdbtype postgres HR,ACCTG