Migration errors
================

.. container:: registered_link
   :name: mtk_errors

移行プロセス中、移行の概要に移行の進行状況が表示されます。エラーが発生した場合、概要にはエラーに関する情報が表示されます。移行の概要はログファイルにも書き込まれます。

Linuxでは、ログファイルのデフォルトの場所は次のとおりです。

``$HOME/.enterprisedb/migration-toolkit/logs``

Windowsでは、ログファイルは次の場所に保存されます。

``%HOMEDRIVE%%HOMEPATH%\.enterprisedb\migration-toolkit\logs``

Migration Toolkitの ``-logdir <log_path>``
オプションを使用して、代替のログファイルの場所を指定できます。

.. container:: registered_link
   :name: connection_errors

接続エラー
----------

Migration Toolkitは、
 :ref:`toolkit.properties file <Specifying connection properities>` からの情報を使用して、ソースおよびターゲットデータベースに接続します。
Migration Toolkitの使用時に発生する接続エラーのほとんどは、
``toolkit.properties`` ファイルで指定された情報に関連しています。

無効なユーザー名/パスワード
^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitを使用してOracleデータベースから移行を実行しようとすると、次のエラーが表示されます。*

.. code:: text

   MTK-11009: Error Connecting Database "Oracle"
   DB-1017: java.sql.SQLException: ORA-01017: invalid username/password;
   logon denied
   The user name or password specified in the `toolkit.properties` file is
   not valid to use to connect to the Oracle source database.

このエラーを解決するには、 ``toolkit.properties`` ファイルを編集し、
``SRC_DB_USER`` および\ ``SRC_DB_PASSWORD``
プロパティで移行を実行する特権を持つ有効なユーザーの名前とパスワードを指定します。

接続が拒否されました：FATAL：パスワード
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitで移行を実行しようとすると、次のエラーが表示されます。*

.. code:: text

   MTK-11009: Error Connecting Database "EDB Postgres EDB Postgres Advanced Server"
   DB-28P01: com.edb.util.PSQLException: FATAL: password authentication
   failed for user "name"

``toolkit.properties``
ファイルで指定されたユーザー名またはパスワードは、Postgresデータベースへの接続に使用するのに有効ではありません。

このエラーを解決するには、 ``toolkit.properties`` ファイルを編集し、
``TARGET_DB_USER`` および\ ``TARGET_DB_PASSWORD``
プロパティで移行を実行する特権を持つ有効なユーザーの名前とパスワードを指定します。

例外：ORA-28000：アカウントはロックされています
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitを使用してOracleデータベースから移行を実行しようとすると、次のエラーメッセージが表示されます。*

.. code:: text

   MTK-11009: Error Connecting Database "Oracle"
   DB-28000: java.sql.SQLException: ORA-28000: the account is locked
   The Oracle account associated with the user name specified in the
   toolkit.properties file is locked.

このエラーを解決するには、Oracleサーバーのユーザーアカウントのロックを解除するか、
``toolkit.properties`` ファイルを編集して、 ``SRC_DB_USER``
および\ ``SRC_DB_PASSWORD``
パラメーターで移行を実行する特権を持つ有効なユーザーの名前とパスワードを指定します。

例外：oracle.jdbc.driver.OracleDriver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitで移行を実行しようとすると、移行が失敗し、次のエラーメッセージが表示されます。*

.. code:: text

   MTK-11009: Error Connecting Database "Oracle"
   java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

Migration Toolkitを使用する前に
、移行元のデータベースに適切なJDBCドライバーをダウンロードしてインストールする必要があります。完全な手順については、
 :ref:`Installing a JDBC driver <Installing a JDBC driver>` を参照してください。

I/O例外：ネットワークアダプターは接続を確立できませんでした
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitで移行を実行しようとすると、次のエラーが表示されます。*

.. code:: text

   MTK-11009: Error Connecting Database "Oracle"
   DB-17002: java.sql.SQLException: Io exception: The
   Network Adapter could not establish the connection

``toolkit.properties`` ファイルで指定されたソースデータベースのJDBC
URLには、無効な接続プロパティが含まれています。

