

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

# を使用した IBM DB2 for z/OS データベースへの接続 AWS Schema Conversion Tool
<a name="CHAP_Source.DB2zOS"></a>

 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 をソースデータベースとして使用するための前提条件
<a name="CHAP_Source.DB2zOS.Prerequisites"></a>

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 の権限
<a name="CHAP_Source.DB2zOS.Permissions"></a>

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 への接続
<a name="CHAP_Source.DB2zOS.Connecting"></a>

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

**IBM Db2 for z/OS ソースデータベースに接続するには**

1. で AWS Schema Conversion Tool、**ソースの追加**を選択します。

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

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

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

1. からデータベース認証情報を使用する AWS Secrets Manager か、手動で入力します。
   + Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。

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

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

     Secrets Manager のデータベース認証情報を使用する方法については、「[AWS Secrets Manager の の設定 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)」を参照してください。
   + IBM Db2 for z/OS ソースデータベース接続情報を手動で入力するには、以下の手順に従ってください。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)

1. **接続のテスト**を選択して、 がソースデータベースに接続 AWS SCT できることを確認します。

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

## MySQL をターゲットデータベースとする場合の権限
<a name="CHAP_Source.DB2zOS.ConfigureMySQL"></a>

ターゲットとして MySQL に必要な権限を以下に示します。
+ CREATE ON \$1.\$1
+ ALTER ON \$1.\$1
+ DROP ON \$1.\$1
+ INDEX ON \$1.\$1
+ REFERENCES ON \$1.\$1
+ SELECT ON \$1.\$1
+ CREATE VIEW ON \$1.\$1
+ SHOW VIEW ON \$1.\$1
+ TRIGGER ON \$1.\$1
+ CREATE ROUTINE ON \$1.\$1
+ ALTER ROUTINE ON \$1.\$1
+ EXECUTE ON \$1.\$1
+ SELECT ON mysql.proc
+ INSERT, UPDATE ON AWS\$1DB2ZOS\$1EXT.\$1
+ INSERT, UPDATE, DELETE ON AWS\$1DB2ZOS\$1EXT\$1DATA.\$1
+ CREATE TEMPORARY TABLES ON AWS\$1DB2ZOS\$1EXT\$1DATA.\$1

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

```
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\$1name*] をお客様の設定のユーザー名に置き換えます。*your\$1password* を安全なパスワードに置き換えます。

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

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

## ターゲットデータベースとしての PostgreSQL の権限
<a name="CHAP_Source.DB2zOS.ConfigurePostgreSQL"></a>

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

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

変換されたパブリックシノニムを使用するには、データベースのデフォルト検索パスを `"$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\$1name*] をお客様の設定のユーザー名に置き換えます。[*db\$1name*] をターゲットデータベースの名前に置き換えます。最後に、[*your\$1password*] を安全なパスワードに置き換えます。

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

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

## Db2 for z/OS から PostgreSQL への変換設定
<a name="CHAP_Source.DB2zOS.PostgreSQLConversionSettings"></a>

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 への変換に使用できるすべての設定が表示されます。

の Db2 for z/OS から PostgreSQL への変換設定には、以下のオプション AWS SCT が含まれています。
+ 変換されたコード内のアクション項目に関するコメントの数を制限する。

  選択した**重要度以上のアクション項目の変換されたコードにコメントを追加する で**、アクション項目の重要度を選択します。 は、選択した重要度以上のアクション項目の変換されたコードにコメント AWS SCT を追加します。

  たとえば、変換したコード内のコメントの数を最小限に抑えるには、[**エラーのみ**] を選択します。変換したコードのすべてのアクション項目にコメントを含めるには、[**すべてのメッセージ**] を選択します。
+ ターゲットデータベース内の制約に固有の名前を生成するには。

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

  AWS SCT では、DML ステートメント内の列名、式、句のレイアウトをソースコードと同様の位置と順序に維持できます。そのためには、[**DML ステートメントの列名、式、句のフォーマットを保持**] するで [**はい**] を選択します。
+ テーブルパーティションを変換スコープから除外するには。

  AWS SCT は、変換中にソーステーブルのすべてのパーティションをスキップできます。そのためには、[**変換スコープからテーブルパーティションを除外する**] を選択します。
+ 増加に応じてパーティション化されたテーブルに自動パーティション化を使用するには。

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

  AWS SCT はパーティションの数を自動的に決定できます。そのためには、[**パーティション数を比例的に増やす**] を選択し、最大パーティション数を入力します。
+ 動的結果セットを refcursor データ型の値の配列として返すには。

  AWS SCT は、動的結果セットを返すソースプロシージャを、追加の出力パラメータとしてオープンリフレクザーの配列を持つプロシージャに変換できます。そのためには、[**参照カーソルの配列を使ってすべての動的結果セットを返す**] を選択します。
+ 日付と時刻の値を文字列表現に変換する際に使用する標準を指定するには。

  AWS SCT は、サポートされている業界形式のいずれかを使用して、日付と時刻の値を文字列表現に変換できます。そのためには、[**日付値の文字列表現を使用する**] または [**時間値の文字列表現を使用する**] を選択します。次に、以下のいずれかの標準を選択します。
  + 国際標準化機構 (ISO)
  + IBM 欧州規格 (EUR)
  + IBM 米国規格 (米国)
  + 日本工業規格西暦 (JIS)