Overview
========

Migration
Toolkitは、移行プロセスの詳細な制御を提供する強力なコマンドラインツールです。
Migration Toolkitの使用は、2段階のプロセスです。

1. ``toolkit.properties``
   ファイルを編集して、ソースデータベースとターゲットデータベースを指定します。

2. コマンドラインでMigration
   Toolkitを呼び出し、移行オプションを指定します。

Migration Toolkitは、データベースオブジェクトとデータを次の場所からEDB
Postgres Advanced
ServerまたはPostgreSQLデータベースへの移行に役立ちます。

-  Oracle

-  MySQL

-  SQL Server

Migration
Toolkitを使用すると、データベースオブジェクトとデータをSybaseからEDB
Postgres Advanced Serverデータベースに移行することもできます。Migration
Toolkitを使用して、 EDB Postgres Advanced
ServerとPostgreSQL間で移行することもできます。Migration
Toolkitには多くのオプションが含まれており、移行プロセスを詳細に制御できます。

-  ``-safeMode`` オプションを使用して、移行時に各行をコミットします。

-  ``-fastCopy``
   オプションを使用してWALロギングをバイパスし、移行を最適化します。

-  ``-batchSize``
   オプションを使用して、一括挿入のバッチサイズを制御します。

-  ``-cpBatchSize``
   オプションを使用して、COPYコマンドで使用するバッチサイズを指定します。

-  ``-lobBatchSize``
   オプションを使用して、ラージオブジェクトデータ型に使用されるバッチサイズを指定します。

-  ``-filterProp``
   オプションを使用して、指定した条件を満たす行のみを移行します。

-  ``-customColTypeMapping``
   オプションを使用して、選択した列のデータ型を変更します。

-  移行前に ``-dropSchema``
   オプションを使用して、既存のスキーマを削除し、新しいスキーマを作成します。

-  EDB Postgres Advanced Serverでは、 ``-allDBLinks``
   オプションを使用してすべてのOracleデータベースリンクを移行します。

-  EDB Postgres Advanced Serverでは、 ``-copyViaDBLinkOra``
   オプションを使用して\ ``dblink_ora`` モジュールを有効にします。

-  ``-connRetryCount <connection_attempts>``
   オプションを使用して、データの移行中にターゲットデータベース接続が失われた場合に実行する再試行回数を指定します。

-  ``-connRetryInterval <seconds>``
   オプションを使用して、データ移行中に各ターゲットデータベースに再接続を試行する前に待機する秒数を指定します。

-  ``-abortConnOnFailure <true/false>``
   オプションを使用して、データの移行中にすべてのターゲットデータベースの再接続が失敗した場合に、移行を中止するかどうかを指定します。デフォルトは\ ``true``
   で、指定された\ ``-connRetryCount``
   しきい値の後に接続が失敗した場合にセッションを中止します。

-  ``-pgIdleTxSessionTimeOut <seconds>``
   を使用して、MTK接続セッションのPostgreSQLまたはEDB Postgres Advanced
   Server ``idle_in_transaction_session_timeout``
   構成オプションの値をオーバーライドします。

オブジェクト移行のサポート
--------------------------

Migration
Toolkitは、オブジェクト定義DDL、テーブルデータ、またはその両方を移行します。次の表には、Migration
Toolkitできるデータベースオブジェクトのタイプのプラットフォーム固有のリストが含まれています。

.. csv-table::
  :header: Object,Oracle,Sybase,SQL Server,MySQL
  :widths: auto
  :align: left
  :class: longtable

  Schemas,X,X,X,X
  Tables,X,X,X,X
  List-partitioned table,X,"","",""
  Range-partitioned table,X,"","",""
  Hash partitioned table,X,"","",""
  Constraints,X,X,X,X
  Indexes,X,X,X,X
  Triggers,X,"","",""
  Table data,X,X,X,X
  Views,X,"",X,""
  Materialized views,X,"","",""
  Packages,X,"","",""
  Procedures,X,"","",""
  Functions,X,"","",""
  Sequences,X,"","",""
  Users/Roles,X,"","",""
  Profiles,X,"","",""
  Object types,X,"","",""
  Object type methods,X,"","",""
  Database links,X,"","",""
  Queues,X,"","",""

インポートされるオブジェクトの詳細な制御を提供するコマンドの詳細については、
 :ref:`スキーマオブジェクト選択オプション <スキーマオブジェクト選択オプション>` を参照してください。

オンライン移行とオフライン移行
------------------------------

Migration Toolkitは、Postgresデータベースにすぐに直接移行できます
*オンライン移行*
。後でPostgresデータベースでオブジェクト定義を再作成するために使用するスクリプトを生成することもできます
*オフライン移行* 。

デフォルトでは、Migration
ToolkitはPostgresデータベースにオブジェクトを直接作成します。または、
``-offlineMigration``
オプションを含めて、移行されたオブジェクトまたはデータを新しいデータベースに再現するために後で使用できるSQLスクリプトを生成します。移行ツールキットを実行する前に、Migration
Toolkitによって生成された移行スクリプトをカスタマイズすることにより、移行されたオブジェクトを変更できます。
``-offlineMigration``
オプションを使用すると、システム負荷に最適なときに実際の移行をスケジュールできます。

``-offlineMigration`` オプションの詳細については、
 :ref:`オフライン移行オプション <オフライン移行オプション>` を参照してください。

制限事項
--------

EDB Postgres Advanced
Serverは、一部のOracle機能の完全なサポートと、他の機能の部分的なサポートを提供します。
Migration
Toolkitは、サポートされていない機能を使用するオブジェクトを移行できません。

場合によっては、Migration
Toolkitは、部分的な互換性を提供する機能を使用するオブジェクトを移行できます。他の場合、
EDB Postgres Advanced Serverは適切な回避策をサポートします。

全文検索は、Oracleと完全な互換性のない機能の例です。 EDB Postgres
Advanced
Serverデータベースには、かなり前から全文検索のサポートが含まれていますが、実装はOracleのものとは異なります。
Migration Toolkitは、この機能を使用するオブジェクトを移行できません。

EDB Postgres Advanced
Serverは、他の機能をまだサポートしていません。このカテゴリの機能には、自動ストレージ管理、テーブル圧縮、外部テーブルが含まれます。多くの場合、成功する回避策を実装できます。

-  自動ストレージ管理をシステム固有のボリューム管理ソフトウェアに置き換えることができます。

-  圧縮ファイルシステムにあるテーブルスペースにデータを保存することにより、テーブル圧縮を実装できます。

-  外部テーブルはEDB Postgres Advanced
   Serverには存在しませんが、フラットテキストファイルをデータベースのステージングテーブルにロードすることができます。
   EDB*Loaderユーティリティを使用して、データをEDB Postgres Advanced
   Serverデータベースにすばやくロードすることをお勧めします。

-  複数のプロファイルをOracleデータベースからEDB Postgres Advanced
   Serverに移行する場合、移行の完了時にプロファイルをユーザーに手動で割り当てる必要があります。

サポートされていないPostgres機能
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Migration Toolkitは、次のPostgres機能の移行をサポートしていません。

-  ``OPERATOR CLASS``

-  ``OPERATOR FAMILY``

``OPERATOR CLASS`` および\ ``OPERATOR FAMILY`` の詳細については、
 :ref:`PostgreSQL core documentation <Installing and upgrading>` を参照してください。