このエラーを解決するには、 :ref:`toolkit.properties file <Specifying connection properities>`  を編集し、 ``SRC_DB_URL``
プロパティにソースデータベースの有効な接続情報を指定します。
``SRC_DB_URL``
値はデータベース固有です。ソースデータベースタイプの詳細については、
 :ref:`Building the toolkit-properties file <Specifying connection properities>` を参照してください。

例外：「ターゲット」データベースに指定されたURLは無効です
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MigrationToolkitで移行を実行しようとすると、次のエラーが表示されます。*

.. code:: text

   MTK-10045: The URL specified for the "target" database is invalid.
   Check the connectivity credentials.

``toolkit.properties`` ファイルで指定されたターゲットデータベース（EDB
Postgres Advanced Server）のJDBC
URLには、無効な接続プロパティが含まれています。

このエラーを解決するには、 ``toolkit.properties`` ファイルを編集し、
``TARGET_DB_URL``
プロパティにターゲットデータベースの有効な接続情報を指定します。 EDB
Postgres Advanced ServerのJDBC URLの形成については、 :ref:`Defining an EDB Postgres Advanced Server URL <Specifying connection properities>` 
を参照してください。

.. container:: registered_link
   :name: migration_errors

移行エラー
----------

Migration
Toolkitがターゲットおよびソースデータベースサーバーに正常に接続した後、次のエラーが発生する可能性があります。

エラー：予想される最後の列の後に余分なデータ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*テーブルをオンラインで移行すると、エラーメッセージが表示されます。*

.. code:: text

   MTK-17001: Error Loading Data into Table: table_name
   DB-22P04: com.edb.util.PSQLException: ERROR: extra data after last
   expected column
   Where: COPY table_name, line 5: "50|HR|LOS|ANGELES"

このエラーは、 ``table_name``
の列のデータに区切り文字が含まれる場合に発生します。このエラーを修正するには、区切り文字をテーブルの内容に見つからない文字に変更します。

..  Note::
   この例では、パイプ文字（\|）がテキスト`LOS|ANGELES` に発生し、最後の列に挿入し、 `-copyDelimiter '|'` オプションを使用してMigration Toolkitが実行され、エラーが発生します。

テーブルにデータをロード中にエラーが発生しました: *TABLE_NAME*
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*データのみの移行を実行すると、次のエラーが表示されます。*

.. code:: text

   MTK-17001: Error Loading Data into Table: TABLE_NAME
   DB-42P01: com.edb.util.PSQLException: ERROR: relation
   "schema.\ table_name" does not exist
    *Ialsogettheerror:* 
   Trying to reload table: TABLE_NAME through bulk inserts with a batch
   size of 100
   MTK-17001: Error Loading Data into Table: TABLE_NAME
   DB-42P01: com.edb.util.PSQLException: ERROR: relation
   "schema.\ table_name" does not exist

データを移行する前に、ターゲットデータベースにデータを受け取るテーブルを作成する必要があります。
TABLE_NAMEという名前のテーブルがターゲットデータベースに存在することを確認します。必要に応じてテーブルを作成し、データ移行を再試行します。

制約CONS_NAME_FKの作成中にエラーが発生しました
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*インデックスと制約を含むテーブルの移行を実行すると、次のエラーメッセージが表示されます。*

.. code:: text

   MTK-15001: Error Creating Constraint EMP_DEPT_FK
   DB-42P01: com.edb.util.PSQLException: ERROR: relation "hr.departments"
   does not exist
   Creating Constraint: EMP_JOB_FK
   MTK-15001: Error Creating Constraint EMP_JOB_FK
   DB-42P01: com.edb.util.PSQLException: ERROR: relation "hr.jobs" does not exist
   Creating Constraint: EMP_MANAGER_FK
   Schema HR imported with errors.
   One or more schema objects could not be imported during the migration
   process. Please review the migration output for more details.
   Migration logs have been saved to
   /home/user/.enterprisedb/migration-toolkit/logs
    ****  ****  ****  ****  ****  Migration Summary  ****  ****  ****  ****  **** 
   Tables: 1 out of 1
   Constraints: 4 out of 6
   Total objects: 7
   Successful count: 5
   Failed count: 2
   Invalid count: 0
   List of failed objects
   ======================
   Constraints
   - -------------------

   1. HR.EMPLOYEES.EMP_DEPT_FK

   2. HR.EMPLOYEES.EMP_JOB_FK

