IBM Db2 for z/OS を AWS SCT のソースとして使用する - AWS Schema Conversion Tool

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IBM Db2 for z/OS を AWS SCT のソースとして使用する

AWS SCT を使用して、IBM Db2 for z/OS からのスキーマ、コードオブジェクトおよびアプリケーションコードを次のターゲットに変換できます。

  • Amazon RDS for MySQL

  • Amazon Aurora MySQL 互換エディション

  • Amazon RDS for PostgreSQL

  • Amazon Aurora PostgreSQL 互換エディション

Db2 for z/OS をソースデータベースとして使用するための前提条件

IBM Db2 for z/OS バージョン 12 ファンクションレベル 100 のデータベースバージョンは、IBM Db2 for z/OS バージョン 12 の新機能のほとんどをサポートしていません。このデータベースバージョンは、Db2 バージョン 11 へのフォールバックと Db2 バージョン 11 とのデータ共有をサポートしています。Db2 バージョン 11 のサポートされていない機能の変換を避けるため、IBM Db2 for z/OS データベース機能レベル 500 以上を AWS SCT のソースとして使用することをお勧めします。

次のコード例を使用して、ソース IBM Db2 for z/OS データベースのバージョンを確認できます。

SELECT GETVARIABLE('SYSIBM.VERSION') as version FROM SYSIBM.SYSDUMMY1;

このコードがバージョン DSN12015 以上を返すことを確認してください。

次のコード例を使用して、ソース IBM Db2 for z/OS データベース内の APPLICATION COMPATIBILITY 特殊レジスタの値を確認できます。

SELECT CURRENT APPLICATION COMPATIBILITY as version FROM SYSIBM.SYSDUMMY1;

このコードがバージョン V12R1M500 以上を返すことを確認してください。

ソースデータベースとしての Db2 for z/OS の権限

Db2 for z/OS データベースに接続し、システムカタログとテーブルを読み取るのに必要な権限は次のとおりです。

  • SELECT ON SYSIBM.LOCATIONS

  • SELECT ON SYSIBM.SYSCHECKS

  • SELECT ON SYSIBM.SYSCOLUMNS

  • SELECT ON SYSIBM.SYSDATABASE

  • SELECT ON SYSIBM.SYSDATATYPES

  • SELECT ON SYSIBM.SYSDUMMY1

  • SELECT ON SYSIBM.SYSFOREIGNKEYS

  • SELECT ON SYSIBM.SYSINDEXES

  • SELECT ON SYSIBM.SYSKEYCOLUSE

  • SELECT ON SYSIBM.SYSKEYS

  • SELECT ON SYSIBM.SYSKEYTARGETS

  • SELECT ON SYSIBM.SYSJAROBJECTS

  • SELECT ON SYSIBM.SYSPACKAGE

  • SELECT ON SYSIBM.SYSPARMS

  • SELECT ON SYSIBM.SYSRELS

  • SELECT ON SYSIBM.SYSROUTINES

  • SELECT ON SYSIBM.SYSSEQUENCES

  • SELECT ON SYSIBM.SYSSEQUENCESDEP

  • SELECT ON SYSIBM.SYSSYNONYMS

  • SELECT ON SYSIBM.SYSTABCONST

  • SELECT ON SYSIBM.SYSTABLES

  • SELECT ON SYSIBM.SYSTABLESPACE

  • SELECT ON SYSIBM.SYSTRIGGERS

  • SELECT ON SYSIBM.SYSVARIABLES

  • SELECT ON SYSIBM.SYSVIEWS

Db2 for z/OS テーブルを PostgreSQL パーティションテーブルに変換するには、次に示す RUNSTATS ユーティリティを使用してデータベース内のテーブルスペースとテーブルに関する統計を収集します。

LISTDEF YOURLIST INCLUDE TABLESPACES DATABASE YOURDB RUNSTATS TABLESPACE LIST YOURLIST TABLE (ALL) INDEX (ALL KEYCARD) UPDATE ALL REPORT YES SHRLEVEL REFERENCE

前述の例では、YOURDB プレースホルダーをソースデータベースの名前に置き換えます。

ソースとしての Db2 for z/OS への接続

以下の手順を使用して、Db2 for z/OS ソースデータベースを AWS SCT に接続します。

