Specifying connection properities#

Migration Toolkitは、移行プロセス中にtoolkit.properties ファイルに保存された構成および接続情報を使用して、ソースデータベースとターゲットデータベースを識別して接続します。

Linuxでは、 toolkit.properties ファイルは/usr/edb/migrationtoolkit/etc にあります。

Windowsでは、ファイルはC:\Program Files\edb\mtk\etc にあります。

Mac OSでは、ファイルは/Library/edb/mtk/etc にあります。

図は、サンプルのtoolkit.properties ファイルを示しています。

A typical toolkit.properties file.

A typical toolkit.properties file.#

Migration Toolkitコマンドを実行する前に、選択したエディターでtoolkit.properties ファイルを変更します。ファイルを更新して、次の情報を含めます。

  • SRC_DB_URL は、 Migration Toolkitがソースデータベースに接続する方法を指定します。各ソースデータベースのURLの形成の詳細は次のとおりです。

  • SRC_DB_USER は、ソースデータベースで(十分な権限を持つ)ユーザー名を指定します。

  • SRC_DB_PASSWORD は、ソースデータベースユーザーのパスワードを指定します。

  • TARGET_DB_URL は、ターゲットデータベースのJDBC URLを指定します。

  • TARGET_DB_USER は、特権ターゲットデータベースユーザーの名前を指定します。

  • TARGET_DB_PASSWORD は、ターゲットデータベースユーザーのパスワードを指定します。

注釈

コマンドラインで指定されない限り、 Migration ToolkitはソースデータベースがOracleであり、ターゲットデータベースがEDB Postgres Advanced Serverであると想定しています。他のソースまたはターゲットデータベースの場合、 Oracle以外のソースデータベースからの移行 の説明に従って、 -sourcedbtype または -targetdbtype オプションを指定します。

BigAnimalでターゲットデータベースを指定するには、 BigAnimal URLの定義 を参照してください。

Advanced ServerのURLの定義#

Migration Toolkitは、次のプラットフォームからAdvanced Serverへの移行に役立ちます。

  • Oracle

  • PostgreSQL

  • MySQL

  • Sybase

  • SQL Server

各データベースタイプから移行されたオブジェクトの明確なリストについては、

Functionality overview を参照してください。

Migration Toolkitは、ソースデータベースとターゲットデータベースの接続仕様をtoolkit.properties ファイルから読み取ります。それぞれの接続情報には以下が含まれる必要があります。

  • データベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

URLはJDBC標準に準拠し、次の形式を取ります。

{TARGET_DB_URL|SRC_DB_URL}=jdbc:edb://<host>:<port><database_id>

Advanced ServerのURLには、次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • edb — Advanced Serverを使用している場合 、サブプロトコル値にedb を指定します。

  • <host> — Postgresインスタンスが実行されているホストの名前またはIPアドレス。

  • <port> — Advanced Serverデータベースリスナーが監視しているポート番号。デフォルトのポート番号は5444です。

  • <database_id> —ソースまたはターゲットデータベースの名前。

  • {TARGET_DB_USER|SRC_DB_USER} —移行される各タイプのオブジェクトを作成する権限を持つユーザーを指定します。データをテーブルに移行する場合、指定されたユーザーには、各ターゲットテーブルの挿入、切り捨て、および参照特権も必要になる場合があります。

  • {TARGET_DB_PASSWORD|SRC_DB_PASSWORD} — Advanced Server特権ユーザーのパスワードに設定します。

PostgreSQL URLの定義#

Migration Toolkitは、次のプラットフォームからPostgreSQLへの移行に役立ちます。

  • Oracle

  • Advanced Server

  • MySQL

  • SQL Server

各データベースタイプから移行されたオブジェクトの決定的なリストについては、

Functionality overview を参照してください。

Migration Toolkitは、ソースデータベースとターゲットデータベースの接続仕様をtoolkit.properties ファイルから読み取ります。それぞれの接続情報には以下が含まれる必要があります。

  • データベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

PostgreSQL URLはJDBC標準に準拠し、次の形式を取ります。

{SRC_DB_URL|TARGET_DB_URL}=jdbc:postgresql://<host>:<port>/<database_id>

URLには次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • postgresql — PostgreSQLを利用している場合、サブプロトコル値にpostgresql を指定します。

  • <host> — Postgresインスタンスが実行されているホストの名前またはIPアドレス。

  • <port> — Postgresデータベースリスナーが監視しているポート番号。デフォルトのポート番号は5432です。

  • <database_id> —ソースまたはターゲットデータベースの名前。

  • {SRC_DB_USER|TARGET_DB_USER} —移行される各タイプのオブジェクトを作成する権限を持つユーザーを指定します。データをテーブルに移行する場合、指定されたユーザーには、各ターゲットテーブルの挿入、切り捨て、および参照特権も必要になる場合があります。

  • {SRC_DB_PASSWORD|TARGET_DB_PASSWORD} —特権PostgreSQLユーザのパスワードに設定します。

BigAnimal URLの定義#

