

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

# での診断サポートスクリプトの使用 AWS DMS
<a name="CHAP_SupportScripts"></a>

の使用中に問題が発生した場合 AWS DMS、サポートエンジニアはソースデータベースまたはターゲットデータベースに関する詳細情報を必要とする場合があります。サポートができるだけ早く必要な情報をできるだけ多く AWS 取得できるようにしたいと考えています。そのため、いくつかの主要なリレーショナル データベースエンジンでこの情報を照会するスクリプトを開発しました。

サポートスクリプトがデータベースで使用できる場合は、後述する対応するスクリプトトピックのリンクを使用して、サポートスクリプトをダウンロードできます。スクリプトを検証して確認した後 (以下で説明)、スクリプトのトピックで説明されている手順に従ってスクリプトを実行できます。スクリプトの実行が完了したら、その出力をサポート AWS ケースにアップロードできます (ここでも以下を参照）。

スクリプトを実行する前に、サポートスクリプトをダウンロード時または保存するときに生じた可能性があるエラーを検出できます。これを行うには、スクリプトファイルのチェックサムを によって指定された値と比較します AWS。チェックサムの SHA256 アルゴリズム AWS を使用します。

**チェックサムを使用してサポート スクリプトファイルを検証するには**

1. 提供された最新のチェックサム ファイルを開き、[https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt](https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt) のサポート スクリプトを確認します。例えば、ファイルに次のようなコンテンツがあるとします。

   ```
   MYSQL  dfafd0d511477c699f96c64693ad0b1547d47e74d5c5f2f2025b790b1422e3c8
   ORACLE  6c41ebcfc99518cfa8a10cb2ce8943b153b2cc7049117183d0b5de3d551bc312
   POSTGRES  6ccd274863d14f6f3146fbdbbba43f2d8d4c6a4c25380d7b41c71883aa4f9790
   SQL_SERVER  971a6f2c46aec8d083d2b3b6549b1e9990af3a15fe4b922e319f4fdd358debe7
   ```

1. Support ファイルが含まれているディレクトリで、オペレーティングシステムの SHA256 検証コマンドを実行します。例えば、macOS オペレーティングシステムでは、このトピックで後述する Oracle サポート スクリプトに対して次のコマンドを実行できます。

   ```
   shasum -a 256 awsdms_support_collector_oracle.sql
   ```

1. コマンドの結果を、最新の開いた `sha256Check.txt` ファイルに表示されている値と比較します。2 つの値は一致する必要があります。そうでない場合は、不一致と、クリーンな Support スクリプトファイルの入手方法について、サポートエンジニアに連絡してください。

クリーンな Support スクリプトファイルがある場合は、スクリプトを実行する前に、パフォーマンスとセキュリティの両方の観点から SQL を読み、理解してください。このスクリプトで任意の SQL を楽に実行しにくければ、問題の SQL をコメントアウトするか、削除することができます。許容可能な回避策については、サポートエンジニアに相談することもできます。

正常に完了すると、特に指定されていない限り、スクリプトは読み取り可能な HTML 形式で出力を返します。このスクリプトは、ビジネスを危険にさらす可能性のあるデータやセキュリティの詳細をこの HTML からは除外するように設計されています。また、データベースや環境を変更することはありません。ただし、HTML 内に共有したくない情報がある場合は、HTML をアップロードする前に該当の情報を削除してください。出力ファイルが許容できる内容となったら、サポートケースの**[ケースの詳細]** にある**[添付ファイル]** を使用して出力ファイルをアップロードします。

以下の各トピックでは、サポートされている AWS DMS データベースで使用できるスクリプトとその実行方法について説明します。サポートエンジニアは、以下に記載された特定のスクリプトドキュメントを参照するよう指示します。

**Topics**
+ [Oracle 診断 Support スクリプト](CHAP_SupportScripts.Oracle.md)
+ [SQL Server 診断 Support スクリプト](CHAP_SupportScripts.SQLServer.md)
+ [MySQL 互換データベースの診断サポート スクリプト](CHAP_SupportScripts.MySQL.md)
+ [PostgreSQL 診断 Support スクリプト](CHAP_SupportScripts.PostgreSQL.md)

# Oracle 診断 Support スクリプト
<a name="CHAP_SupportScripts.Oracle"></a>

以下は、オンプレミスまたは Amazon RDS for Oracle データベースの分析に使用できる診断サポートスクリプトです AWS DMS 。これらのスクリプトは、ソース エンドポイントまたはターゲット エンドポイントで使用できます。スクリプトはすべて SQL\$1Plus コマンドライン ユーティリティで実行するように記述されています。ユーティリティの詳しい使用方法については、Oracle ドキュメントの「[A SQL コマンドラインの使用](https://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_sqlplus.htm)」をご参照ください。

スクリプトを実行する前に、使用するユーザーアカウントに Oracle データベースへのアクセス許可があるか確認してください。表示される許可設定は、ユーザーが次のように作成されたことを前提としています。

```
CREATE USER script_user IDENTIFIED BY password;
```

オンプレミス データベースの場合、以下に示す `script_user` におけるように最小許可を設定します。

```
GRANT CREATE SESSION TO script_user;
GRANT SELECT on V$DATABASE to script_user;
GRANT SELECT on V$VERSION to script_user;
GRANT SELECT on GV$SGA to script_user;
GRANT SELECT on GV$INSTANCE to script_user;
GRANT SELECT on GV$DATAGUARD_CONFIG to script_user;
GRANT SELECT on GV$LOG to script_user;
GRANT SELECT on DBA_TABLESPACES to script_user;
GRANT SELECT on DBA_DATA_FILES to script_user;
GRANT SELECT on DBA_SEGMENTS to script_user;
GRANT SELECT on DBA_LOBS to script_user;
GRANT SELECT on V$ARCHIVED_LOG to script_user;
GRANT SELECT on DBA_TAB_MODIFICATIONS to script_user;
GRANT SELECT on DBA_TABLES to script_user;
GRANT SELECT on DBA_TAB_PARTITIONS to script_user;
GRANT SELECT on DBA_MVIEWS to script_user;
GRANT SELECT on DBA_OBJECTS to script_user;
GRANT SELECT on DBA_TAB_COLUMNS to script_user;
GRANT SELECT on DBA_LOG_GROUPS to script_user;
GRANT SELECT on DBA_LOG_GROUP_COLUMNS to script_user;
GRANT SELECT on V$ARCHIVE_DEST to script_user;
GRANT SELECT on DBA_SYS_PRIVS to script_user;
GRANT SELECT on DBA_TAB_PRIVS to script_user;
GRANT SELECT on DBA_TYPES to script_user;
GRANT SELECT on DBA_CONSTRAINTS to script_user;
GRANT SELECT on V$TRANSACTION to script_user;
GRANT SELECT on GV$ASM_DISK_STAT to script_user;
GRANT SELECT on GV$SESSION to script_user;
GRANT SELECT on GV$SQL to script_user;
GRANT SELECT on DBA_ENCRYPTED_COLUMNS to script_user;
GRANT SELECT on DBA_PDBS to script_user;

GRANT EXECUTE on dbms_utility to script_user;
```

Amazon RDS データベースでは、以下に示すように最小限のアクセス許可を設定します。

```
GRANT CREATE SESSION TO script_user;
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$VERSION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SGA','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$INSTANCE','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$DATAGUARD_CONFIG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$LOG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DATA_FILES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_SEGMENTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOBS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_MODIFICATIONS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_PARTITIONS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_MVIEWS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOG_GROUPS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOG_GROUP_COLUMNS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVE_DEST','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_SYS_PRIVS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_PRIVS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TYPES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_CONSTRAINTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$ASM_DISK_STAT','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SQL','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ENCRYPTED_COLUMNS','script_user','SELECT');

exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_PDBS','script_user','SELECT');

exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY','script_user','EXECUTE');
```

Oracle で使用可能な各 SQL\$1Plus サポート スクリプトのダウンロード、確認、および実行方法について説明します。また、 AWS Support ケースでの出力を確認してアップロードする方法も確認できます。

**Topics**
+ [awsdms\$1support\$1collector\$1oracle.sql スクリプト](#CHAP_SupportScripts.Oracle.Awsdms_Support_Collector_Oracle_Script)

## awsdms\$1support\$1collector\$1oracle.sql スクリプト
<a name="CHAP_SupportScripts.Oracle.Awsdms_Support_Collector_Oracle_Script"></a>

[https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_oracle.sql](https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_oracle.sql) スクリプトをダウンロードします。

このスクリプトは、Oracle データベース構成に関する情報を収集します。スクリプトのチェックサムを必ず検証し、チェックサムが検証する場合は、スクリプト内の SQL コードを確認して、実行しにくいコードをコメントアウトします。スクリプトの整合性と内容に納得できたら、スクリプトを実行できます。

**スクリプトを実行して結果をサポートケースにアップロードするには**

1. 次の SQL\$1Plus コマンドラインを使用して、データベース環境からスクリプトを実行します。

   ```
   SQL> @awsdms_support_collector_oracle.sql
   ```

   スクリプトには、簡単な説明と、実行を続行または中止するプロンプトが表示されます。[Enter] を押して確認します。

1. 次のプロンプトで、移行するスキーマの名前を 1 つだけ入力します。

1. 次のプロンプトで、データベースに接続するように定義したユーザーの名前 (*script\$1user*) を入力します。

1. 次のプロンプトで、検査するデータの日数を入力するか、デフォルトをそのまま使用します。スクリプトは、指定されたデータをデータベースから収集します。

   スクリプトが完了すると、例えば `dms_support_oracle-2020-06-22-13-20-39-ORCL.html` などの出力 HTML ファイルの名前が表示されます。スクリプトは、このファイルを作業ディレクトリに保存します。

1. この HTML ファイルを確認し、共有が不快な情報をすべて削除します。HTML を共有できる場合は、 AWS サポートケースにファイルをアップロードします。ファイルのアップロードの詳細については、「[での診断サポートスクリプトの使用 AWS DMS](CHAP_SupportScripts.md)」をご参照ください。

# SQL Server 診断 Support スクリプト
<a name="CHAP_SupportScripts.SQLServer"></a>

以下は、 AWS DMS 移行設定でオンプレミスまたは Amazon RDS for SQL Server データベースを分析するために使用できる診断サポートスクリプトの説明です。これらのスクリプトは、ソース エンドポイントまたはターゲット エンドポイントで使用できます。オンプレミス データベースの場合は、sqlcmd コマンドライン ユーティリティでこれらのスクリプトを実行します。ユーティリティの使用方法の詳細については、Microsoft ドキュメントの「[sqlcmd-ユーティリティを使用する](https://docs.microsoft.com/en-us/sql/ssms/scripting/sqlcmd-use-the-utility?view=sql-server-ver15)」をご参照ください。

Amazon RDS データベースの場合、sqlcmd コマンドライン ユーティリティを使用して接続することはできません。代わりに、Amazon RDS SQL Server に接続する任意のクライアント ツールを使用して、これらのスクリプトを実行します。

スクリプトを実行する前に、使用するユーザーアカウントに SQL Server データベースへのアクセス許可があるか確認してください。オンプレミス データベースと Amazon RDS データベースの両方で、SQL Server データベースへの `SysAdmin` ロールなしのアクセスに使用するのと同じアクセス許可を使用できます。

**Topics**
+ [オンプレミスの SQL Server データベースに対する最小限のアクセス許可の設定](#CHAP_SupportScripts.SQLServer.onprem)
+ [Amazon RDS SQL Serverデータベースに対する最小限のアクセス許可の設定](#CHAP_SupportScripts.SQLServer.rds)
+ [SQL Server サポートスクリプト](#CHAP_SupportScripts.SQLServer.Scripts)

## オンプレミスの SQL Server データベースに対する最小限のアクセス許可の設定
<a name="CHAP_SupportScripts.SQLServer.onprem"></a>

**オンプレミス SQL Server データベースに対して実行する最小限のアクセス許可を設定するには**

1. SQL Server Management Studio (SSMS) を使用してパスワード認証する `on-prem-user` など新しい SQL Server アカウントを作成します。

1. SSMS の **[User Mappings]** セクションで、**MSDB** および **MASTER** データベース (公開許可を付与します) を選択し、スクリプトを実行するデータベースに `DB_OWNER` ロールを割り当てます。

1. 新しいアカウントのコンテキストメニュー (右クリック) を開き、**[Security]** (セキュリティ) を選択して `Connect SQL` 権限を明示的に付与します。

1. 以下の付与コマンドを実行します。

   ```
   GRANT VIEW SERVER STATE TO on-prem-user;
   USE MSDB;
   GRANT SELECT ON MSDB.DBO.BACKUPSET TO on-prem-user;
   GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO on-prem-user;
   GRANT SELECT ON MSDB.DBO.BACKUPFILE TO on-prem-user;
   ```

## Amazon RDS SQL Serverデータベースに対する最小限のアクセス許可の設定
<a name="CHAP_SupportScripts.SQLServer.rds"></a>

**Amazon RDS SQL Server データベースの最小許可で実行するには**

1. SQL Server Management Studio (SSMS) を使用してパスワード認証する `rds-user` など新しい SQL Server アカウントを作成します。

1. SSMS の **[ユーザーマッピング]** セクションで、**[MSDB]** データベース (パブリックアクセス権限を付与) を選択して、スクリプトを実行するデータベースに `DB_OWNER` ロールを割り当てます。

1. 新しいアカウントのコンテキストメニュー (右クリック) を開き、**[Security]** (セキュリティ) を選択して `Connect SQL` 権限を明示的に付与します。

1. 以下の付与コマンドを実行します。

   ```
   GRANT VIEW SERVER STATE TO rds-user;
   USE MSDB;
   GRANT SELECT ON MSDB.DBO.BACKUPSET TO rds-user;
   GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO rds-user;
   GRANT SELECT ON MSDB.DBO.BACKUPFILE TO rds-user;
   ```

## SQL Server サポートスクリプト
<a name="CHAP_SupportScripts.SQLServer.Scripts"></a>

次のトピックでは、SQL Server で使用可能な各サポート スクリプトをダウンロード、確認、実行する方法について説明します。また、スクリプト出力を確認して AWS Support ケースにアップロードする方法についても説明します。

**Topics**
+ [awsdms\$1support\$1collector\$1sql\$1server.sql スクリプト](#CHAP_SupportScripts.SQLServer.Awsdms_Support_Collector_SQLServer_Script)

### awsdms\$1support\$1collector\$1sql\$1server.sql スクリプト
<a name="CHAP_SupportScripts.SQLServer.Awsdms_Support_Collector_SQLServer_Script"></a>

[https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_sql_server.sql](https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_sql_server.sql) スクリプトをダウンロードします。

**注記**  
この SQL Server 診断サポートスクリプトは、SQL Server 2014 以降のバージョンでのみ実行します。

このスクリプトは、SQL Server データベース構成に関する情報を収集します。スクリプトのチェックサムを必ず検証し、チェックサムが検証する場合は、スクリプト内の SQL コードを確認して、実行しにくいコードをコメントアウトします。スクリプトの整合性と内容に納得できたら、スクリプトを実行できます。

**オンプレミス SQL Server データベースのスクリプトを実行するには**

1. 次の sqlcmd コマンドを使用して、スクリプトを実行します。

   ```
   sqlcmd -Uon-prem-user -Ppassword -SDMS-SQL17AG-N1 -y 0 
   -iC:\Users\admin\awsdms_support_collector_sql_server.sql -oC:\Users\admin\DMS_Support_Report_SQLServer.html -dsqlserverdb01
   ```

   指定された sqlcmd コマンドパラメータには、以下が含まれます。
   + `-U` – データベースユーザー名。
   + `-P` – データベース ユーザーパスワード。
   + `-S` – SQL Server データベースサーバーの名前。
   + `-y` – sqlcmd ユーティリティから出力される列の最大幅。値 0 は、無制限の幅を持つ列を指定します。
   + `-i` – 実行するサポート スクリプトのパス (この場合は `awsdms_support_collector_sql_server.sql`)。
   + `-o` – 収集されたデータベース構成情報を含む、指定したファイル名の出力 HTML ファイルのパス。
   + `-d` – SQL Server データベース名。

1. スクリプトが完了したら、出力 HTML ファイルを確認し、共有しにくい情報をすべて削除します。HTML を共有できる場合は、 AWS サポートケースにファイルをアップロードします。ファイルのアップロードの詳細については、「[での診断サポートスクリプトの使用 AWS DMS](CHAP_SupportScripts.md)」をご参照ください。

Amazon RDS for SQL Server では、sqlcmd コマンドライン ユーティリティを使用して接続できないので、次の手順を使用します。

**RDS SQL Server データベースのスクリプトを実行するには**

1. RDS SQL Server に `Master` ユーザーとして接続できる任意のクライアント ツールを使用して、スクリプトを実行し、出力を HTML ファイルとして保存します。

1. 出力 HTML ファイルを確認し、共有しにくい情報をすべて削除します。HTML を共有できる場合は、 AWS サポートケースにファイルをアップロードします。ファイルのアップロードの詳細については、「[での診断サポートスクリプトの使用 AWS DMS](CHAP_SupportScripts.md)」をご参照ください。

# MySQL 互換データベースの診断サポート スクリプト
<a name="CHAP_SupportScripts.MySQL"></a>

以下は、 AWS DMS オンプレミスまたは Amazon RDS for MySQL 互換データベースの分析に使用できる診断サポートスクリプトです。これらのスクリプトは、ソース エンドポイントまたはターゲット エンドポイントで使用できます。スクリプトはすべて MySQL SQL コマンドラインで実行するように記述されています。

MySQL クライアントのインストールの詳細については、MySQL ドキュメントの「[MySQL Shell のインストール](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html)」をご参照ください。MySQL クライアントの使用方法の詳細については、MySQL ドキュメントの「[MySQL シェルコマンドを使用する](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-configuring.html)」をご参照ください。

スクリプトを実行する前に、使用するユーザーアカウントに MySQL 互換データベースへのアクセス許可があるか確認してください。次の手順でユーザーアカウントを作成し、このスクリプトを実行するために必要な最小限のアクセス許可を提供します。

**これらのスクリプトを実行するための最小許可を受けtあユーザーアカウントを設定するには**

1. スクリプトを実行するユーザーを作成します。

   ```
   create user 'username'@'hostname' identified by password;
   ```

1. `select` コマンドでデータベース分析します。

   ```
   grant select on database-name.* to username;
   grant replication client on *.* to username;
   ```

1. 

   ```
   grant execute on procedure mysql.rds_show_configuration to username;
   ```

次のトピックでは、MySQL 互換データベースで使用可能な各サポート スクリプトをダウンロード、確認、実行する方法について説明します。また、スクリプト出力を確認して AWS サポートケースにアップロードする方法についても説明します。

**Topics**
+ [awsdms\$1support\$1collector\$1MySQL.sql スクリプト](#CHAP_SupportScripts.MySQL.Awsdms_Support_Collector_MySQL_Script)

## awsdms\$1support\$1collector\$1MySQL.sql スクリプト
<a name="CHAP_SupportScripts.MySQL.Awsdms_Support_Collector_MySQL_Script"></a>

[https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_MySQL.sql](https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_MySQL.sql) スクリプトをダウンロードします。

このスクリプトは、MySQL 互換データベース設定に関する情報を収集します。スクリプトのチェックサムを必ず検証し、チェックサムが検証する場合は、スクリプト内の SQL コードを確認して、実行しにくいコードをコメントアウトします。スクリプトの整合性と内容に納得できたら、スクリプトを実行できます。

コマンドラインを使用してデータベース環境に接続した後、スクリプトを実行します。

**このスクリプトを実行して結果を Support ケースにアップロードするには**

1. `mysql` コマンドを使用してデータベースに接続します。

   ```
   mysql -p -h hostname -P port -u username database-name
   ```

1. 次の mysql `source` コマンドを使用してスクリプトを実行します。

   ```
   source awsdms_support_collector_MySQL.sql
   ```

   生成されたレポートを確認し、共有しにくい情報をすべて削除します。コンテンツが共有できるようになったら、ファイルを AWS Support ケースにアップロードします。ファイルのアップロードの詳細については、「[での診断サポートスクリプトの使用 AWS DMS](CHAP_SupportScripts.md)」をご参照ください。

**注記**  
[MySQL 互換データベースの診断サポート スクリプト](#CHAP_SupportScripts.MySQL) で説明する必要な権限を持つユーザーアカウントをすでにお持ちの場合、既存のユーザーアカウントを使用してスクリプトを実行することもできます。
スクリプトを実行する前に、必ずデータベースに接続してください。
スクリプトは、テキスト形式で出力を生成します。
セキュリティのベストプラクティスを念頭に置いて、この MySQL 診断 Support スクリプトの実行専用に新しいユーザーアカウントを作成する場合は、スクリプトが正常に実行された後、このユーザーアカウントを削除することをお勧めします。

# PostgreSQL 診断 Support スクリプト
<a name="CHAP_SupportScripts.PostgreSQL"></a>

以下は、 AWS DMS 移行設定で PostgreSQL RDBMS (オンプレミス、Amazon RDS、または Aurora PostgreSQL) を分析するために使用できる診断サポートスクリプトです。これらのスクリプトは、ソース エンドポイントまたはターゲット エンドポイントで使用できます。スクリプトはすべて psql コマンドライン ユーティリティで実行するように記述されています。

これらのスクリプトを実行する前に、使用するユーザーアカウントに PostgreSQL RDBMS へのアクセス許可があることを確認してください。
+ PostgreSQL 10.x 以降 – `pg_catalog.pg_ls_waldir` 関数の実行アクセス権限を持つユーザーアカウント
+ PostgreSQL 9.x 以前 — デフォルト許可を持つユーザーアカウント。

これらのスクリプトを実行するには、適切な許可を持つ既存のアカウントを使用することをお勧めします。

これらのスクリプトを実行するために新しいユーザーアカウントを作成するか、既存のアカウントに許可を付与する必要がある場合は、PostgreSQL バージョンに基づく任意の PostgreSQL RDBMS に対して次の SQL コマンドを実行できます。

**PostgreSQL データベースバージョン 10.x 以降でこのスクリプトを実行するアクセス権限をアカウントに付与するには**
+ 次のいずれかを行います。
  + 新しいユーザーアカウントの場合は、以下を実行します。

    ```
    CREATE USER script_user WITH PASSWORD 'password';
    GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_waldir TO script_user;
    ```
  + 既存のユーザーアカウントの場合は、以下を実行します。

    ```
    GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_waldir TO script_user;
    ```

**PostgreSQL 9.x 以前のデータベースに対してこれらのスクリプトを実行する許可をアカウントに付与するには**
+ 次のいずれかを行います。
  + 新しいユーザーアカウントでは、デフォルトのアクセス許可を使用して以下を実行します。

    ```
    CREATE USER script_user WITH PASSWORD password;
    ```
  + 既存のユーザーアカウントの場合は、既存の許可を使用します。

**注記**  
これらのスクリプトは、PostgreSQL 9.x 以前のデータベースの WAL サイズの検索に関連する特定の機能をサポートしていません。詳細については、 AWS サポートにお問い合わせください。

次のトピックでは、PostgreSQL で使用可能な各 Support スクリプトのダウンロードおよび確認、実行方法について説明します。また、スクリプト出力を確認して、 AWS Support ケースにアップロードする方法についても説明します。

**Topics**
+ [awsdms\$1support\$1collector\$1postgres.sql スクリプト](#CHAP_SupportScripts.PostgreSQL.Awsdms_Support_Collector_PostgreSQL_Script)

## awsdms\$1support\$1collector\$1postgres.sql スクリプト
<a name="CHAP_SupportScripts.PostgreSQL.Awsdms_Support_Collector_PostgreSQL_Script"></a>

[https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_postgres.sql](https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_postgres.sql) スクリプトをダウンロードします。

このスクリプトは PostgreSQL データベースの設定に関する情報を収集します。スクリプトのチェックサムを必ず確認してください。チェックサムが検証する場合は、スクリプト内の SQL コードを確認して、実行しにくいコードをコメントアウトします。スクリプトの整合性と内容に納得できたら、スクリプトを実行できます。

**注記**  
このスクリプトは、psql クライアントバージョン 10 以降で実行できます。

次の手順を使用して、データベース環境またはコマンドラインからこのスクリプトを実行できます。いずれの場合も、後でファイルを AWS Support にアップロードできます。

**このスクリプトを実行して結果を Support ケースにアップロードするには**

1. 次のいずれかを行います。
   + 次の psql コマンドラインを使用して、データベース環境からスクリプトを実行します。

     ```
     dbname=# \i awsdms_support_collector_postgres.sql
     ```

     次のプロンプトで、移行するスキーマの名前を 1 つだけ入力します。

     次のプロンプトで、データベースに接続するように定義しているユーザー名 (`script_user`)を入力します。
   + コマンドラインから直接、次のスクリプトを実行します。このオプションは、スクリプトの実行前のプロンプトを回避します。

     ```
     psql -h database-hostname -p port -U script_user -d database-name -f awsdms_support_collector_postgres.sql
     ```

1. 出力 HTML ファイルを確認し、共有しにくい情報をすべて削除します。HTML の共有に納得できたら、ファイルを AWS Support ケースにアップロードします。ファイルのアップロードの詳細については、「[での診断サポートスクリプトの使用 AWS DMS](CHAP_SupportScripts.md)」をご参照ください。