

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在中使用诊断支持脚本 AWS DMS
<a name="CHAP_SupportScripts"></a>

如果您在使用时遇到问题 AWS DMS，您的支持工程师可能需要有关源数据库或目标数据库的更多信息。我们希望确保 S AWS upport 在尽可能短的时间内获得尽可能多的所需信息。因此，我们开发了脚本，用于查询几个主要的关系数据库引擎的这些信息。

如果您的数据库有支持脚本可用，则可以使用下文所述相应脚本主题中的链接下载脚本。验证并查看脚本（如下所述）后，可以按照脚本主题中描述的步骤运行该脚本。脚本运行完成后，您可以将其输出上传到您的 Su AWS pport 案例中（同样，如下所述）。

在运行脚本之前，您可以检测下载或存储支持脚本时可能引入的任何错误。为此，请将脚本文件的校验和与提供的 AWS值进行比较。 AWS 使用校验和的 SHA256 算法。

**使用校验和验证支持脚本文件**

1. 打开 [https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt](https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt) 中提供的最新校验和文件以验证这些支持脚本。例如，该文件可能包含如下内容。

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

1. 在包含支持文件的目录中为您的操作系统运行 SHA256 验证命令。例如，在 macOS 操作系统上，您可以在本主题后面介绍的 Oracle 支持脚本上运行以下命令。

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

1. 将命令的结果与您打开的最新 `sha256Check.txt` 文件中显示的值进行比较。这两个值应该匹配。如果这些值不同，请联系您的支持工程师，告知不相符问题以及如何获取干净的支持脚本文件。

如果您有一个干净的支持脚本文件，则在运行脚本之前，请务必从性能和安全角度阅读并理解 SQL。如果您不愿意运行此脚本中的任何 SQL，则可以注释掉或删除有问题的 SQL。您也可以向支持工程师咨询任何可接受的解决方法。

成功完成后，除非另有说明，否则脚本将以可读的 HTML 格式返回输出。该脚本设计为从此 HTML 中排除任何可能危及您业务的数据或安全细节。它也不会对您的数据库或其环境进行任何修改。但是，如果您在 HTML 中发现任何不愿意分享的信息，请在上传 HTML 之前随意删除问题信息。当 HTML 的内容可以接受时，请在支持案例的**案例详细信息**中，使用**附件**进行上传。

以下每个主题都描述了支持 AWS DMS 数据库的可用脚本以及如何运行这些脚本。您的支持工程师将引导您使用下面记录的特定脚本。

**Topics**
+ [Oracle 诊断支持脚本](CHAP_SupportScripts.Oracle.md)
+ [SQL Server 诊断支持脚本](CHAP_SupportScripts.SQLServer.md)
+ [适用于 MySQL 兼容数据库的诊断支持脚本](CHAP_SupportScripts.MySQL.md)
+ [PostgreSQL 诊断支持脚本](CHAP_SupportScripts.PostgreSQL.md)

# Oracle 诊断支持脚本
<a name="CHAP_SupportScripts.Oracle"></a>