移行するテーブルには、ターゲットデータベースに存在しないテーブルの外部キー制約が含まれています。
Migration Toolkitは、外部キー制約を省略してテーブルを作成します。

Migration Toolkitコマンドに\ ``-skipFKConst``
オプションを含めることで、エラーメッセージの生成を回避できます。

テーブルにデータをロード中にエラーが発生しました
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*テーブル定義はすでに移行しています。データをテーブルに移行しようとすると、エラーが発生します。*

.. code:: text

   MTK-17001: Error Loading Data into Table: DEPARTMENTS
   DB-22P04: com.edb.util.PSQLException: ERROR: extra data after last
   expected column
   Where: COPY departments, line 1: "10 Administration 200 1700"
   Trying to reload table: DEPARTMENTS through bulk inserts with a batch
   size of 100
   MTK-17000: Batch entry 0 INSERT INTO hr.DEPARTMENTS VALUES (10,
   Administration, 200, 1700); was aborted. Call getNextException to see
   the cause.
   DB-42601: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
   hr.DEPARTMENTS VALUES (10, Administration, 200, 1700); was aborted.
   Call getNextException to see the cause., Skipping Batch
   MTK-17000:ERROR: INSERT has more expressions than target columns
   Position: 48
   [DEPARTMENTS] Table Data Load Summary: Total Time(s): 0.037 Total Rows:0
   Data Load Summary: Total Time (sec): 0.168 Total Rows: 0 Total Size(MB):0.0
   Schema HR imported with errors.

ターゲットデータベースのテーブル定義が、移行されたデータと一致しません。ターゲットテーブルまたはソーステーブルを変更した場合は、テーブル定義とデータに互換性があることを確認します。

エラー：タイプに対して値が長すぎます
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

※テーブル定義は移行済みです。データをテーブルに移行しようとすると、次のエラーが表示されます。\*

.. code:: text

   MTK-17001: Error Loading Data into Table: DEPARTMENTS
   DB-22001: com.edb.util.PSQLException: ERROR: value too long for type
   character(1)
   Where: COPY departments, line 1, column location_id: "1700"
   Trying to reload table: DEPARTMENTS through bulk inserts with a batch
   size of 100
   MTK-17000: Batch entry 0 INSERT INTO hr.DEPARTMENTS VALUES (10,
   Administration, 200, 1700); was aborted. Call getNextException to see
   the cause.
   DB-22001: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
   hr.DEPARTMENTS VALUES (10, Administration, 200, 1700); was aborted.
   Call getNextException to see the cause., Skipping Batch
   MTK-17000:ERROR: value too long for type character(1)

ターゲットデータベースの列は、移行されたデータを受け取るのに十分な大きさではありません。この問題は、移行後にテーブル定義が変更された場合に発生する可能性があります。列名（この例ではlocation_id）は、
``Where:`` で始まる行で識別されます。

ここで： ``COPY departments, line 1, column location_id: "1700"``

問題を解決するには、列サイズを調整して、移行を再試行します。

ERROR：スレッドの例外：OutOfMemoryError
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*MySQLデータベースから移行するときに、次のエラーが発生します。*

.. code:: text

   Loading Table: big_range ...
   Exception in thread "dataload_job_1" java.lang.OutOfMemoryError: Java
   heap space
   at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1370)
   at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2369)
   at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:451)
   at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
   at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
   at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
   at com.edb.dbhandler.mysql.Data.getTableData(Data.java:90)
   at com.edb.DataLoader.loadDataInFastMode(DataLoader.java:594)
   at com.edb.DataLoader.run(DataLoader.java:186)
   at java.lang.Thread.run(Thread.java:722)

デフォルトでは、MySQL
JDBCドライバーは、1回のネットワークラウンドトリップでテーブル内のすべての行をMigration
Toolkitにフェッチします。この動作は、大きなテーブルで使用可能なメモリを簡単に超える可能性があります。

問題を解決するには、移行を再試行するときにコマンドライン引数として\ ``-fetchSize 1``
を指定します。
