Oracle 评测
本节介绍使用 Oracle 源端点的迁移任务的各项迁移前评测。
注意
要使用本节中的迁移前评估,您必须向 dms_user
添加下列权限:
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;
有关将 Oracle 作为源时的权限的更多信息,请参阅 AWS DMS 的自管理 Oracle 源上所需的用户账户权限。
主题
- 验证仅在启用 BatchApplyEnabled 时才使用受限 LOB 模式
- 验证源上的表是否包含不带小数位数(为 NUMBER 数据类型指定)的列
- 验证目标数据库上的触发器
- 验证源是否将归档日志 DEST_ID 设置为 0
- 验证在完全加载期间目标数据库上是否启用了二级索引
- 验证具有 BatchApplyEnabled 的 DMS 任务范围内使用的表是否包含超过 999 列
- 选中数据库级别补充日志记录
- 验证是否为备用数据库创建了所需的数据库链接
- Oracle 验证 LOB 数据类型以及是否已配置二进制读取器
- 验证数据库是否为 CDB
- 查看 Oracle 数据库版本
- DMS 验证 Oracle CDC 的方法
- DMS 验证 Oracle RAC 配置
- 验证 DMS 用户是否对目标拥有权限
- 验证是否所有列都需要补充日志记录
- 验证是否对具有主键或唯一键的表启用了补充日志记录
- 验证是否存在 SecureFile LOB 以及任务是否已配置为完整 LOB 模式
- 验证任务范围内的表中是否正在使用基于函数的索引。
- 验证任务范围内的表是否正在使用全局临时表。
- 验证任务范围内的表中是否正在使用具有溢出段且按索引组织的表。
- 验证任务范围内的表中是否使用了多级嵌套表。
- 验证任务范围内的表中是否使用了不可见的列。
- 验证任务范围内的表中是否使用了基于 ROWID 列的实体化视图。
- 验证是否使用了 Active Data Guard DML 重定向特征。
- 验证是否使用了混合分区表。
- 验证是否使用了仅架构的 Oracle 账户
- 验证是否使用了虚拟列
- 验证任务范围内定义的表名是否包含撇号。
- 验证任务范围内定义的列是否具有 XMLType、Long 或 Long Raw 数据类型,并在任务设置中验证 LOB 模式配置。
- 验证源 Oracle 版本是否受 AWS DMS 支持。
- 验证目标 Oracle 版本是否受 AWS DMS 支持。
- 验证目标 Oracle 版本是否受 AWS DMS 支持。
- 验证 DMS 用户是否拥有使用数据验证所需的权限。
- 验证 DMS 用户是否拥有在 Oracle ASM 上使用 Binary Reader 的权限
- 验证 DMS 用户是否拥有在 Oracle 非 ASM 上使用 Binary Reader 的权限
- 验证 DMS 用户是否拥有将 Binary Reader 与 CopyToTempFolder 方法结合使用的权限
- 验证 DMS 用户是否拥有使用 Oracle Standby 作为源的权限
- 验证 DMS 源是否已连接到应用程序容器 PDB
- 验证任务范围内的表是否具有 XML 数据类型。
- 验证源数据库上是否启用了归档日志模式。
- 验证 RDS Oracle 的归档日志保留期。
- 验证任务范围内的表是否具有扩展数据类型。
- 验证任务范围内的对象名称的长度。
- 验证 DMS 源是否已连接到 Oracle PDB
- 验证任务范围内的表是否包含空间列。
- 验证 DMS 源是否已连接到 Oracle Standby。
- 验证源数据库表空间是否使用 TDE 进行加密。
- 验证源数据库是否为 Oracle ASM
验证仅在启用 BatchApplyEnabled
时才使用受限 LOB 模式
API 密钥:oracle-batch-apply-lob-mode
此迁移前评测可验证 DMS 任务中的表是否包含 LOB 列。如果 LOB 列包含在任务范围内,则只能在受限 LOB 模式下使用 BatchApplyEnabled
。
有关更多信息,请参阅目标元数据任务设置。
验证源上的表是否包含不带小数位数(为 NUMBER 数据类型指定)的列
API 密钥:oracle-number-columns-without-scale
此迁移前评测可验证 DMS 任务是否包含未指定小数位数的 NUMBER 数据类型的列。建议您将端点设置 NumberDataTypeScale
设为评测报告中指定的值。
有关更多信息,请参阅使用 Oracle 作为 AWS DMS 的源时的端点设置。
验证目标数据库上的触发器
API 密钥:oracle-target-triggers-are-enabled
此迁移前评测可验证目标数据库上是否启用了触发器。如果启用了触发器,评测将失败。建议在迁移期间禁用或删除触发器。
有关更多信息,请参阅 DMS 最佳实践。
验证源是否将归档日志 DEST_ID
设置为 0
API 密钥:oracle-zero-archive-log-dest-id
此迁移前评测可验证,在归档日志 DEST_ID
设置为 0 的情况下,是否为源设置了端点额外连接属性 useZeroDestid=true
。
有关更多信息,请参阅在失效转移场景中与 Oracle 数据库一起使用时如何处理 AWS DMS 复制
验证在完全加载期间目标数据库上是否启用了二级索引
API 密钥:oracle-check-secondary-indexes
此迁移前评测可验证完全加载期间目标数据库上是否启用了二级索引。建议您在完全加载期间禁用或删除二级索引。
有关更多信息,请参阅 AWS Database Migration Service 的最佳实践。
验证具有 BatchApplyEnabled 的 DMS 任务范围内使用的表是否包含超过 999 列
API 密钥:oracle-batch-apply-lob-999
启用了批量优化应用模式的表的总列数不能超过 999。列数超过 999 的表将导致 AWS DMS 逐一处理批次,从而增加延迟。DMS 使用公式 2 * columns_in_original_table + columns_in_primary_key <= 999 来计算批量优化应用模式支持的每个表的总列数。
有关更多信息,请参阅将 Oracle 作为 AWS Database Migration Service 目标的限制。
选中数据库级别补充日志记录
API 密钥:oracle-supplemental-db-level
此迁移前评估将验证是否在数据库级别启用了最低限度的补充日志记录。必须启用补充日志记录才能使用 Oracle 数据库作为迁移源。
要启用补充日志记录,使用以下查询:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
有关更多信息,请参阅 设置补充日志记录。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
验证是否为备用数据库创建了所需的数据库链接
API 密钥:oracle-validate-standby-dblink
此迁移前评估将验证是否为 Oracle 备用数据库源创建了 Dblink。AWSDMS_DBLINK 是使用备用数据库作为源的先决条件。使用 Oracle Standby 作为源时,默认情况下AWS DMS 不验证未完成事务。
有关更多信息,请参阅 将自管理 Oracle 数据库作为 AWS DMS 的源。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
Oracle 验证 LOB 数据类型以及是否已配置二进制读取器
API 密钥:oracle-binary-lob-source-validation
此迁移前评估将验证 Oracle LogMiner 是否用于版本 12c 或更高版本的 Oracle 数据库端点。AWS DMS 不支持 Oracle LogMiner 从 Oracle 数据库版本 12c 迁移 LOB 列。该评估还会检查 LOB 列是否存在,并提供适当的建议。
要将您的迁移配置为不使用 Oracle LogMiner,请将以下配置添加到您的源端点:
useLogMinerReader=N;useBfile=Y;
有关更多信息,请参阅 将 Oracle LogMiner 或 AWS DMS Binary Reader 用于 CDC。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
验证数据库是否为 CDB
API 密钥:oracle-validate-cdb
此迁移前评估会验证数据库是否为容器数据库。AWS DMS 不支持多租户容器根数据库(CDB$ROOT)。
注意
只有 Oracle 版本 12.1.0.1 或更高版本需要进行此评估。此评估不适用于 12.1.0.1 之前的 Oracle 版本。
有关更多信息,请参阅 将 Oracle 作为 AWS DMS 源的限制。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
查看 Oracle 数据库版本
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 的方法
API 密钥:oracle-recommendation-cdc-method
此迁移前评估会验证前七天的重做日志生成,并建议是使用 AWS DMS 二进制阅读器还是 Oracle LogMiner for CDC。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
有关决定使用哪种 CDC 方法的更多信息,请参阅将 Oracle LogMiner 或 AWS DMS Binary Reader 用于 CDC。
DMS 验证 Oracle RAC 配置
API 密钥:oracle-check-rac
此迁移前评估会验证 Oracle 数据库是否为 Real Application Cluster。必须正确配置 Real Application Cluster 数据库。如果数据库基于 RAC,我们建议您使用适用于 CDC 的 AWS DMS 二进制读取器而不是 Oracle LogMiner。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
有关更多信息,请参阅 将 Oracle LogMiner 或 AWS DMS Binary Reader 用于 CDC。
验证 DMS 用户是否对目标拥有权限
API 密钥:oracle-validate-permissions-on-target
此迁移前评测可验证 DMS 用户是否对目标数据库拥有所有必需权限。
验证是否所有列都需要补充日志记录
API 密钥:oracle-validate-supplemental-logging-all-columns
此迁移前评测可验证,对于提及的任务范围内的表,是否已向没有主键或唯一键的表的所有列添加了补充日志记录。如果不对缺少主键或唯一键的表的所有列进行补充日志记录,则重做日志将不提供数据的前后图像。DMS 需要对没有主键或唯一键的表进行补充日志记录,才能生成 DML 语句。
验证是否对具有主键或唯一键的表启用了补充日志记录
API 密钥:oracle-validate-supplemental-logging-for-pk
此迁移前评测可验证是否为具有主键或唯一索引的表启用了补充日志记录,还可检查是否在端点级别启用了 AddSupplementalLogging
。为确保 DMS 能够复制更改,您可以根据主键或唯一键在表级别手动添加补充日志记录,也可以使用端点设置 AddSupplementalLogging = true
,让 DMS 用户对任何复制的表都拥有 ALTER 权限。
验证是否存在 SecureFile LOB 以及任务是否已配置为完整 LOB 模式
API 密钥:oracle-validate-securefile-lobs
此迁移前评测可检查任务范围内的表中是否存在 SecureFile LOB,并验证其 LOB 设置。值得注意的是,目前仅在完整 LOB 模式下支持 SecureFile LOB。考虑将 LOB 表分配给单独的任务以提高性能,因为在完整 LOB 模式下运行任务可能会导致性能降低。
验证任务范围内的表中是否正在使用基于函数的索引。
API 密钥:oracle-validate-function-based-indexes
此迁移前评测可检查任务范围内的表中是否存在基于函数的索引。请注意,AWS DMS 不支持复制基于函数的索引。考虑在目标数据库上的迁移完成后创建索引。
验证任务范围内的表是否正在使用全局临时表。
API 密钥:oracle-validate-global-temporary-tables
此迁移前评测可检查任务表映射范围内是否使用了全局临时表。请注意,AWS DMS 不支持迁移或复制全局临时表。
验证任务范围内的表中是否正在使用具有溢出段且按索引组织的表。
API 密钥:oracle-validate-iot-overflow-segments
验证任务范围内的表中是否正在使用具有溢出段且按索引组织的表。AWS DMS 不支持对具有溢出段且按索引组织的表执行 CDC。
验证任务范围内的表中是否使用了多级嵌套表。
API 密钥:oracle-validate-more-than-one-nesting-table-level
此迁移前评测可检查任务范围内使用的嵌套表的嵌套级别。AWS DMS 仅支持一个级别的表嵌套。
验证任务范围内的表中是否使用了不可见的列。
API 密钥:oracle-validate-invisible-columns
此迁移前评测可验证任务范围内使用的表中是否包含不可见的列。AWS DMS 不会迁移源数据库中不可见列的数据。要迁移不可见的列,您需要将其修改为可见。
验证任务范围内的表中是否使用了基于 ROWID 列的实体化视图。
API 密钥:oracle-validate-rowid-based-materialized-views
此迁移前评测可验证迁移中使用的实体化视图是否是基于 ROWID 列而创建。AWS DMS 不支持 ROWID 数据类型或基于 ROWID 列的实体化视图。
验证是否使用了 Active Data Guard DML 重定向特征。
API 密钥:oracle-validate-adg-redirect-dml
此迁移前评测可验证是否使用了 Active Data Guard DML 重定向特征。使用 Oracle 19.0 作为源时,AWS DMS 不支持 Data Guard DML 重定向特征。
验证是否使用了混合分区表。
API 密钥:oracle-validate-hybrid-partitioned-tables
此迁移前评测可验证是否对任务范围内定义的表使用了混合分区表。
验证是否使用了仅架构的 Oracle 账户
API 密钥:oracle-validate-schema-only-accounts
此迁移前评测可验证任务范围内是否存在仅架构的账户。
验证是否使用了虚拟列
API 密钥:oracle-validate-virtual-columns
此迁移前评测可验证 Oracle 实例在任务范围内的表中是否有虚拟列。
验证任务范围内定义的表名是否包含撇号。
API 密钥:oracle-validate-names-with-apostrophes
此迁移前评测可验证任务范围内使用的表是否包含撇号。AWS DMS 不会复制名称中包含撇号的表。如果识别了这样的表,请考虑将其重命名。或者,也可以创建不带撇号的视图或实体化视图来加载这些表。
验证任务范围内定义的列是否具有 XMLType
、Long
或 Long Raw
数据类型,并在任务设置中验证 LOB 模式配置。
API 密钥:oracle-validate-limited-lob-mode-for-longs
此迁移前评测可验证任务范围内定义的表是否具有 XMLType
、Long
或 Long Raw
,并检查任务设置是否配置为使用有限大小 LOB 模式。AWS DMS 不支持使用完整 LOB 模式复制这些数据类型。如果识别了具有这些数据类型的表,请考虑将任务设置更改为使用有限大小 LOB 模式。
验证源 Oracle 版本是否受 AWS DMS 支持。
API 密钥:oracle-validate-supported-versions-of-source
此迁移前评测可验证源 Oracle 实例版本是否受 AWS DMS 支持。
验证目标 Oracle 版本是否受 AWS DMS 支持。
API 密钥:oracle-validate-supported-versions-of-target
此迁移前评测可验证目标 Oracle 实例版本是否受 AWS DMS 支持。
验证目标 Oracle 版本是否受 AWS DMS 支持。
API 密钥:oracle-validate-supported-versions-of-target
此迁移前评测可验证目标 Oracle 实例版本是否受 AWS DMS 支持。
验证 DMS 用户是否拥有使用数据验证所需的权限。
API 密钥:oracle-prerequisites-privileges-of-validation-feature
此迁移前评测可验证 DMS 用户是否拥有使用 DMS 数据验证的必要权限。如果您不打算使用数据验证,则可以忽略启用此验证。
验证 DMS 用户是否拥有在 Oracle ASM 上使用 Binary Reader 的权限
API 密钥:oracle-prerequisites-privileges-of-binary-reader-asm
此迁移前评测可验证 DMS 用户是否拥有在 Oracle ASM 实例上使用 Binary Reader 的必要权限。如果源不是 Oracle ASM 实例,或者您没有使用 Binary Reader 执行 CDC,则可以忽略启用此评测。
验证 DMS 用户是否拥有在 Oracle 非 ASM 上使用 Binary Reader 的权限
API 密钥:oracle-prerequisites-privileges-of-binary-reader-non-asm
此迁移前评测可验证 DMS 用户是否拥有在 Oracle 非 ASM 实例上使用 Binary Reader 的必要权限。只有当您拥有 Oracle 非 ASM 实例时,此评测才有效。
验证 DMS 用户是否拥有将 Binary Reader 与 CopyToTempFolder 方法结合使用的权限
API 密钥:oracle-prerequisites-privileges-of-binary-reader-copy-to-temp-folder
此迁移前评测可验证 DMS 用户是否拥有将 Binary Reader 与“Copy to Temp Folder”方法结合使用的必要权限。只有当您计划在使用 Binary Reader 的同时使用 CopyToTempFolder 读取 CDC 更改并将 ASM 实例连接到源时,此评测才有意义。如果您不打算使用 CopyToTempFolder 特征,则可以忽略启用此评测。
建议不要使用 CopyToTempFolder 特征,因为它已被弃用。
验证 DMS 用户是否拥有使用 Oracle Standby 作为源的权限
API 密钥:oracle-prerequisites-privileges-of-standby-as-source
此迁移前评测可验证 DMS 用户是否拥有使用 Oracle Standby 实例作为源的必要权限。如果您不打算使用 Oracle StandBy 实例作为源,则可以忽略启用此评测。
验证 DMS 源是否已连接到应用程序容器 PDB
API 密钥:oracle-check-app-pdb
此迁移前评测可验证 DMS 源是否已连接到应用程序容器 PDB。DMS 不支持从应用程序容器 PDB 复制。
验证任务范围内的表是否具有 XML 数据类型。
API 密钥:oracle-check-xml-columns
此迁移前评测可验证任务范围内使用的表是否具有 XML 数据类型。它还可检查当表包含 XML 数据类型时,任务是否配置为受限 LOB 模式。DMS 仅支持在受限 LOB 模式下迁移 Oracle XML 列。
验证源数据库上是否启用了归档日志模式。
API 密钥:oracle-check-archivelog-mode
此迁移前评测可验证源数据库上是否启用了归档日志模式。DMS 需要在源数据库上启用归档日志模式才能复制更改。
验证 RDS Oracle 的归档日志保留期。
API 密钥:oracle-check-archivelog-retention-rds
此迁移前评测可验证 RDS Oracle 数据库上的归档日志保留期是否配置为至少 24 小时。
验证任务范围内的表是否具有扩展数据类型。
API 密钥:oracle-check-extended-columns
此迁移前评测可验证任务范围内使用的表是否具有扩展数据类型。请注意,只有 DMS 版本 3.5 及更高版本支持扩展数据类型。
验证任务范围内的对象名称的长度。
API 密钥:oracle-check-object-30-bytes-limit
此迁移前评测可验证对象名称的长度是否超过 30 字节。DMS 不支持长对象名称(超过 30 个字节)。
验证 DMS 源是否已连接到 Oracle PDB
API 密钥:oracle-check-pdb-enabled
此迁移前评测可验证 DMS 源是否已连接到 PDB。仅当使用 Binary Reader 且以 Oracle PDB 作为源时,DMS 才支持 CDC。该评测还可评估任务是否配置为在 DMS 连接到 Oracle PDB 时使用 Binary Reader。
验证任务范围内的表是否包含空间列。
API 密钥:oracle-check-spatial-columns
此迁移前评测可验证任务范围内的表是否包含空间列。DMS 仅支持空间数据类型使用完整 LOB 模式。该评测还可评估 DMS 识别空间列时任务是否配置为使用完整 LOB 模式。
验证 DMS 源是否已连接到 Oracle Standby。
API 密钥:oracle-check-standby-db
此迁移前评测可验证源是否已连接到 Oracle Standby。仅当使用 Binary Reader 且以 Oracle Standby 作为源时,DMS 才支持 CDC。该评测还可评估任务是否配置为在 DMS 连接到 Oracle Standby 时使用 Binary Reader。
验证源数据库表空间是否使用 TDE 进行加密。
API 密钥:oracle-check-tde-enabled
此迁移前评测可验证源是否在表空间上启用了 TDE 加密。DMS 只在包含加密表空间并且使用适用于 RDS Oracle 的 Oracle LogMiner 时才支持 TDE。
验证源数据库是否为 Oracle ASM
API 密钥:oracle-check-asm
此迁移前评测可验证源是否使用 ASM。为了提高 ASM 配置的性能,请考虑在源端点设置中添加 parallelASMReadThreads
和 readAheadBlocks
。