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`` ファイルを示しています。

.. figure:: /images/building_toolkit.properties.png
   :width: 70% 
   :alt: 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``
   は、ターゲットデータベースユーザーのパスワードを指定します。

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

BigAnimalでターゲットデータベースを指定する場合は、
 :ref:`BigAnimal URLの定義 <BigAnimal URLの定義>` を参照してください。

Advanced Server URLの定義
-------------------------

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

-  Oracle

-  PostgreSQL

-  MySQL

-  Sybase

-  SQL Server

各データベースタイプから移行されたオブジェクトの最終的なリストについては、
 :ref:`Functionality overview <Overview>` を参照してください。

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

-  データベースのURL

-  特権ユーザーの名前

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

URLはJDBC標準に準拠し、次のフォームます。

.. code:: text

   {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

各データベースタイプから移行されたオブジェクトの最終的なリストについては、
 :ref:`Functionality overview <Overview>` を参照してください。

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

-  データベースのURL

-  特権ユーザーの名前

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

PostgreSQL URLはJDBC標準に準拠し、次のフォームます。

.. code:: text

   {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のフォームを取ります。例

.. code:: text

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

..  Note::
   ターゲットデータベース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”のいずれか。
   :ref:`Recommended settings for SSL mode <../../../biganimal/latest/using_cluster/02_connecting_your_cluster/connecting_from_a_client/#recommended-settings-for-ssl-mode>` を参照してください。 BigAnimalポータルの **Connect**
   タブの **Service URI** 値の最後にリストされています。

Oracle URLの定義
----------------

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

-  OracleデータベースのURL

-  特権ユーザーの名前

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

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

.. code:: text

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

2番目のフォームは次のとおりです。

.. code:: text

   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``
   コマンドを使用してOracleユーザーにDBA特権を付与して、目的のデータベースオブジェクトをすべて移行します。

-  ``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`` は、
 :ref:`Microsoft JDBC URL <Microsoft JDBC URL>` 推奨または :ref:`JTDS URL <JTDS URL>` のフォームを取ります。

Microsoft JDBC URL
^^^^^^^^^^^^^^^^^^

デフォルトでは、 SQL Server用のMicrosoft JDBC
Driverは、クライアントとSQL
Server間のすべての通信にTLS暗号化を使用します。
TLS暗号化を無効にする場合は、 ``encrypt`` を\ ``false`` に設定します。
JDBCタイプ4ドライバーを使用してMicrosoft SQL
Serverへの接続の詳細については、 `Building the connection URL <https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver16>`_ を参照してください。

.. code:: text

    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
^^^^^^^^

.. code:: text

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

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

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のフォームを取ります。例

.. code:: text

   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`` —指定されたユーザーのパスワードが含まれます。

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

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

このバグの詳細については、 `MySQL bug report <https://bugs.mysql.com/bug.php?id=95280>`_ を参照してください。

``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のフォームを取ります。例

.. code:: text

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

..  Tip::
   Sybase ASEおよび古いバージョンのMicrosoft SQL Server用のオープンソースJDBC 3.0タイプ4ドライバーについては、 `http://jtds.sourceforge.net/ <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`` —指定されたユーザーのパスワードが含まれます。
