

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

# Oracle 评测
<a name="CHAP_Tasks.AssessmentReport.Oracle"></a>

有关使用 Oracle 作为源时权限的更多信息，请参阅[在自行管理的 Oracle 源上需要用户帐户权限 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Self-Managed.Privileges)或[AWS管理的 Oracle 源所需的 AWS DMS用户帐户权限](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed)。

**注意**  
本节介绍使用 Oracle 作为 AWS DMS的源或目标的迁移任务的各项迁移前评测。  
如果您使用自行管理的 Oracle 数据库作为来源 AWS DMS，请使用以下权限集：  

```
grant select on gv_$parameter to dms_user;
                    grant select on v_$instance to dms_user;
                    grant select on v_$version to dms_user;
                    grant select on gv_$ASM_DISKGROUP to dms_user;
                    grant select on gv_$database to dms_user;
                    grant select on DBA_DB_LINKS to to dms_user;
                    grant select on gv_$log_History to dms_user;
                    grant select on gv_$log to dms_user;
                    grant select on dba_types to dms_user;
                    grant select on dba_users to dms_user;
                    grant select on dba_directories to dms_user;
                    grant execute on SYS.DBMS_XMLGEN to dms_user;
```
如果您使用自行管理的 Oracle 数据库作为 AWS DMS Serverless 的来源，则需要额外的权限：  

```
grant select on dba_segments to dms_user;
                    grant select on v_$tablespace to dms_user;
                    grant select on dba_tab_subpartitions to dms_user;
                    grant select on dba_extents to dms_user;
```
如果您使用由 AWS托管的 Oracle 数据库作为源 AWS DMS，请使用以下权限集：  

```
EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('V_$PARAMETER', 'dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('V_$INSTANCE', 'dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('V_$VERSION','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('GV_$ASM_DISKGROUP','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('GV_$DATABASE','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_DB_LINKS','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('GV_$LOG_HISTORY','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('GV_$LOG','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_TYPES','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_USERS','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_DIRECTORIES','dms_user', 'SELECT');
                    GRANT SELECT ON RDSADMIN.RDS_CONFIGURATION to dms_user;
                    GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;
```
如果您使用 AWS由托管的 Oracle 数据库作为 AWS DMS Serverless 的来源，则需要额外的权限：  

```
EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_SEGMENTS','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_TAB_SUBPARTITIONS','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('DBA_EXTENTS','dms_user', 'SELECT');
                    EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('V_$TABLESPACE','dms_user', 'SELECT');
```
如果您使用自管理的 Oracle 数据库作为目标 AWS DMS，请使用以下权限集：  

```
grant select on v_$instance to dms_user;
                    grant execute on SYS.DBMS_XMLGEN to dms_user;
```
如果您使用由 AWS托管的 Oracle 数据库作为目标 AWS DMS，请使用以下权限集：  

```
EXEC RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT('V_$INSTANCE', 'dms_user', 'SELECT');
                    GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;
```