IBM Db2 for z/OS ソースデータベースに接続するには
  1. AWS Schema Conversion Tool で、[Add source] (ソースの追加) を選択します。

  2. [Db2 for z/OS]、[次へ] の順に選択します。

    [Add source] (ソースの追加) ダイアログボックスが表示されます。

  3. [接続名] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。

  4. AWS Secrets Manager からのデータベース認証情報を使用するか、手動で入力してください。

    • Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。

      1. [AWS シークレット] で、シークレットの名前を選択します。

      2. [入力] を選択すると、Secrets Manager のデータベース接続ダイアログボックスにすべての値が自動的に入力されます。

      Secrets Manager のデータベース認証情報を使用する方法については、「AWS Secrets Manager を使用する」を参照してください。

    • IBM Db2 for z/OS ソースデータベース接続情報を手動で入力するには、以下の手順に従ってください。

      パラメータ アクション
      [Server name] (サーバー名)

      ソースデータベースサーバーのドメインネームシステム (DNS) 名または IP アドレスを入力します。

      Server port

      ソースデータベースサーバーへの接続に使用するポートを入力します。

      場所

      アクセスする Db2 ロケーションの一意名を入力します。

      User name (ユーザー名) と [Password] (パスワード)

      データベース認証情報を入力して、ソースデータベースサーバーに接続します。

      AWS SCT でパスワードを使用して、プロジェクト内のデータベースに接続することを選択する場合にのみソースデータベースに接続します。ソースデータベースのパスワードの漏洩を防ぐため、デフォルトで AWS SCT にパスワードは保存されません。AWS SCT プロジェクトを閉じて再び開いた場合は、必要に応じて、ソースデータベースへの接続に使用するパスワードの入力を求められます。

      SSL の使用

      データベースへの接続に Secure Sockets Layer (SSL) を使用する場合は、このオプションを選択します。[SSL] タブで、必要に応じて、以下の追加情報を提供します。

      • [信頼ストア]: 証明書を保存している信頼ストアの場所。この場所を [グローバル設定] に追加すると、ここに表示されます。

      Store Password

      AWS SCT は、安全なボールトを作成して、SSL 証明書とデータベースパスワードを保存します。このオプションをオンにすると、データベースのパスワードが保存されるため、パスワードを入力しなくてもデータベースにすばやく接続できます。

      [Db2 for z/OS ドライバーパス]

      ソースデータベースへの接続に使用するドライバのパスを入力します。詳細については、「必要なデータベースドライバーのダウンロード」を参照してください。

      ドライバパスをグローバルプロジェクト設定に保存する場合、ドライバパスは接続ダイアログボックスに表示されません。詳細については、「グローバル設定でのドライバパスの保存」を参照してください。

  5. [Test Connection] (接続のテスト) を選択して、AWS SCT がソースデータベースに正常に接続できることを確認します。

  6. [Connect] (接続) を選択して、ソースデータベースに接続します。

MySQL をターゲットデータベースとする場合の権限

ターゲットとして MySQL に必要な権限を以下に示します。

  • CREATE ON *.*

  • ALTER ON *.*

  • DROP ON *.*

  • INDEX ON *.*

  • REFERENCES ON *.*

  • SELECT ON *.*

  • CREATE VIEW ON *.*

  • SHOW VIEW ON *.*

  • TRIGGER ON *.*

  • CREATE ROUTINE ON *.*

  • ALTER ROUTINE ON *.*

  • EXECUTE ON *.*

  • SELECT ON mysql.proc

  • INSERT, UPDATE ON AWS_DB2ZOS_EXT.*

  • INSERT, UPDATE, DELETE ON AWS_DB2ZOS_EXT_DATA.*

  • CREATE TEMPORARY TABLES ON AWS_DB2ZOS_EXT_DATA.*

次のコード例を使用してデータベースユーザーを作成し、権限を付与できます。

CREATE USER 'user_name' IDENTIFIED BY 'your_password'; GRANT CREATE ON *.* TO 'user_name'; GRANT ALTER ON *.* TO 'user_name'; GRANT DROP ON *.* TO 'user_name'; GRANT INDEX ON *.* TO 'user_name'; GRANT REFERENCES ON *.* TO 'user_name'; GRANT SELECT ON *.* TO 'user_name'; GRANT CREATE VIEW ON *.* TO 'user_name'; GRANT SHOW VIEW ON *.* TO 'user_name'; GRANT TRIGGER ON *.* TO 'user_name'; GRANT CREATE ROUTINE ON *.* TO 'user_name'; GRANT ALTER ROUTINE ON *.* TO 'user_name'; GRANT EXECUTE ON *.* TO 'user_name'; GRANT SELECT ON mysql.proc TO 'user_name'; GRANT INSERT, UPDATE ON AWS_DB2ZOS_EXT.* TO 'user_name'; GRANT INSERT, UPDATE, DELETE ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name'; GRANT CREATE TEMPORARY TABLES ON AWS_DB2ZOS_EXT_DATA.* TO 'user_name';

上記の例の user_name は使用するユーザー名に置き換えます。次に、your_password を安全なパスワードに置き換えます。

Amazon RDS for MySQL をターゲットとして使用するには、log_bin_trust_function_creators パラメータを true に設定し、character_set_serverlatin1 に設定します。これらのパラメータを設定するには、新しい DB パラメータグループを作成するか、既存の DB パラメータグループを変更します。

Aurora MySQL をターゲットとして使用するには、log_bin_trust_function_creators パラメータを true に設定し、character_set_serverlatin1 に設定します。lower_case_table_names パラメータを true に設定します。これらのパラメータを設定するには、新しい DB パラメータグループを作成するか、既存の DB パラメータグループを変更します。

ターゲットデータベースとしての PostgreSQL の権限

