

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

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

接下来，您可以在 AWS DMS 迁移配置中找到可用于分析本地数据库或 Amazon RDS for Oracle 数据库的诊断支持脚本。这些脚本可以与源端点或目标端点一起使用。这些脚本均编写为在 SQL\*Plus 命令行实用程序中运行。有关使用此实用程序的更多信息，请参阅 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\*Plus 支持脚本的说明。您还可以了解如何查看输出并将其上传到您的 AWS Support 案例中。

**Topics**
+ [awsdms\_support\_collector\_oracle.sql 脚本](#CHAP_SupportScripts.Oracle.Awsdms_Support_Collector_Oracle_Script)

## awsdms\_support\_collector\_oracle.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\*Plus 命令行在数据库环境中运行脚本。

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

   该脚本会显示简短的描述以及继续或中止运行的提示。按 [Enter] 键以继续。

1. 在随后出现的提示中，输入您要迁移的唯一一个架构的名称。

1. 在随后出现的提示中，输入您已定义用于连接数据库的用户的名称（{{script\_user}}）。

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

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

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