**Topics**
+ [验证仅在启用 `BatchApplyEnabled` 时才使用受限 LOB 模式](#CHAP_Tasks.AssessmentReport.Oracle.LimitedLOBMode)
+ [验证源上的表是否包含不带小数位数（为 NUMBER 数据类型指定）的列](#CHAP_Tasks.AssessmentReport.Oracle.NumberTypeWithoutScale)
+ [验证目标数据库上的触发器](#CHAP_Tasks.AssessmentReport.Oracle.TriggersOnTargetDatabase)
+ [验证源是否将归档日志 `DEST_ID` 设置为 0](#CHAP_Tasks.AssessmentReport.Oracle.UseZeroDestIDTrue)
+ [验证在完全加载期间目标数据库上是否启用了二级索引](#CHAP_Tasks.AssessmentReport.Oracle.SecondaryIndexesEnabled)
+ [验证 DMS 任务范围中使用的表 BatchApplyEnabled 是否超过 999 列](#CHAP_Tasks.AssessmentReport.Oracle.SetBatchApplyEnabledTrue)
+ [选中数据库级别补充日志记录](#CHAP_Tasks.AssessmentReport.Oracle.SupplementalLogging)
+ [验证是否为备用数据库创建了所需的数据库链接](#CHAP_Tasks.AssessmentReport.Oracle.DbLink)
+ [Oracle 验证 LOB 数据类型以及是否已配置二进制读取器](#CHAP_Tasks.AssessmentReport.Oracle.Lob)
+ [验证数据库是否为 CDB](#CHAP_Tasks.AssessmentReport.Oracle.Cdb)
+ [查看 Oracle 数据库版本](#CHAP_Tasks.AssessmentReport.Oracle.Express)
+ [DMS 验证 Oracle CDC 的方法](#CHAP_Tasks.AssessmentReport.Oracle.CdcConfigurations)
+ [DMS 验证 Oracle RAC 配置](#CHAP_Tasks.AssessmentReport.Oracle.Rac)
+ [验证 DMS 用户是否对目标拥有权限](#CHAP_Tasks.AssessmentReport.Oracle.TargetPermissions)
+ [验证是否所有列都需要补充日志记录](#CHAP_Tasks.AssessmentReport.Oracle.SupplementalLoggingColumns)
+ [验证是否对具有主键或唯一键的表启用了补充日志记录](#CHAP_Tasks.AssessmentReport.Oracle.SupplementalLoggingIndexes)
+ [验证是否存在 SecureFile LOBs 并且任务已配置为完整 LOB 模式](#CHAP_Tasks.AssessmentReport.Oracle.SecureFileLOBs)
+ [验证任务范围内的表中是否正在使用基于函数的索引。](#CHAP_Tasks.AssessmentReport.Oracle.FunctionBasedIndexes)
+ [验证任务范围内的表是否正在使用全局临时表。](#CHAP_Tasks.AssessmentReport.Oracle.GlobalTemporaryTables)
+ [验证任务范围内的表中是否正在使用具有溢出段且按索引组织的表。](#CHAP_Tasks.AssessmentReport.Oracle.IndexOrganizedTables)
+ [验证任务范围内的表中是否使用了多级嵌套表。](#CHAP_Tasks.AssessmentReport.Oracle.MultilevelNestingTables)
+ [验证任务范围内的表中是否使用了不可见的列。](#CHAP_Tasks.AssessmentReport.Oracle.InvisibleColumns)
+ [验证任务范围内的表中是否使用了基于 ROWID 列的实体化视图。](#CHAP_Tasks.AssessmentReport.Oracle.RowIDMaterialViews)
+ [验证是否使用了 Active Data Guard DML 重定向特征。](#CHAP_Tasks.AssessmentReport.Oracle.ActiveDataGuard)
+ [验证是否使用了混合分区表。](#CHAP_Tasks.AssessmentReport.Oracle.HybridPartitionedTables)
+ [验证是否使用了仅架构的 Oracle 账户](#CHAP_Tasks.AssessmentReport.Oracle.SchemaOnly)
+ [验证是否使用了虚拟列](#CHAP_Tasks.AssessmentReport.Oracle.VirtualColumns)
+ [验证任务范围内定义的表名是否包含撇号。](#CHAP_Tasks.AssessmentReport.Oracle.NamesWithApostrophes)
+ [验证任务范围内定义的列是否具有 `XMLType`、`Long` 或 `Long Raw` 数据类型，并在任务设置中验证 LOB 模式配置。](#CHAP_Tasks.AssessmentReport.Oracle.XMLLongRawDatatypes)
+ [验证源 Oracle 版本是否受支持 AWS DMS。](#CHAP_Tasks.AssessmentReport.Oracle.SourceOracleVersion)
+ [验证目标 Oracle 版本是否受支持 AWS DMS。](#CHAP_Tasks.AssessmentReport.Oracle.TargetOracleVersion)
+ [验证 DMS 用户是否拥有使用数据验证所需的权限。](#CHAP_Tasks.AssessmentReport.Oracle.DataValidation)
+ [验证 DMS 用户是否拥有在 Oracle ASM 上使用 Binary Reader 的权限](#CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderPrivilegesASM)
+ [验证 DMS 用户是否拥有在 Oracle 非 ASM 上使用 Binary Reader 的权限](#CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderPrivilegesNonASM)
+ [验证 DMS 用户是否有权使用带 CopyToTempFolder 方法的二进制读取器](#CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderTemp)
+ [验证 DMS 用户是否拥有使用 Oracle Standby 作为源的权限](#CHAP_Tasks.AssessmentReport.Oracle.StandbySource)
+ [验证 DMS 源是否已连接到应用程序容器 PDB](#CHAP_Tasks.AssessmentReport.Oracle.AppPdb)
+ [验证任务范围内的表是否具有 XML 数据类型。](#CHAP_Tasks.AssessmentReport.Oracle.XmlColumns)
+ [验证源数据库上是否启用了归档日志模式。](#CHAP_Tasks.AssessmentReport.Oracle.Archivelog)
+ [验证 RDS Oracle 的归档日志保留期。](#CHAP_Tasks.AssessmentReport.Oracle.ArchivelogRetention)
+ [验证任务范围内的表是否具有扩展数据类型。](#CHAP_Tasks.AssessmentReport.Oracle.ExtendedColumns)
+ [验证任务范围内的对象名称的长度。](#CHAP_Tasks.AssessmentReport.Oracle.30ByteLimit)
+ [验证 DMS 源是否已连接到 Oracle PDB](#CHAP_Tasks.AssessmentReport.Oracle.PDBEnabled)
+ [验证任务范围内的表是否包含空间列。](#CHAP_Tasks.AssessmentReport.Oracle.SpatialColumns)
+ [验证 DMS 源是否已连接到 Oracle Standby。](#CHAP_Tasks.AssessmentReport.Oracle.StandbyDB)
+ [验证源数据库表空间是否使用 TDE 进行加密。](#CHAP_Tasks.AssessmentReport.Oracle.StandbyDB)
+ [验证源数据库是否使用自动存储管理 (ASM)](#CHAP_Tasks.AssessmentReport.Oracle.ASMSource)
+ [验证是否启用了批处理应用，以及目标 Oracle 数据库上的表是否在表或索引级别启用了并行性](#CHAP_Tasks.AssessmentReport.Oracle.batchapply)
+ [通过验证任务范围内的表来推荐 “批量数组大小” 参数](#CHAP_Tasks.AssessmentReport.Oracle.bulkarraysize)
+ [验证 HandleCollationDiff 任务设置是否已配置](#CHAP_Tasks.AssessmentReport.Oracle.handlecollationdiff)
+ [启用 DMS 验证后，验证表是否有主键或唯一索引以及其状态是否为有效](#CHAP_Tasks.AssessmentReport.Oracle.pkvalidity)
+ [验证 Binary Reader 是否作为源用于 Oracle Standby](#CHAP_Tasks.AssessmentReport.Oracle.binaryreader)
+ [验证 AWS DMS 用户是否具有从 Oracle RDS 备用数据库复制数据所需的目录权限。](#CHAP_Tasks.AssessmentReport.Oracle.directorypermissions)
+ [验证用于复制的 Oracle Standby 的类型](#CHAP_Tasks.AssessmentReport.Oracle.physicalstandby)
+ [验证是否为 RDS Oracle 备用数据库创建了所需的目录](#CHAP_Tasks.AssessmentReport.Oracle.rdsstandby)
+ [验证批量应用的目标上是否存在主键或唯一索引](#CHAP_Tasks.AssessmentReport.Oracle.batchapplypkui)
+ [验证批量应用的目标上是否同时存在主键和唯一索引](#CHAP_Tasks.AssessmentReport.Oracle.batchapplypkuitarget)
+ [验证是否使用了不支持的 HCC 级别进行完全加载](#CHAP_Tasks.AssessmentReport.Oracle.hccfullload)
+ [验证完全加载和 CDC 是否使用了不受支持的 HCC 级别。](#CHAP_Tasks.AssessmentReport.Oracle.hccandcdc)
+ [验证是否不支持对 CDC 使用的 HCC 压缩](#CHAP_Tasks.AssessmentReport.Oracle.binaryreaderhcccdc)
+ [基于源压缩方法的 CDC 推荐](#CHAP_Tasks.AssessmentReport.Oracle.cdcmethodbycompression)
+ [检查是否启用了批量应用并验证表的列数是否超过 999 个](#CHAP_Tasks.AssessmentReport.Oracle.batchapplylob)
+ [检查数字随机化的转换规则](#CHAP_Tasks.AssessmentReport.Oracle.digits.randomize)
+ [查看数字掩码的转换规则](#CHAP_Tasks.AssessmentReport.Oracle.digits.mask)
+ [查看哈希掩码的转换规则](#CHAP_Tasks.AssessmentReport.Oracle.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字随机化未同时启用](#CHAP_Tasks.AssessmentReport.Oracle.all.digit.random)
+ [确认数据验证任务设置和数据掩蔽哈希掩码未同时启用](#CHAP_Tasks.AssessmentReport.Oracle.all.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字掩码未同时启用](#CHAP_Tasks.AssessmentReport.Oracle.all.digit.mask)
+ [验证向流式传输目标的复制是否包含 LOBs 或扩展了数据类型列](#CHAP_Tasks.AssessmentReport.Oracle.streaming-target)
+ [验证是否已将仅限 CDC 的任务配置为使用端点`OpenTransactionWindow`设置](#CHAP_Tasks.AssessmentReport.Oracle.open.tx.window)
+ [验证源数据库中是否至少存在一个选定对象](#CHAP_Tasks.AssessmentReport.Oracle.all.check.source.selection.rules)
+ [验证是否已禁用目标外键约束以进行迁移](#CHAP_Tasks.AssessmentReport.Oracle.target.foreign.key.constraints.check)
+ [验证 Oracle 数据库和 AWS DMS 版本是否兼容](#CHAP_Tasks.AssessmentReport.Oracle.dms.compatibility.version.check)
+ [验证源数据库中是否存在辅助约束和索引（非主约束）](#CHAP_Tasks.AssessmentReport.Oracle.all.check.secondary.constraints)
+ [验证会话超时设置 (`IDLE_TIME`) 是否设置为 `UNLIMITED`](#CHAP_Tasks.AssessmentReport.Oracle.check.idle.time)
+ [验证 AWS DMS 用户是否拥有源数据库的所有必需权限](#CHAP_Tasks.AssessmentReport.Oracle.validate.permissions.on.source)
+ [验证使用 Oracle 时是否存在`XMLTYPE`或 L LogMiner OB 列](#CHAP_Tasks.AssessmentReport.Oracle.update.lob.columns)
+ [验证目标终端节点不是只读副本](#CHAP_Tasks.AssessmentReport.Oracle.read.replica)
+ [使用直接路径加载时，验证 Oracle 目标是否没有 CONTEXT 索引](#CHAP_Tasks.AssessmentReport.Oracle.directpath.index)
+ [验证在对`FailTasksOnLobTruncation`现有 LOB 列使用受限 LOB 模式时是否已启用](#CHAP_Tasks.AssessmentReport.Oracle.FailTasksOnLobTruncation)
+ [验证`EnableHomogenousPartitionOps`端点设置是否已启用](#CHAP_Tasks.AssessmentReport.Oracle.Homogenous.partition)

## 验证仅在启用 `BatchApplyEnabled` 时才使用受限 LOB 模式
<a name="CHAP_Tasks.AssessmentReport.Oracle.LimitedLOBMode"></a>

**API 密钥：**`oracle-batch-apply-lob-mode`

此迁移前评测可验证 DMS 任务中的表是否包含 LOB 列。如果 LOB 列包含在任务范围内，则只能在受限 LOB 模式下使用 `BatchApplyEnabled`。

有关更多信息，请参阅[目标元数据任务设置](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.TargetMetadata.html)。

## 验证源上的表是否包含不带小数位数（为 NUMBER 数据类型指定）的列
<a name="CHAP_Tasks.AssessmentReport.Oracle.NumberTypeWithoutScale"></a>

**API 密钥：**`oracle-number-columns-without-scale`

此迁移前评测可验证 DMS 任务是否包含未指定小数位数的 NUMBER 数据类型的列。建议您将端点设置 `NumberDataTypeScale` 设为评测报告中指定的值。

有关更多信息，请参阅[使用 Oracle 作为 AWS DMS的源时的端点设置](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib)。

## 验证目标数据库上的触发器
<a name="CHAP_Tasks.AssessmentReport.Oracle.TriggersOnTargetDatabase"></a>

**API 密钥：**`oracle-target-triggers-are-enabled`

此迁移前评测可验证目标数据库上是否启用了触发器。如果启用了触发器，评测将失败。建议在迁移期间禁用或删除触发器。

有关更多信息，请参阅 [DMS 最佳实践](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)。

## 验证源是否将归档日志 `DEST_ID` 设置为 0
<a name="CHAP_Tasks.AssessmentReport.Oracle.UseZeroDestIDTrue"></a>

**API 密钥：**`oracle-zero-archive-log-dest-id`

此迁移前评测可验证，在归档日志 `DEST_ID` 设置为 0 的情况下，是否为源设置了端点额外连接属性 `useZeroDestid=true`。

有关更多信息，请参阅[在故障转移场景中与 Oracle 数据库一起使用时如何处理 AWS DMS 复制](https://aws.amazon.com/blogs/database/how-to-handle-aws-dms-replication-when-used-with-oracle-database-in-fail-over-scenarios/)。

## 验证在完全加载期间目标数据库上是否启用了二级索引
<a name="CHAP_Tasks.AssessmentReport.Oracle.SecondaryIndexesEnabled"></a>

**API 密钥：**`oracle-check-secondary-indexes`

此迁移前评测可验证完全加载期间目标数据库上是否启用了二级索引。建议您在完全加载期间禁用或删除二级索引。

有关更多信息，请参阅 [AWS Database Migration Service的最佳实践](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)。

## 验证 DMS 任务范围中使用的表 BatchApplyEnabled 是否超过 999 列
<a name="CHAP_Tasks.AssessmentReport.Oracle.SetBatchApplyEnabledTrue"></a>

**API 密钥：**`oracle-batch-apply-lob-999`

启用了批量优化应用模式的表的总列数不能超过 999。列数超过 999 的表将 AWS DMS 导致逐一处理批次，从而增加延迟。DMS 使用公式 **2 \$1 columns\$1in\$1original\$1table \$1 columns\$1in\$1primary\$1key <= 999** 来计算批量优化应用模式支持的每个表的总列数。

有关更多信息，请参阅[将 Oracle 作为 AWS Database Migration Service目标的限制](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.Limitations)。

## 选中数据库级别补充日志记录
<a name="CHAP_Tasks.AssessmentReport.Oracle.SupplementalLogging"></a>

**API 密钥：**`oracle-supplemental-db-level`

此迁移前评估将验证是否在数据库级别启用了最低限度的补充日志记录。必须启用补充日志记录才能使用 Oracle 数据库作为迁移源。

要启用补充日志记录，使用以下查询：

```
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
```

有关更多信息，请参阅 [设置补充日志记录](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging)。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

## 验证是否为备用数据库创建了所需的数据库链接
<a name="CHAP_Tasks.AssessmentReport.Oracle.DbLink"></a>

**API 密钥：**`oracle-validate-standby-dblink`

此迁移前评估将验证是否为 Oracle 备用数据库源创建 Dblink。 AWSDMS\$1DBLINK 是使用备用数据库作为源的先决条件。使用 Oracle Standby 作为源时，默认情况下 AWS DMS 不验证未完成事务。

有关更多信息，请参阅 [使用自行管理的 Oracle 数据库作为源 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Self-Managed)。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

## Oracle 验证 LOB 数据类型以及是否已配置二进制读取器
<a name="CHAP_Tasks.AssessmentReport.Oracle.Lob"></a>

**API 密钥：**`oracle-binary-lob-source-validation`

此迁移前评估将验证 Oracle LogMiner 是否用于版本 12c 或更高版本的 Oracle 数据库终端节点。 AWS DMS 不支持 Oracle LogMiner 从 Oracle 数据库版本 12c 迁移 LOB 列。该评估还会检查 LOB 列是否存在，并提供适当的建议。

要将您的迁移配置为不使用 Oracle LogMiner，请将以下配置添加到您的源终端节点：

```
useLogMinerReader=N;useBfile=Y;
```

有关更多信息，请参阅 [在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

## 验证数据库是否为 CDB
<a name="CHAP_Tasks.AssessmentReport.Oracle.Cdb"></a>

**API 密钥：**`oracle-validate-cdb`

此迁移前评估会验证数据库是否为容器数据库。 AWS DMS 不支持多租户容器根数据库（CDB\$1ROOT）。

**注意**  
只有 Oracle 版本 12.1.0.1 或更高版本需要进行此评估。此评估不适用于 12.1.0.1 之前的 Oracle 版本。

有关更多信息，请参阅 [使用 Oracle 作为来源的限制 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Limitations)。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

## 查看 Oracle 数据库版本
<a name="CHAP_Tasks.AssessmentReport.Oracle.Express"></a>

**API 密钥：**`oracle-check-cdc-support-express-edition`

此迁移前评估会验证 Oracle 源数据库是否为 Express Edition。对于 Oracle Express Edition（Oracle Database XE）版本 18.0 及更高版本， AWS DMS 不支持 CDC。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

## DMS 验证 Oracle CDC 的方法
<a name="CHAP_Tasks.AssessmentReport.Oracle.CdcConfigurations"></a>

**API 密钥：**`oracle-recommendation-cdc-method`

此迁移前评估验证了过去七天的重做日志生成，并建议是使用 AWS DMS Binary Reader 还是 Oracle LogMiner for CDC。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关决定使用哪种 CDC 方法的更多信息，请参阅[在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

## DMS 验证 Oracle RAC 配置
<a name="CHAP_Tasks.AssessmentReport.Oracle.Rac"></a>

**API 密钥：**`oracle-check-rac`

此迁移前评估会验证 Oracle 数据库是否为 Real Application Cluster。必须正确配置 Real Application Cluster 数据库。如果数据库基于 RAC，我们建议您使用适用于 CDC 的 AWS DMS 二进制阅读器，而不是 Oracle LogMiner。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

## 验证 DMS 用户是否对目标拥有权限
<a name="CHAP_Tasks.AssessmentReport.Oracle.TargetPermissions"></a>

**API 密钥：**`oracle-validate-permissions-on-target`

此迁移前评测可验证 DMS 用户是否对目标数据库拥有所有必需权限。

## 验证是否所有列都需要补充日志记录
<a name="CHAP_Tasks.AssessmentReport.Oracle.SupplementalLoggingColumns"></a>

**API 密钥：**`oracle-validate-supplemental-logging-all-columns`

此迁移前评测可验证，对于提及的任务范围内的表，是否已向没有主键或唯一键的表的所有列添加了补充日志记录。如果没有对缺少主键或唯一键的表的所有列进行补充日志，则数据 before-and-after图像将无法在重做日志中显示。DMS 需要对没有主键或唯一键的表进行补充日志记录，才能生成 DML 语句。

## 验证是否对具有主键或唯一键的表启用了补充日志记录
<a name="CHAP_Tasks.AssessmentReport.Oracle.SupplementalLoggingIndexes"></a>

**API 密钥：**`oracle-validate-supplemental-logging-for-pk`

 此迁移前评测可验证是否为具有主键或唯一索引的表启用了补充日志记录，还可检查是否在端点级别启用了 `AddSupplementalLogging`。为确保 DMS 能够复制更改，您可以根据主键或唯一键在表级别手动添加补充日志记录，也可以使用端点设置 `AddSupplementalLogging = true`，让 DMS 用户对任何复制的表都拥有 ALTER 权限。

## 验证是否存在 SecureFile LOBs 并且任务已配置为完整 LOB 模式
<a name="CHAP_Tasks.AssessmentReport.Oracle.SecureFileLOBs"></a>

**API 密钥：**`oracle-validate-securefile-lobs`

此迁移前评估检查任务范围内的表 SecureFile LOBs 中是否存在，并验证其 LOB 设置。考虑将 LOB 表分配给单独的任务以提高性能，因为在完整 LOB 模式下运行任务可能会导致性能降低。

## 验证任务范围内的表中是否正在使用基于函数的索引。
<a name="CHAP_Tasks.AssessmentReport.Oracle.FunctionBasedIndexes"></a>

**API 密钥：**`oracle-validate-function-based-indexes`

此迁移前评测可检查任务范围内的表中是否存在基于函数的索引。请注意， AWS DMS 这不支持复制基于函数的索引。考虑在目标数据库上的迁移完成后创建索引。

## 验证任务范围内的表是否正在使用全局临时表。
<a name="CHAP_Tasks.AssessmentReport.Oracle.GlobalTemporaryTables"></a>

**API 密钥：**`oracle-validate-global-temporary-tables`

此迁移前评测可检查任务表映射范围内是否使用了全局临时表。请注意， AWS DMS 这不支持迁移或复制全局临时表。

## 验证任务范围内的表中是否正在使用具有溢出段且按索引组织的表。
<a name="CHAP_Tasks.AssessmentReport.Oracle.IndexOrganizedTables"></a>

**API 密钥：**`oracle-validate-iot-overflow-segments`

验证任务范围中包含的表上是否使用了按索引组织的带有溢出段的表。 AWS DMS 不支持 CDC 用于按索引组织的带有溢出段的表。

## 验证任务范围内的表中是否使用了多级嵌套表。
<a name="CHAP_Tasks.AssessmentReport.Oracle.MultilevelNestingTables"></a>

**API 密钥：**`oracle-validate-more-than-one-nesting-table-level`

此迁移前评测可检查任务范围内使用的嵌套表的嵌套级别。 AWS DMS 仅支持一个级别的表嵌套。

## 验证任务范围内的表中是否使用了不可见的列。
<a name="CHAP_Tasks.AssessmentReport.Oracle.InvisibleColumns"></a>

**API 密钥：**`oracle-validate-invisible-columns`

此迁移前评测可验证任务范围内使用的表中是否包含不可见的列。 AWS DMS 不会迁移源数据库中不可见列的数据。要迁移不可见的列，您需要将其修改为可见。

## 验证任务范围内的表中是否使用了基于 ROWID 列的实体化视图。
<a name="CHAP_Tasks.AssessmentReport.Oracle.RowIDMaterialViews"></a>

**API 密钥：**`oracle-validate-rowid-based-materialized-views`

此迁移前评估可验证迁移中使用的实例化视图是否是基于 ROWID 列创建的。 AWS DMS 不支持 ROWID 数据类型或基于 ROWID 列的实例化视图。

## 验证是否使用了 Active Data Guard DML 重定向特征。
<a name="CHAP_Tasks.AssessmentReport.Oracle.ActiveDataGuard"></a>

**API 密钥：**`oracle-validate-adg-redirect-dml`

此迁移前评测可验证是否使用了 Active Data Guard DML 重定向特征。使用 Oracle 19.0 作为源代码时， AWS DMS 不支持 Data Guard DML 重定向功能。

## 验证是否使用了混合分区表。
<a name="CHAP_Tasks.AssessmentReport.Oracle.HybridPartitionedTables"></a>

**API 密钥：**`oracle-validate-hybrid-partitioned-tables`

此迁移前评测可验证是否对任务范围内定义的表使用了混合分区表。

## 验证是否使用了仅架构的 Oracle 账户
<a name="CHAP_Tasks.AssessmentReport.Oracle.SchemaOnly"></a>

**API 密钥：**`oracle-validate-schema-only-accounts`

此迁移前评测可验证任务范围内是否存在仅架构的账户。

## 验证是否使用了虚拟列
<a name="CHAP_Tasks.AssessmentReport.Oracle.VirtualColumns"></a>

**API 密钥：**`oracle-validate-virtual-columns`

此迁移前评测可验证 Oracle 实例在任务范围内的表中是否有虚拟列。

## 验证任务范围内定义的表名是否包含撇号。
<a name="CHAP_Tasks.AssessmentReport.Oracle.NamesWithApostrophes"></a>

**API 密钥：**`oracle-validate-names-with-apostrophes`

此迁移前评测可验证任务范围内使用的表是否包含撇号。 AWS DMS 不会复制名称中包含撇号的表。如果识别了这样的表，请考虑将其重命名。或者，也可以创建不带撇号的视图或实体化视图来加载这些表。

## 验证任务范围内定义的列是否具有 `XMLType`、`Long` 或 `Long Raw` 数据类型，并在任务设置中验证 LOB 模式配置。
<a name="CHAP_Tasks.AssessmentReport.Oracle.XMLLongRawDatatypes"></a>

**API 密钥：**`oracle-validate-limited-lob-mode-for-longs`

此迁移前评估将验证任务范围内定义的表是否具有数据类型`XMLType``Long``Long Raw`、或，并检查任务设置是否配置为使用有限大小 LOB 模式。 AWS DMS 不支持使用 FULL LOB 模式复制这些数据类型。如果识别了具有这些数据类型的表，请考虑将任务设置更改为使用有限大小 LOB 模式。

## 验证源 Oracle 版本是否受支持 AWS DMS。
<a name="CHAP_Tasks.AssessmentReport.Oracle.SourceOracleVersion"></a>

**API 密钥：**`oracle-validate-supported-versions-of-source`

 此迁移前评估将验证源 Oracle 实例版本是否受支持。 AWS DMS

## 验证目标 Oracle 版本是否受支持 AWS DMS。
<a name="CHAP_Tasks.AssessmentReport.Oracle.TargetOracleVersion"></a>

**API 密钥：**`oracle-validate-supported-versions-of-target`

此迁移前评估将验证目标 Oracle 实例版本是否受支持。 AWS DMS

## 验证 DMS 用户是否拥有使用数据验证所需的权限。
<a name="CHAP_Tasks.AssessmentReport.Oracle.DataValidation"></a>

**API 密钥：**`oracle-prerequisites-privileges-of-validation-feature`

此迁移前评测可验证 DMS 用户是否拥有使用 DMS 数据验证的必要权限。如果您不打算使用数据验证，则可以忽略启用此验证。

## 验证 DMS 用户是否拥有在 Oracle ASM 上使用 Binary Reader 的权限
<a name="CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderPrivilegesASM"></a>

**API 密钥：**`oracle-prerequisites-privileges-of-binary-reader-asm`

此迁移前评测可验证 DMS 用户是否拥有在 Oracle ASM 实例上使用 Binary Reader 的必要权限。如果源不是 Oracle ASM 实例，或者您没有使用 Binary Reader 执行 CDC，则可以忽略启用此评测。

## 验证 DMS 用户是否拥有在 Oracle 非 ASM 上使用 Binary Reader 的权限
<a name="CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderPrivilegesNonASM"></a>

**API 密钥：**`oracle-prerequisites-privileges-of-binary-reader-non-asm`

此迁移前评测可验证 DMS 用户是否拥有在 Oracle 非 ASM 实例上使用 Binary Reader 的必要权限。只有当您拥有 Oracle 非 ASM 实例时，此评测才有效。

## 验证 DMS 用户是否有权使用带 CopyToTempFolder 方法的二进制读取器
<a name="CHAP_Tasks.AssessmentReport.Oracle.BinaryReaderTemp"></a>

**API 密钥：**`oracle-prerequisites-privileges-of-binary-reader-copy-to-temp-folder`

此迁移前评测可验证 DMS 用户是否拥有将 Binary Reader 与“Copy to Temp Folder”方法结合使用的必要权限。只有当您计划在使用二进制读取器时使用 CopyToTempFolder 读取 CDC 更改并且将 ASM 实例连接到源代码时，此评估才有意义。如果您不打算使用此评估功能，则可以忽略启用该 CopyToTempFolder 功能。

我们建议不要使用该 CopyToTempFolder 功能，因为它已被弃用。

## 验证 DMS 用户是否拥有使用 Oracle Standby 作为源的权限
<a name="CHAP_Tasks.AssessmentReport.Oracle.StandbySource"></a>

**API 密钥：**`oracle-prerequisites-privileges-of-standby-as-source`

此迁移前评估将验证 DMS 用户是否具有使用 StandBy Oracle 实例作为源的必要权限。如果您不打算使用 StandBy Oracle 实例作为来源，则可以忽略启用此评估。

## 验证 DMS 源是否已连接到应用程序容器 PDB
<a name="CHAP_Tasks.AssessmentReport.Oracle.AppPdb"></a>

**API 密钥：**`oracle-check-app-pdb`

此迁移前评测可验证 DMS 源是否已连接到应用程序容器 PDB。DMS 不支持从应用程序容器 PDB 复制。

## 验证任务范围内的表是否具有 XML 数据类型。
<a name="CHAP_Tasks.AssessmentReport.Oracle.XmlColumns"></a>

**API 密钥：**`oracle-check-xml-columns`

此迁移前评测可验证任务范围内使用的表是否具有 XML 数据类型。它还可检查当表包含 XML 数据类型时，任务是否配置为受限 LOB 模式。DMS 仅支持在受限 LOB 模式下迁移 Oracle XML 列。

## 验证源数据库上是否启用了归档日志模式。
<a name="CHAP_Tasks.AssessmentReport.Oracle.Archivelog"></a>

**API 密钥：**`oracle-check-archivelog-mode`

此迁移前评测可验证源数据库上是否启用了归档日志模式。DMS 需要在源数据库上启用归档日志模式才能复制更改。

## 验证 RDS Oracle 的归档日志保留期。
<a name="CHAP_Tasks.AssessmentReport.Oracle.ArchivelogRetention"></a>

**API 密钥：**`oracle-check-archivelog-retention-rds`

此迁移前评测可验证 RDS Oracle 数据库上的归档日志保留期是否配置为至少 24 小时。

## 验证任务范围内的表是否具有扩展数据类型。
<a name="CHAP_Tasks.AssessmentReport.Oracle.ExtendedColumns"></a>

**API 密钥：**`oracle-check-extended-columns`

此迁移前评测可验证任务范围内使用的表是否具有扩展数据类型。请注意，只有 DMS 版本 3.5 及更高版本支持扩展数据类型。

## 验证任务范围内的对象名称的长度。
<a name="CHAP_Tasks.AssessmentReport.Oracle.30ByteLimit"></a>

**API 密钥：**`oracle-check-object-30-bytes-limit`

此迁移前评测可验证对象名称的长度是否超过 30 字节。DMS 不支持长对象名称（超过 30 个字节）。

## 验证 DMS 源是否已连接到 Oracle PDB
<a name="CHAP_Tasks.AssessmentReport.Oracle.PDBEnabled"></a>

**API 密钥：**`oracle-check-pdb-enabled`

此迁移前评测可验证 DMS 源是否已连接到 PDB。仅当使用 Binary Reader 且以 Oracle PDB 作为源时，DMS 才支持 CDC。该评测还可评估任务是否配置为在 DMS 连接到 Oracle PDB 时使用 Binary Reader。

## 验证任务范围内的表是否包含空间列。
<a name="CHAP_Tasks.AssessmentReport.Oracle.SpatialColumns"></a>

**API 密钥：**`oracle-check-spatial-columns`

此迁移前评测可验证任务范围内的表是否包含空间列。DMS 仅支持空间数据类型使用完整 LOB 模式。该评测还可评估 DMS 识别空间列时任务是否配置为使用完整 LOB 模式。

## 验证 DMS 源是否已连接到 Oracle Standby。
<a name="CHAP_Tasks.AssessmentReport.Oracle.StandbyDB"></a>

**API 密钥：**`oracle-check-standby-db`

此迁移前评测可验证源是否已连接到 Oracle Standby。仅当使用 Binary Reader 且以 Oracle Standby 作为源时，DMS 才支持 CDC。评估还会评估任务是否配置为在 DMS 连接到 Oracle 待机时使用二进制读取器。

## 验证源数据库表空间是否使用 TDE 进行加密。
<a name="CHAP_Tasks.AssessmentReport.Oracle.StandbyDB"></a>

**API 密钥：**`oracle-check-tde-enabled`

此迁移前评测可验证源是否在表空间上启用了 TDE 加密。使用 Oracle for RDS Oracle 时，DMS 仅支持加密表空间 LogMiner 的 TDE。

## 验证源数据库是否使用自动存储管理 (ASM)
<a name="CHAP_Tasks.AssessmentReport.Oracle.ASMSource"></a>

**API 密钥：**`oracle-check-asm`

此迁移前评估可检测您的源数据库是否使用 ASM。为了获得最佳性能，请在端点设置中使用`parallelASMReadThreads`和`readAheadBlocks`参数配置二进制读取器。使用 ASM 存储时，这些设置可增强数据提取性能

有关更多信息，请参阅 [在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

## 验证是否启用了批处理应用，以及目标 Oracle 数据库上的表是否在表或索引级别启用了并行性
<a name="CHAP_Tasks.AssessmentReport.Oracle.batchapply"></a>

**API 密钥：**`oracle-check-degree-of-parallelism`

AWS DMS 验证目标数据库中的表是否启用了任何并行性。在目标数据库上启用并行性会导致批处理失败。因此，在使用批量应用功能时，需要禁用表或索引级别的并行性。

## 通过验证任务范围内的表来推荐 “批量数组大小” 参数
<a name="CHAP_Tasks.AssessmentReport.Oracle.bulkarraysize"></a>

**API 密钥：**`oracle-check-bulk-array-size`

如果在任务范围内找不到具有 LOB（大型对象）数据类型的表，则此评测建议设置 `BulkArraySize` ECA（额外连接属性）。设置 `BulkArraySize` ECA 可以提高迁移完全加载阶段的性能。您可以使用 Source/Target 端点上的 ECA 设置批量阵列大小，以便在迁移的满载阶段获得最佳性能。

## 验证 HandleCollationDiff 任务设置是否已配置
<a name="CHAP_Tasks.AssessmentReport.Oracle.handlecollationdiff"></a>

**API 密钥：**`oracle-check-handlecollationdiff`

此评测会验证 DMS 任务是否配置为进行验证，并推荐 `HandleCollationDiff` 任务设置，以避免当在 Oracle 和 PostgreSQL 之间验证数据时出现任何错误的验证结果。

有关更多信息，请参阅 [数据验证任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.md)。

## 启用 DMS 验证后，验证表是否有主键或唯一索引以及其状态是否为有效
<a name="CHAP_Tasks.AssessmentReport.Oracle.pkvalidity"></a>

**API 密钥：**`oracle-check-pk-validity`

数据验证要求表在源和目标上具有主键或唯一索引。

有关更多信息，请参阅 [AWS DMS 数据验证](CHAP_Validating.md)。

## 验证 Binary Reader 是否作为源用于 Oracle Standby
<a name="CHAP_Tasks.AssessmentReport.Oracle.binaryreader"></a>

**API 密钥：**`oracle-check-binary-reader`

此评测会验证源数据库是否为备用数据库并且使用 Binary Reader 进行更改数据捕获（CDC）。

有关更多信息，请参阅 [使用 Oracle 数据库作为来源 AWS DMS](CHAP_Source.Oracle.md)。

## 验证 AWS DMS 用户是否具有从 Oracle RDS 备用数据库复制数据所需的目录权限。
<a name="CHAP_Tasks.AssessmentReport.Oracle.directorypermissions"></a>

**API 密钥：**`oracle-check-directory-permissions`

当源数据库为 Oracle RDS 备用数据库时，此评估将验证 AWS DMS 用户是否具有对`ARCHIVELOG_DIR_%`和`ONLINELOG_DIR_%`目录所需的读取权限。

有关更多信息，请参阅 [使用 AWS由托管的 Oracle 数据库作为源 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Amazon-Managed)。

## 验证用于复制的 Oracle Standby 的类型
<a name="CHAP_Tasks.AssessmentReport.Oracle.physicalstandby"></a>

**API 密钥：**`oracle-check-physical-standby-with-apply`

此评估将验证用于 AWS DMS 复制的 Oracle 备用数据库的类型。 AWS DMS 仅支持物理备用数据库，这些数据库必须以只读模式打开，并自动应用重做日志。 AWS DMS 不支持快照或逻辑备用数据库进行复制。

有关更多信息，请参阅 [使用自我管理的 Oracle 备用数据库作为源，并使用适用于 CDC 的二进制读取器 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Self-Managed.BinaryStandby)。

## 验证是否为 RDS Oracle 备用数据库创建了所需的目录
<a name="CHAP_Tasks.AssessmentReport.Oracle.rdsstandby"></a>

**API 密钥：**`oracle-check-rds-standby-directories`

此评测会验证是否为 RDS 备用实例上的存档日志和在线日志创建了所需的 oracle 目录。

有关更多信息，请参阅 [使用 Amazon RDS Oracle 备用副本（只读副本）作为源，并使用适用于 CDC 的二进制读取器 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Amazon-Managed.StandBy)。

## 验证批量应用的目标上是否存在主键或唯一索引
<a name="CHAP_Tasks.AssessmentReport.Oracle.batchapplypkui"></a>

**API 密钥：**`oracle-check-batch-apply-target-pk-ui-absence`

只有目标表上有主键或唯一索引的表才支持批量应用。没有主键或唯一索引的表会导致批处理失败，将逐一处理更改。建议您将此类表移到各自的任务中，改用事务性应用模式。或者，也可以在目标表上创建唯一键。

有关更多信息，请参阅 [使用 Oracle 数据库作为目标 AWS Database Migration Service](CHAP_Target.Oracle.md)。

## 验证批量应用的目标上是否同时存在主键和唯一索引
<a name="CHAP_Tasks.AssessmentReport.Oracle.batchapplypkuitarget"></a>

**API 密钥：**`oracle-check-batch-apply-target-pk-ui-simultaneously`

只有目标表上有主键或唯一索引的表才支持批量应用。具有主键和唯一索引的表会同时导致批处理失败，将逐一处理更改。建议您将此类表移到各自的任务中，改用事务性应用模式。或者，如果您正在进行迁移，则可以在目标表上删除唯一键或主键，然后对其进行重建。

有关更多信息，请参阅 [使用 Oracle 数据库作为目标 AWS Database Migration Service](CHAP_Target.Oracle.md)。

## 验证是否使用了不支持的 HCC 级别进行完全加载
<a name="CHAP_Tasks.AssessmentReport.Oracle.hccfullload"></a>

**API 密钥：**`oracle-check-binary-reader-hcc-full-load`

Oracle 源端点配置为使用 Binary Reader，只有满载任务才支持 HCC 压缩方法的 Query Low 级别。

有关更多信息，请参阅 [使用 Oracle 作为源时支持的压缩方法 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Compression)。

## 验证完全加载和 CDC 是否使用了不受支持的 HCC 级别。
<a name="CHAP_Tasks.AssessmentReport.Oracle.hccandcdc"></a>

**API 密钥：**`oracle-check-binary-reader-hcc-full-load-and-cdc`

当 Oracle 源端点配置为使用 Binary Reader 时，只有在满载任务中才支持使用 Query low 级别的 HCC。

[使用 Oracle 作为源时支持的压缩方法 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Compression)

## 验证是否不支持对 CDC 使用的 HCC 压缩
<a name="CHAP_Tasks.AssessmentReport.Oracle.binaryreaderhcccdc"></a>

**API 密钥：**`oracle-check-binary-reader-hcc-cdc`

Oracle 源端点配置为使用 Binary Reader。Binary Reader 不支持在执行 CDC 的任务中使用 QUERY LOW。

有关更多信息，请参阅 [在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

## 基于源压缩方法的 CDC 推荐
<a name="CHAP_Tasks.AssessmentReport.Oracle.cdcmethodbycompression"></a>

**API 密钥：**`oracle-recommend-cdc-method-by-compression`

检测到压缩对象。请浏览特定评估的“结果”部分，获取更多建议。

有关更多信息，请参阅 [在 CDC 中使用 Oracle LogMiner 或 AWS DMS 二进制阅读器](CHAP_Source.Oracle.md#CHAP_Source.Oracle.CDC)。

## 检查是否启用了批量应用并验证表的列数是否超过 999 个
<a name="CHAP_Tasks.AssessmentReport.Oracle.batchapplylob"></a>

**API 密钥：**`oracle-batch-apply-lob-999`

DMS 使用 `2 * columns_in_original_table + columns_in_primary_key` 公式来确定客户表中的列数。基于此公式，我们确定了列数超过 999 列的表。这会影响批处理过程，导致批处理失败并切换到 one-by-one模式。

有关更多信息，请参阅 [将 Oracle 作为目标的局限性 AWS Database Migration Service](CHAP_Target.Oracle.md#CHAP_Target.Oracle.Limitations)。

## 检查数字随机化的转换规则
<a name="CHAP_Tasks.AssessmentReport.Oracle.digits.randomize"></a>

**API 密钥：**`oracle-datamasking-digits-randomize`

此评测会验证表映射中使用的列是否与“数字随机化”转换规则兼容。此外，此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分，因为应用“数字随机化”转换并不能保证任何唯一性。

## 查看数字掩码的转换规则
<a name="CHAP_Tasks.AssessmentReport.Oracle.digits.mask"></a>

**API 密钥：**`oracle-datamasking-digits-mask`

此评测会验证“数字掩码”转换规则是否不支持表映射中使用的任何列。此外，此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分，因为对此类列应用“数字掩码”转换可能会导致 DMS 任务失败，因为无法保证唯一性。

## 查看哈希掩码的转换规则
<a name="CHAP_Tasks.AssessmentReport.Oracle.hash.mask"></a>

**API 密钥：**`oracle-datamasking-hash-mask`

此评测会验证“哈希掩码”转换规则是否不支持表映射中使用的任何列。它还会检查源列的长度是否超过 64 个字符。理想情况下，目标列长度应大于 64 个字符以支持哈希掩码。此外，此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分，因为应用“数字随机化”转换并不能保证任何唯一性。

## 确认数据验证任务设置和数据掩蔽数字随机化未同时启用
<a name="CHAP_Tasks.AssessmentReport.Oracle.all.digit.random"></a>

**API 密钥：**`all-to-all-validation-with-datamasking-digits-randomize`

此迁移前评测可验证数据验证设置和数据掩蔽数字随机化是否同时启用，因为这些功能不兼容。

## 确认数据验证任务设置和数据掩蔽哈希掩码未同时启用
<a name="CHAP_Tasks.AssessmentReport.Oracle.all.hash.mask"></a>

**API 密钥：**`all-to-all-validation-with-datamasking-hash-mask`

此迁移前评测可验证数据验证设置和数据掩蔽哈希掩码是否同时启用，因为这些功能不兼容。

## 确认数据验证任务设置和数据掩蔽数字掩码未同时启用
<a name="CHAP_Tasks.AssessmentReport.Oracle.all.digit.mask"></a>

**API 密钥：**`all-to-all-validation-with-digit-mask`

此迁移前评测可验证数据验证设置和数据掩蔽数字掩码是否同时启用，因为这些功能不兼容。

## 验证向流式传输目标的复制是否包含 LOBs 或扩展了数据类型列
<a name="CHAP_Tasks.AssessmentReport.Oracle.streaming-target"></a>

**API 密钥：**`oracle-validate-lob-to-streaming-target`

此评测可识别在将 LOB 或扩展数据类型迁移到流目标端点（例如 S3、Kinesis 或 Kafka）时可能丢失的数据。Oracle 数据库不会在其日志文件中跟踪这些数据类型的更改，从而导致 DMS 向流目标写入 `NULL` 值。为防止数据丢失，可以在源数据库上实现“`before`”触发器，以强制 Oracle 记录这些更改。

## 验证是否已将仅限 CDC 的任务配置为使用端点`OpenTransactionWindow`设置
<a name="CHAP_Tasks.AssessmentReport.Oracle.open.tx.window"></a>

**API 密钥：**`oracle-check-cdc-open-tx-window`

对于仅限 CDC 的任务，请使用`OpenTransactionWindow`以避免丢失数据。有关更多信息，请参阅[使用 AWS DMS为持续复制创建任务](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html)。

## 验证源数据库中是否至少存在一个选定对象
<a name="CHAP_Tasks.AssessmentReport.Oracle.all.check.source.selection.rules"></a>

**API 密钥：**`all-check-source-selection-rules`

此迁移前评估验证源数据库中是否至少存在一个在选择规则中指定的对象，包括基于通配符的规则的模式匹配。

## 验证是否已禁用目标外键约束以进行迁移
<a name="CHAP_Tasks.AssessmentReport.Oracle.target.foreign.key.constraints.check"></a>

**API 密钥：**`oracle-target-foreign-key-constraints-check`

此迁移前评估可检测目标数据库上可能导致迁移失败的活动外键限制 (ORA-02291)。

## 验证 Oracle 数据库和 AWS DMS 版本是否兼容
<a name="CHAP_Tasks.AssessmentReport.Oracle.dms.compatibility.version.check"></a>

**API 密钥：**`oracle-dms-compatibility-version-check`

此迁移前评估可检测您的 Oracle 数据库版本是否与您的 AWS DMS 版本不兼容。由于不支持 Oracle Redo 兼容性设置，这种不匹配可能会导致任务失败。

## 验证源数据库中是否存在辅助约束和索引（非主约束）
<a name="CHAP_Tasks.AssessmentReport.Oracle.all.check.secondary.constraints"></a>

**API 密钥：**`all-check-secondary-constraints`

此迁移前评估验证源数据库中是否存在辅助约束和索引（外键、校验约束、非聚集索引）。

## 验证会话超时设置 (`IDLE_TIME`) 是否设置为 `UNLIMITED`
<a name="CHAP_Tasks.AssessmentReport.Oracle.check.idle.time"></a>

**API 密钥：**`oracle-check-idle-time`

此迁移前评估验证用户的 Oracle 数据库`IDLE_TIME`参数是否设置`UNLIMITED`为。 AWS DMS 有限的会话超时可能会导致由于连接超时而导致迁移任务失败。

## 验证 AWS DMS 用户是否拥有源数据库的所有必需权限
<a name="CHAP_Tasks.AssessmentReport.Oracle.validate.permissions.on.source"></a>

**API 密钥：**`oracle-validate-permissions-on-source`

此迁移前评估将验证 AWS DMS 用户是否已配置为对源数据库的所有必需权限。

## 验证使用 Oracle 时是否存在`XMLTYPE`或 L LogMiner OB 列
<a name="CHAP_Tasks.AssessmentReport.Oracle.update.lob.columns"></a>

**API 密钥：**`oracle-update-lob-columns`

此迁移前评估警告使用 Oracle 时，源数据库中存在`XMLTYPE`或 L LogMiner OB 列。

## 验证目标终端节点不是只读副本
<a name="CHAP_Tasks.AssessmentReport.Oracle.read.replica"></a>

**API 密钥：**`all-check-target-read-replica`

此迁移前评估可验证目标终端节点是否未配置为只读副本。 AWS DMS 需要对目标数据库具有写入权限，并且无法复制到只读副本。

## 使用直接路径加载时，验证 Oracle 目标是否没有 CONTEXT 索引
<a name="CHAP_Tasks.AssessmentReport.Oracle.directpath.index"></a>

**API 密钥：**`oracle-check-direct-path-context-indexes`

此迁移前评估可验证目标 Oracle 表是否包含 CONTEXT 索引。 AWS DMS 在满载模式下使用直接路径时不支持 CONTEXT 索引。为避免失败，请在加载之前禁用直接路径满载模式或删除 CONTEXT 索引。

有关更多信息，请参阅 [使用 Oracle 作为来源的限制 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Limitations)。

## 验证在对`FailTasksOnLobTruncation`现有 LOB 列使用受限 LOB 模式时是否已启用
<a name="CHAP_Tasks.AssessmentReport.Oracle.FailTasksOnLobTruncation"></a>

**API 密钥：**`oracle-pg-lobs-with-failtasksonlobtruncation`

此迁移前评估将验证当所选表中存在 LOB 列并且指定了受限 LOB 模式时，是否将`FailTasksOnLobTruncation`额外连接属性设置为 true。如果在迁移期间截断任何 LOB 数据，则此设置会使任务失败，从而防止静默数据丢失。

有关更多信息，请参阅 [使用 Oracle 作为来源时的终端节点设置 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.ConnectionAttrib)。

## 验证`EnableHomogenousPartitionOps`端点设置是否已启用
<a name="CHAP_Tasks.AssessmentReport.Oracle.Homogenous.partition"></a>

**API 密钥：**`oracle-homogenous-partition-ops`

此迁移前评估可验证是否为 Oracle 同构迁移启用了`EnableHomogenousPartitionOps`端点设置。复制 Oracle 分区和子分区 DDL 操作需要此设置。 AWS DMS 

有关更多信息，请参阅 [使用 Oracle 作为来源的限制 AWS DMS](CHAP_Source.Oracle.md#CHAP_Source.Oracle.Limitations)。