Migration Toolkitは、次のプラットフォームからBigAnimalへの移行に役立ちます。

  • Oracle

  • Advanced Server

  • PostgreSQL

  • MySQL

  • SQL Server

Migration Toolkitは、ソースデータベースとターゲットデータベースの接続仕様をtoolkit.properties ファイルから読み取ります。それぞれの接続情報には以下が含まれる必要があります。

  • データベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

BigAnimalに移行する場合、 TARGET_DB_URL はJDBC URLの形式を取ります。例:

jdbc:<postgres_type>://<host_name>[:<port>]/<database_id>?sslmode=<sslmode>

注釈

ターゲットデータベースのURLに必要な値の多くは、BigAnimalポータルから入手できます。 BigAnimalで、クラスターを選択し、[Connect]タブに移動して値を見つけます。 !!!

URLには次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • postgres_type —サブプロトコルはPostgresタイプです。 Advanced Serverを使用している場合はedb を、PostgreSQLを使用している場合はpostgresql を指定します。

  • <host_name> —クラスターのホスト名。 BigAnimalポータルの Connect タブの Host フィールドからコピーできます。

  • <port> —データベースリスナーが監視しているポート番号。 BigAnimalポータルの Connect タブの Port フィールドからコピーできます。

  • <database_id> —ターゲットデータベースの名前。これを、移行ターゲットデータベースとして使用するクラスター内のデータベースの名前に設定します。クラスターのデフォルトデータベースの名前は、BigAnimalポータルの Connect タブの Dbname フィールドに表示されます。多くの場合、移行ターゲットとして使用する別のデータベースが作成されます。

  • TARGET_DB_USER —特権データベースユーザーの名前を指定します。 BigAnimalポータルの Connect タブの User フィールドからコピーできます。

  • TARGET_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。

  • sslmode — 「require」または「verify-full」のいずれか。 Recommended settings for SSL mode を参照してください。 BigAnimalポータルの Connect タブの ServiceURI 値の最後にリストされています。

Oracle URLの定義#

Migration Toolkitは、OracleデータベースからPostgreSQLまたはAdvanced Serverデータベースへの移行に役立ちます。 Oracleから移行する場合、 toolkit.properties ファイルでOracleソースデータベースの接続仕様を指定する必要があります。接続情報には以下が含まれる必要があります。

  • OracleデータベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

Oracleデータベースから移行する場合、 SRC_DB_URL には、2つの形式のいずれかで指定されたJDBC URLを含める必要があります。最初のフォームは次のとおりです。

jdbc:oracle:thin:@<host_name>:<port>:<database_id>

2番目の形式は次のとおりです。

jdbc:oracle:thin:@//<host_name>:<port>{<database_id|service_name>}

Oracle URLには、次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • oracle —サブプロトコルは常にoracle です。

  • thin —ドライバーの種類。 thin のドライバータイプを指定します。

  • <host_name> — Oracleサーバーが実行されているホストの名前またはIPアドレス。

  • <port> — Oracleデータベースリスナーが監視しているポート番号。

  • <database_id> — OracleデータベースのデータベースSID。

  • <service_name> — Oracleサービスの名前。

  • SRC_DB_USER —特権Oracleユーザーの名前を指定します。 Oracleユーザーは、オブジェクトをOracleからAdvanced Serverに移行するDBA権限が必要です。 Oracle GRANT DBA TO user コマンドを使用してDBA権限をOracleユーザーに付与し、目的のすべてのデータベースオブジェクトが移行されるようにすることができます。

  • SRC_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。

SQL ServerのURLの定義#

Migration Toolkitは、 SQL ServerデータベースからPostgreSQLまたはAdvanced Serverデータベースへの移行に役立ちます。 Migration Toolkitは、次のオブジェクト定義の移行をサポートしています。

  • スキーマ

  • テーブル

  • テーブルデータ

  • 制約

  • インデックス

Migration Toolkitは、 toolkit.properties ファイルからソースデータベースの接続仕様を読み取ります。接続情報には以下が含まれる必要があります。

  • ソースデータベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

SQL Serverデータベースに接続している場合、 SRC_DB_URL は

Microsoft JDBC URL (推奨)または JTDSのURL の形式を取ります。

Microsoft JDBC URL#

既定では、Microsoft JDBC Driver for SQL Serverは、クライアントとSQL Server間のすべての通信にTLS暗号化を使用します。 TLS暗号化を無効にする場合は、 encrypt をfalse に設定します。 JDBC Type 4ドライバーを使用したMicrosoft SQL Serverへの接続の詳細については、 Building the connection URL を参照してください。

jdbc:sqlserver://<server_name>:<port>[;databaseName=<database_id>][;encrypt=false]

SQLサーバーのURLには、次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • sqlserver —サーバータイプは常にsqlserver です。

  • <server_name> —ソースサーバーが実行されているホストの名前またはIPアドレス。

  • <port> —ソースデータベースリスナーが監視しているポート番号。

  • <database_id> —ソースデータベースの名前。

  • SRC_DB_USER —特権SQL Serverユーザーの名前を指定します。

  • SRC_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。

