迁移到 Amazon RDS for Oracle 的最佳实践 - AWS 规范性指导

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

迁移到 Amazon RDS for Oracle 的最佳实践

根据对您数据库和项目要求的评测,如果您的目标是迁移到 Amazon RDS for Oracle,请按照本节中的最佳实践预置目标数据库、执行迁移以及测试、操作和优化您的 Amazon RDS for Oracle 数据库。

重要

在迁移数据库之前,请务必制定回滚计划。

配置您的目标数据库

在完成评测、规划和准备数据库迁移策略后,在配置 Amazon RDS for Oracle 数据库时,请遵循以下最佳实践:

  • 根据您对 CPU、内存、IOPS 和存储类型的要求调整 Amazon RDS for Oracle 数据库实例的大小。

  • 设置正确的时区和字符集。

  • 确保在正确的虚拟私有云 (VPC) 中启动 Amazon RDS。

  • 使用正确的端口和 IP 地址创建安全组。

  • 在私有子网中配置 Amazon RDS 数据库以提高安全性。

  • 如果可能,请使用最新的 Oracle 数据库版本(当前为 19c)配置数据库实例。早期版本的支持已接近终止。有关更多信息,请参阅适用于 Oracle Database 19c 的 Amazon RDS

  • 如果您想使用加密,请在配置 Amazon RDS 数据库时始终将其启用。

  • 为每个 Amazon RDS 数据库创建单独的选项组和参数组。

从源数据库中导出数据

有许多工具可以将 Oracle 数据库迁移到 Amazon RDS for Oracle 数据库。最常用的工具是 Oracle Data Pump。在导出源 Oracle 数据库之前,请检查以下内容以简化导出过程:

  • 检查数据库大小,看是否可以按架构迁移它,而不是迁移整个数据库。与一次性迁移所有架构相比,单独迁移架构不易出错,也更易于管理。

  • 使用 Oracle Data Pump PARALLEL 参数以并行模式导出数据,以提高性能。

  • 检查表中是否有大型对象 (LOB)。如果您有带有 LOB 的大表,我们建议您单独导出这些表。

  • 在导出过程中,避免在源数据库上运行长时间的数据库事务,以避免 Oracle 读取不一致错误。

  • 如果您使用的是 AWS DMS、Oracle GoldenGate 或 Quest SharePlex 等复制工具,请确保本地服务器上有足够的空间来保存 24-72 小时的存档日志,具体取决于迁移所需的时间。

将数据泵转储文件传输到 AWS

如果您使用的是 AWS Direct Connect,它在您的本地环境和 AWS 之间提供高带宽连接,则可以使用 Oracle DBMS_FILE_TRANSFER 实用程序或 Amazon S3 集成功能复制 Data Pump 文件。如果您无法通过 AWS Direct Connect 获得高带宽,请使用 AWS Snowball 传输大型数据库导出转储文件。

将数据导入目标数据库

  • 如果您要迁移非常大的数据库,我们建议您在迁移期间先配置一个更大的 Amazon RDS 实例类型,以加快数据加载速度。迁移完成后,您可以将数据库实例更改为大小合适的实例类型。

  • 如果需要,可以增加重做日志文件、撤消表空间和临时表空间的大小,以提高迁移期间的性能。

  • 在导入过程中禁用多可用区选项,并在迁移完成后将其启用。

  • 通过将备份保留期设置为零来禁用存档日志的生成,以加快数据加载速度。

  • 通过提前创建表空间、用户、角色、配置文件和架构来准备目标数据库。

  • 如果您有带有 LOB 的大表,请分别导入每个 LOB 表。

导入后步骤

  • 检查导入日志文件中是否存在错误,并在导入完成后修复所有错误。

  • 检查是否存在无效对象。如果找到,请编译并修复它们。

  • 由于缺乏对 Amazon RDS 不允许或不支持的 SYS 对象的权限,某些过程可能无法编译。必须重写这些程序。

  • 如果您使用的是序列,请根据源数据库验证序列值以避免序列不一致。

  • 确保您的 Amazon RDS 数据库中的对象数量与源数据库中的对象数量相同。验证表、索引、过程、触发器、函数、包、约束和其他对象。

  • 如果您的源数据库具有指向其他数据库的数据库链接,请测试连接以确认这些链接仍然有效。

  • 收集字典级别和架构级别的统计信息,以获得最佳性能。

测试迁移

我们建议您进行以下测试,以便根据新的 Amazon RDS for Oracle 数据库验证您的应用程序:

  • 您可能需要根据 Amazon RDS for Oracle 数据库版本升级 Oracle 客户端软件或 JDBC 软件。如果您已迁移到较新版本的 Oracle 数据库,则该数据库可能不支持旧版本的 Oracle 客户端软件。

  • 执行功能测试。

  • 比较源数据库和目标数据库中 SQL 查询的性能,并根据需要调整查询。有些查询在目标数据库中的执行速度可能会更慢,因此我们建议您在源数据库中捕获 SQL 查询的基准。

  • 当应用程序团队完成测试并确认您的 Amazon RDS 数据库运行正常后,您可以:

    • 根据评测结果调整 Amazon RDS 数据库实例的大小。

    • 启用备份保留。

    • 启用存档日志。

    • 重置重做日志文件的大小。

    • 启用多可用区选项。

    • 创建 Amazon CloudWatch 警报并设置 Amazon Simple Notification Service (Amazon SNS)主题以备警报。

为了在概念验证 (POC) 阶段进行其他验证,我们建议进行以下补充测试:

  • 运行性能测试以确保它们符合您的业务期望。

  • 测试数据库失效转移、恢复和修复,确保满足 RPO 和 RTO 要求。

  • 列出所有关键任务和报告,并在 Amazon RDS 上运行它们,以根据您的服务水平协议 (SLA) 评估其性能。

操作和优化您的 Amazon RDS 数据库

当您的数据库在 AWS 上时,请确保遵循云中监控、警报、备份和高可用性等领域的最佳实践。例如:

  • 设置 CloudWatch 监控并启用详细监控。

  • 使用 Amazon RDS 性能详情Oracle 企业管理器 (OEM) 管理代理来监控您的数据库。

  • 使用 SNS 主题设置提醒。

  • 使用 AWS Backup 设置自动备份。您也可以使用 Oracle Data Pump 备份或手动拍摄快照。

  • 为了实现高可用性,请设置 Amazon RDS Multi-AZ 特征。

  • 如果您需要只读数据库,请根据需要在相同或跨 Amazon Web Services Region 内设置只读副本