接下来，您可以在 AWS DMS 迁移配置中找到可用于分析本地数据库或 Amazon RDS for Oracle 数据库的诊断支持脚本。这些脚本可以与源端点或目标端点一起使用。这些脚本均编写为在 SQL\$1Plus 命令行实用程序中运行。有关使用此实用程序的更多信息，请参阅 Oracle 文档中的[使用 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. 在随后出现的提示中，输入您已定义用于连接数据库的用户的名称（*script\$1user*）。

1. 在随后出现的提示中，输入要检查数据的天数，或者接受默认值。然后，该脚本会从您的数据库中收集指定的数据。

   脚本完成后，它会显示输出 HTML 文件的名称，例如 `dms_support_oracle-2020-06-22-13-20-39-ORCL.html`。该脚本将此文件保存在您的工作目录中。

1. 您可以查看此 HTML 文件并删除任何不愿意分享的信息。当您可以共享 HTML 时，请将该文件上传到您的 Su AWS pport 案例中。有关上传此文件的更多信息，请参阅[在中使用诊断支持脚本 AWS DMS](CHAP_SupportScripts.md)。

# SQL Server 诊断支持脚本
<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）创建采用密码身份验证的新 SQL Server 账户，例如 `on-prem-user`。

1. 在 SSMS 的**用户映射**部分中，选择 **MSDB** 和 **MASTER** 数据库（将提供公有权限），然后为您要运行脚本的数据库分配 `DB_OWNER` 角色。

1. 打开新账户的上下文（右键单击）菜单，选择**安全性**，然后明确授予 `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）创建采用密码身份验证的新 SQL Server 账户，例如 `rds-user`。

1. 在 SSMS 的**用户映射**部分中，选择 **MSDB** 数据库（将提供公有权限），然后为您要运行脚本的数据库分配 `DB_OWNER` 角色。

1. 打开新账户的上下文（右键单击）菜单，选择**安全性**，然后明确授予 `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 2014 及更高版本上运行此 SQL Server 诊断支持脚本。

此脚本收集有关您的 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 时，请将该文件上传到您的 Su AWS pport 案例中。有关上传此文件的更多信息，请参阅[在中使用诊断支持脚本 AWS DMS](CHAP_SupportScripts.md)。

对于 Amazon RDS for SQL Server，您无法使用 sqlcmd 命令行实用程序进行连接，因此请使用以下过程。

**运行适用于 RDS SQL Server 数据库的脚本**

1. 使用任何允许您以 `Master` 用户身份连接到 RDS SQL Server 的客户端工具运行脚本，并将输出保存为 HTML 文件。

1. 您可以查看输出 HTML 文件并删除任何不愿意分享的信息。当您可以共享 HTML 时，请将该文件上传到您的 Su AWS pport 案例中。有关上传此文件的更多信息，请参阅[在中使用诊断支持脚本 AWS DMS](CHAP_SupportScripts.md)。

# 适用于 MySQL 兼容数据库的诊断支持脚本
<a name="CHAP_SupportScripts.MySQL"></a>

接下来，您可以在迁移配置中找到可用于分析本地数据库或 Amazon RDS for MySQL 兼容数据库的诊断支持脚本。 AWS DMS 这些脚本可以与源端点或目标端点一起使用。这些脚本均编写为在 MySQL SQL 命令行中运行。

有关安装 MySQL 客户端的信息，请参阅 MySQL 文档中的[安装 MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html)。有关使用 MySQL 客户端的信息，请参阅 MySQL 文档中的[使用 MySQL Shell 命令](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-configuring.html)。

在运行脚本之前，请确保您使用的用户账户具有所需的访问权限，可以访问 MySQL 兼容数据库。使用以下过程创建用户账户并提供运行此脚本所需的最低权限。

**设置具有运行这些脚本的最低权限的用户账户**

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 兼容数据库的各个支持脚本。它们还描述了如何查看脚本输出并将其上传到您的 Su AWS pport 案例中。

**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 代码，注释掉任何您不愿意运行的代码。在您确定脚本的完整性和内容没有问题之后，可以运行该脚本。

在使用命令行连接到数据库环境后，运行脚本。

**运行脚本并将结果上传到您的支持案例**

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 诊断支持脚本，建议您在成功执行该脚本后删除此用户账户。

# PostgreSQL 诊断支持脚本
<a name="CHAP_SupportScripts.PostgreSQL"></a>

接下来，您可以找到可用于分析迁移配置中的任何 PostgreSQL RDBMS（本地、Amazon RDS 或 Aurora PostgreSQL）的诊断支持脚本。 AWS DMS 这些脚本可以与源端点或目标端点一起使用。这些脚本均编写为在 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 大小相关的特定功能。如需更多信息，请与 Suppor AWS t 联系。

以下主题介绍如何下载、查看和运行可用于 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)。