JTDSのURL#

jdbc:jtds:sqlserver://<server_name>:<port>/<database_id>

Tip

JTDSドライバーは、古いバージョンのMicrosoft SQL ServerをサポートするオープンソースのJDBC 3.0 Type 4ドライバーです。 http://jtds.sourceforge.net/ を参照してください。 Migration Toolkitを使用してMicrosoft SQL Serverの新しいバージョンを接続する場合、 Microsoft JDBC Driver for SQL Serverをお勧めします。

SQLサーバーのURLには、次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • jtds —ドライバー名は常にjtds です。

  • sqlserver —サーバータイプは常にsqlserver です。

  • <server_name> —ソースサーバーが実行されているホストの名前またはIPアドレス。

  • <port> —ソースデータベースリスナーが監視しているポート番号。

  • <database_id> —ソースデータベースの名前。

  • SRC_DB_USER —特権SQL Serverユーザーの名前を指定します。

  • SRC_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。

MySQL URLの定義#

Migration Toolkitは、MySQLデータベースからAdvanced ServerまたはPostgreSQLデータベースへの移行を支援します。 MySQLから移行する場合、 toolkit.properties ファイルでMySQLソースデータベースの接続仕様を指定する必要があります。接続情報には以下が含まれる必要があります。

  • ソースデータベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

MySQLから移行する場合、 SRC_DB_URL はJDBC URLの形式を取ります。例:

jdbc:mysql://<host_name>[:<port>]/<database_id>

URLには次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • mysql —サブプロトコルは常にmysql です。

  • <host_name> —ソースサーバーが実行されているホストの名前またはIPアドレス。

  • [<port>] — MySQLデータベースリスナーが監視しているポート番号。

  • <database_id> —ソースデータベースの名前。

  • SRC_DB_USER —特権MySQLユーザーの名前を指定します。

  • SRC_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。

注釈

  • データ型`tinyInt(1)` を使用して0および1以外のバイト値をMySQLソースデータベースに保存する場合、MySQL Connector/J JDBC Driver URLにオプションパラメーター`?tinyInt1isBit=false` を追加してください。

  • MySQL Connector/J JDBC Driver 8.0.26のバグにより、特定の場合に外部キー制約の移行が失敗します。 EDBは、 Migration Toolkitを使用してデータを移行するためにこのドライバーを使用しないことをお勧めします。代わりに、 MySQL Connector/J JDBC Driver 8.0.30以降を使用してください。

このバグの詳細については、 MySQL bug report を参照してください。

TINYINT(1) は、PostgreSQL / EDB Postgres Advanced ServerのBIT(1) にマップされます(これは、場合によっては期待されない場合があります)。しかし、MySQL JDBCドライバーはBIT(1) として報告するため、 Migration ToolkitはそれをPostgreSQL / EDB Postgres Advanced ServerのBIT(1) にマッピングします。

  • 128〜127の値を保持できるTINYINT(1) とは異なり、 BIT(1) は0と1のみを保持できます。 したがって、このフィールドに0と1以外の値を保存する場合は、MySQL JDBCドライバーのデフォルトの動作を変更する必要があります。ドライバーがTINYINT として報告するようにします。

この動作を変更するには、接続文字列で次のURLオプションを設定します。

jdbc:mysql://localhost:3306/world?tinyInt1isBit=false

この場合、JDBCドライバーはTINYINT(1) をTINYINT として報告し、ターゲットのPostgreSQL / EDB Postgres Advanced ServerのSMALLINT にマップされます。

Sybase URLの定義#

Migration Toolkitは、SybaseデータベースからAdvanced Serverデータベースへの移行に役立ちます。 Sybaseから移行する場合、 toolkit.properties ファイルでSybaseソースデータベースの接続仕様を指定する必要があります。接続情報には以下が含まれる必要があります。

  • ソースデータベースのURL

  • 特権ユーザーの名前

  • 指定されたユーザーに関連付けられたパスワード

Sybaseから移行する場合、 SRC_DB_URL はJTDS URLの形式を取ります。例:

jdbc:jtds:sybase://<host_name>[:<port>]/<database_id>

Tip

Sybase ASEおよびMicrosoft SQL Serverの古いバージョン用のオープンソースJDBC 3.0タイプ4ドライバーについては、 http://jtds.sourceforge.net/ を参照してください。

SybaseのURLには、次の情報が含まれています。

  • jdbc —プロトコルは常にjdbc です。

  • jtds —ドライバー名は常にjtds です。

  • sybase —サーバータイプは常にsybase です。

  • <host_name> —ソースサーバーが実行されているホストの名前またはIPアドレス。

  • <port> — Sybaseデータベースリスナーが監視しているポート番号。

  • <database_id> —ソースデータベースの名前。

  • SRC_DB_USER —特権Sybaseユーザの名前を指定します。

  • SRC_DB_PASSWORD —指定されたユーザーのパスワードが含まれています。