Overview
========

.. container:: registered_link
   :name: functionity_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`` モジュールを有効にします。

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

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

・ Automated Storage
Managementは、システム固有のボリューム管理ソフトウェアに置き換えることができます。

-  圧縮ファイルシステム上にある表領域にデータを格納することにより、テーブル圧縮を実装できます。

-  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 <Migration Toolkit>`  を参照してください。