PostgreSQL をターゲットとして使用するには、AWS SCT に CREATE ON DATABASE 権限が必要です。ターゲット PostgreSQL データベースごとにこの権限を必ず付与してください。

Amazon RDS for PostgreSQL AWS SCT をターゲットとして使用するには、rds_superuser 権限が必要です。

変換されたパブリックシノニムを使用するには、データベースのデフォルト検索パスを "$user", public_synonyms, public に変更します。

次のコード例を使用してデータベースユーザーを作成し、権限を付与できます。

CREATE ROLE user_name LOGIN PASSWORD 'your_password'; GRANT CREATE ON DATABASE db_name TO user_name; GRANT rds_superuser TO user_name; ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;

上記の例の user_name は使用するユーザー名に置き換えます。[db_name] をターゲットデータベースの名前に置き換えます。最後に、[your_password] を安全なパスワードに置き換えます。

PostgreSQL では、スキーマを削除できるのはスキーマ所有者または superuser のみです。スキーマ所有者が一部のオブジェクトを所有していない場合でも、スキーマとスキーマに含まれるすべてのオブジェクトを削除できます。

異なるユーザーを使用して異なるスキーマを変換してターゲットデータベースに適用すると、AWS SCT で、スキーマを削除できないときにエラーメッセージが表示されることがあります。このエラーメッセージを回避するには、superuser ロールを使用してください。

Db2 for z/OS から PostgreSQL への変換設定

Db2 for z/OS to PostgreSQL の変換設定を編集するには、[設定] を選択し、次に [変換設定] を選択します。上のリストから [Db2 for z/OS] を選択し、次に [Db2 for z/OS – PostgreSQL] または [Db2 for z/OS – Amazon Aurora (PostgreSQL 互換)] を選択します。AWS SCT で、IBM Db2 for z/OS から PostgreSQL への変換に使用できるすべての設定が表示されます。

AWS SCT の Db2 for z/OS から PostgreSQL への変換設定には、以下のオプションが含まれています。

  • 変換されたコード内のアクション項目に関するコメントの数を制限する。

    [変換後のコードにコメントを追加] で、選択した重要度以上のアクションアイテムについて、アクションアイテムの重要度を選択します。AWS SCT は、選択した重要度以上のアクションアイテムについて、変換後のコードにコメントを追加します。

    例えば、変換済みのコード内のコメント数を最小限に抑えるには、[エラーのみ] を選択します。変換済みのコードにすべてのアクション項目のコメントを含めるには、[すべてのメッセージ] を選択します。

  • ターゲットデータベース内の制約に固有の名前を生成するには。

    PostgreSQL では、使用するすべての制約名は一意でなければなりません。AWS SCT では、制約の名前にテーブル名のプレフィックスを追加することで、変換されたコード内の制約に固有の名前を生成できます。AWS SCT ですべての制約に固有の名前が生成されるようにするには、[制約の固有の名前を生成] を選択します。

  • 変換されたコード内の DML ステートメントの列名、式、および句の書式設定を保持するには。

    AWS SCT は、DML ステートメント内の列名、式、句のレイアウトを、ソース コードと同様の位置と順序で保持できます。そのためには、[DML ステートメントの列名、式、句のフォーマットを保持] するで [はい] を選択します。

  • テーブルパーティションを変換スコープから除外するには。

    AWS SCT は、変換中にソーステーブルのすべてのパーティションをスキップできます。そのためには、[変換スコープからテーブルパーティションを除外する] を選択します。

  • 増加に応じてパーティション化されたテーブルに自動パーティション化を使用するには。

    データ移行では、AWS SCT は、指定したサイズより大きいすべてのテーブルを自動的にパーティション分割できます。このオプションを使用するには、[より大きいテーブルのパーティションを強制する] を選択し、テーブルのサイズをギガバイト単位で入力します。次に、パーティション数を入力します。このオプションをオンにすると、AWS SCT でソースデータベースのダイレクトアクセスストレージデバイス (DASD) のサイズが考慮されます。

    AWS SCT はパーティション数を自動的に決定できます。そのためには、[パーティション数を比例的に増やす] を選択し、最大パーティション数を入力します。

  • 動的結果セットを refcursor データ型の値の配列として返すには。

    AWS SCT は、動的結果セットを返すソースプロシージャを、追加の出力パラメータとしてオープンリフカーソル配列を持つプロシージャに変換できます。そのためには、[参照カーソルの配列を使ってすべての動的結果セットを返す] を選択します。

  • 日付と時刻の値を文字列表現に変換する際に使用する標準を指定するには。

    AWS SCT は、サポートされている業界フォーマットのいずれかを使用して、日付と時刻の値を文字列表現に変換できます。そのためには、[日付値の文字列表現を使用する] または [時間値の文字列表現を使用する] を選択します。次に、以下のいずれかの標準を選択します。

    • 国際標準化機構 (ISO)

    • IBM 欧州規格 (EUR)

    • IBM 米国規格 (米国)

    • 日本工業規格西暦 (JIS)