

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# PostgreSQL 診斷支援指令碼
<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 命令。

**授予帳戶許可，以便針對 10.x 版或更高版本的 PostgreSQL 資料庫執行這些指令碼**
+ 執行以下任意一項：
  + 對於新的使用者帳戶，執行下列命令。

    ```
    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 Support。

下列主題說明如何下載、檢閱和執行 PostgreSQL 可用的每個支援指令碼。此外，還會說明如何檢閱指令碼輸出，並將其上傳至 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。

**若要執行此指令碼並將結果上傳至支援案例**

1. 執行以下任意一項：
   + 使用以下 psql 命令列從資料庫環境執行指令碼。

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

     在下列提示中，僅輸入您要遷移之其中一個結構描述的名稱。

     在下列提示中，輸入您已定義用來連線至資料庫的使用者 (`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)。