升级数据库

本文介绍了使用控制台和 API 升级数据库系统中的数据库的过程。

有关 Oracle Database 发行版和软件支持时间表,请参见 My Oracle Support 门户中的当前数据库发行版的发行时间表(文档 ID 742060.1)

必需的 IAM 策略

要使用 Oracle Cloud Infrastructure,必须由管理员在策略中为您授予安全访问权限。无论您是将控制台或 REST API 与 SDK、CLI 还是其他工具结合使用,都需要进行此访问。如果您收到一则表明您无权访问或未经授权的消息,请向管理员确认您具有哪些类型的访问权限以及要使用哪些区间

对于管理员:让数据库管理员管理 Oracle Cloud 数据库系统中的策略允许指定的组对数据库和相关数据库资源执行所有操作。

如果您刚接触策略,请参阅策略入门常见策略。如果要深入了解如何为数据库编写策略,请参阅数据库服务的详细信息

Prerequisites

查看在数据库系统中升级 Oracle Database 的以下先决条件。

  • 数据库必须处于归档日志模式下。
  • 数据库必须已启用闪回。

有关详细信息,请参阅:

关于升级数据库

查看有关数据库软件版本升级的以下信息。

  • 可以将 Oracle Database 19c 或 21c 升级到 Oracle Database 23ai。必须先将所有早期 Oracle Database 版本升级到 Oracle Database 19c。
  • 数据库系统必须使用 Grid Infrastructure 软件版本 23ai 升级到 Oracle Database 23ai。
  • 数据库系统必须使用 Oracle Linux 8 (OL8) 升级到 Oracle Database 23ai。
  • 数据库系统必须使用 Oracle Linux 7 (OL7) 升级到 Oracle Database 19c。
  • 如果数据库系统使用自动存储管理 (Automatic Storage Management,ASM) 存储管理软件,则系统必须使用 Oracle Grid Infrastructure 19c 或更高版本。
  • 对于数据库系统上未达到最低软件版本要求的数据库,只能在使用备份和还原操作将数据库还原到使用 OL7 和 GI 19c 的数据库系统后进行升级。
  • 数据库升级涉及数据库停机。Oracle 建议您在安排数据库升级时考虑这一点。
  • Oracle 建议您在升级之前备份数据库并在测试系统上测试新软件版本。

    有关创建按需手动备份的更多信息,请参见 On-Demand Full Backups

  • Oracle 建议在升级之前对数据库运行升级预检查操作,以便您可以在计划执行升级之前发现任何需要缓解的问题。预检查操作不会影响数据库可用性。因此,您可以随时执行此操作。
  • 正在执行自动备份操作时,无法执行升级操作。在升级之前,Oracle 建议禁用自动备份并执行手动备份。

    有关更多信息,请参见 Configure Automatic Backups for a DatabaseCreate an On-Demand Full Backup of a Database

  • 升级后,无法使用在升级之前执行的自动备份将数据库还原到更早的时间点。
  • 如果要升级使用 11.2 版软件的数据库,则生成的 19c 版数据库将是非容器数据库(非 CDB)。升级完成后,您可以使用控制台或 API 将生成的 19c 数据库转换为可插入数据库 (pluggable database,PDB)。

    有关运行预检查并将非 CDB 转换为 PDB 的更多信息,请参见 Convert a Non-Container Database To an Oracle Database 19c PDB

  • 对于使用普遍可用的 Oracle Database 软件发行版进行升级,无法使用 dbcli 实用程序执行升级。使用控制台执行数据库升级。如果您的组织必须使用定制软件版本进行升级,请与 Oracle 联系,以接收预先验证的 URL,您可以将该 URL 与 dbcli 结合使用来下载软件。仅当 Oracle 已提供此预先验证的请求 URL (PAR URL) 时,才能使用 dbcli 执行升级。

升级具有 Data Guard 关联的数据库

对于具有数据卫士关联的数据库,必须始终先升级备用数据库,然后再升级主数据库。控制台中为使用控制台创建的 Data Guard 关联提供了升级选项。但是,如果数据库没有 Data Guard 关联,但手动配置为主数据库或备用数据库,则以下内容适用于升级此类数据库。

  • 数据库服务将能够检测和确定数据库是主数据库还是备用数据库。
  • 对于数据库版本 11.2 和 12.1,必须在升级之前禁用 Data Guard 配置。
  • 必须先升级备用数据库,然后再升级主数据库。
  • 数据库服务将在要升级的数据库上设置保证还原点 (GRP)。成功升级后,GRP 将自动从主数据库中删除。但是,在备用数据库上,必须手动删除 GRP。

  • 升级时,将更改 DB_HOME,备用数据库将在装载模式下打开,主数据库将在读/写模式下打开。

成功升级主数据库和备用数据库后,执行以下操作。

  1. 对于数据库版本 11.2 和 12.1,启用之前在升级之前禁用的 Data Guard 配置。
  2. 检查备用数据库的打开模式。
  3. 删除在备用数据库上创建的 GRP。

数据库服务如何执行数据库升级操作

在数据库升级过程中,将自动执行以下步骤:

  • 执行自动预检查。这使系统能够识别需要缓解的问题并停止升级操作。
  • 设置 GRP,使其能够在升级失败时执行闪回。
  • 根据指定的 Oracle 发布的或定制数据库软件映像创建新的数据库主目录。
  • 运行 Database Upgrade Assistant (DBUA) 软件以对数据库执行升级。对于 Data Guard 关联中的数据库,仅对主数据库执行此步骤。

回滚失败的数据库升级

注意:

回退操作仅适用于 Oracle Database Enterprise Editions。

如果数据库升级未成功完成,则可以选择执行回退。在数据库升级操作失败后,数据库详细信息页上显示的标题消息中提供了回退选项。

开始回退之前,请查看以下信息。

  • 回退会将数据库重置为升级之前的状态。
  • 在升级期间和升级之后对数据库进行的所有更改都将丢失。

对于 Data Guard 关联中的数据库,必须按照以下步骤执行回退。

  • 如果备用数据库升级失败并且您希望回退,请执行以下步骤。
    1. 回退备用数据库。
  • 如果备用数据库升级失败并且您希望重试,请执行以下步骤。
    1. 回退备用数据库。
    2. 升级备用数据库。
  • 如果主数据库升级失败并且您希望回退,请执行以下步骤。
    1. 回退主数据库。
    2. 使用 CLI 回退备用数据库。控制台不提供回退成功升级的选项。

      有关 CLI 的更多信息,请参见 Upgrade Rollback

    3. 在基于 11.2 和 12.1 数据库版本运行的主数据库上重新启用 Data Guard 配置。
    4. 成功回退后,验证 Data Guard 配置。
  • 如果主数据库升级失败并且您希望重试,请执行以下步骤。
    1. 回退主数据库。
    2. 在备用数据库上执行对 GRP 的闪回。

      有关 GRP 的更多信息,请参见 Managing Guaranteed Restore Points

    3. 升级主数据库。

注意:

必须始终先回退主数据库,然后再回退备用数据库。

通常,使用控制台中的回退选项回退数据库时,数据库服务会自动执行以下步骤。

  1. 执行闪回。
  2. 更改数据库主目录。
  3. 删除 GRP。

只能使用 CLI 回退成功的备用数据库升级。

有关使用控制台执行回退的步骤的更多信息,请参见 Roll Back a Failed Database Upgrade

数据库升级完成后

成功升级后,请注意以下事项:

  • Oracle 建议您使用 dbcli 实用程序删除旧的数据库主目录。

    有关更多信息,请参见Dbhome Commands

  • 如果在升级之前禁用了自动备份,请检查是否为数据库启用了自动备份。
  • 编辑 Oracle Database COMPATIBLE 参数以反映新的 Oracle Database 版本。

    有关详细信息,请参阅什么是 Oracle Database 兼容性?

  • 确保 Oracle 用户的主目录中的 .bashrc 文件已更新为指向 19c 数据库主目录。
  • 如果将数据库从 Oracle Database 11。2 升级到 Oracle Database 19c,则可以将生成的非容器数据库转换为可插入数据库 (pluggable database,PDB)。可以在转换之前执行预检查,以在转换操作之前识别问题。
  • 必须删除在备用数据库上创建的 GRP。

管理保证的还原点

列出可靠还原点

可以使用以下语句使用 V$RESTORE_POINT 视图列出所有 GRP。

SELECT NAME FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES';

有关详细信息,请参阅 Oracle Database Backup and Recovery User's Guide 中的 Listing Restore Points Using the V$RESTORE_POINT view

删除可靠还原点

可以使用以下语句删除使用 DROP RESTORE POINT 语句的 GRP。

DROP RESTORE POINT <grp name>;

其中,grp name 是必须删除的 GRP 的名称。

有关详细信息,请参阅 Oracle Database Backup and Recovery User's Guide 中的 Dropping Restore Points

升级数据库

查看数据库升级历史记录

回滚失败的数据库升级

Prerequisites

  • 升级回退操作仅适用于未成功升级且当前处于 "Failed" 生命周期状态的 Oracle Database Enterprise Edition 软件。
  • 请先查看回滚失败的数据库升级主题中的信息,然后再继续执行以下步骤。

过程

使用 OCI 控制台执行以下步骤以将失败的数据库升级回退到以前的 Oracle Database 版本:

  1. 数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统
  2. 数据库选项卡上,选择要使用的数据库。
  3. 升级失败时,具有回退按钮的标题将显示在数据库详细信息页面的顶部。
  4. 选择回滚并确认。

将非容器数据库转换为 Oracle Database 19c PDB

本主题适用于从 Oracle Database 11。2 升级到 Oracle Database 19c 的数据库。在转换过程中,您将创建一个新的容器数据库 (Container Database,CDB),用于存放通过转换非 CDB 创建的可插入数据库 (Pluggable Database,PDB)。要将非容器数据库转换为使用 Oracle Database 晚于 19c 版本的 PDB,请按照本主题中的步骤操作,然后将生成的 19c 数据库升级到更高版本的软件版本,如升级数据库中所述。

先决条件和推荐的做法

  • 要将非 CDB 转换为 PDB,必须具有该非 CDB 的 TDE wallet 密码。
  • Oracle 建议在尝试转换之前创建数据库的手动备份。有关更多信息,请参见 Back Up and Recovery in Base Database Service
  • 通过控制台,您可以对转换操作执行预检查,以确保转换能够成功完成。Oracle 建议在执行转换之前运行预检查。要执行预检查,请按照此过程中的步骤进行操作,对于最后一步,请选择预检查
  • 在尝试对源数据库系统进行转换之前,您可以克隆数据库系统并在克隆的系统上测试数据库上的转换操作。有关详细信息,请参阅克隆数据库系统

使用控制台将非 CDB 转换为 PDB

  1. 数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统
  2. 数据库选项卡上,选择要使用的数据库。
  3. 在数据库详细信息页的数据库信息选项卡上,查看数据库体系结构字段以确认数据库是非容器数据库。
  4. 在数据库详细信息页上,从操作菜单中选择转换为 PDB
  5. Convert non-CDB database to pluggable database 面板中,在 Container database details 部分中提供以下信息:
    • 容器数据库名称:为将保存转换的 PDB 的新 CDB 提供名称。
    • 口令:为新 CDB 提供口令。
    • 确认口令:重新输入 CDB 口令。
    • 将管理员密码用于 TDE wallet :如果要为 TDE wallet 设置单独的密码,请取消选中此选项。取消选中该选项后,将显示以下字段:
      • 输入 TDE wallet 密码:为新 CDB 提供 TDE wallet 密码。
      • 确认 TDE wallet 密码:重新输入 TDE wallet 密码。
  6. 非容器数据库详细信息部分中,输入要转换的非 CDB 的现有 TDE wallet 密码。
  7. 选择 Precheck 以执行预检查,或者选择 Convert to PDB (如果已准备好转换数据库)。

    注意:

    运行预检查后,您将返回到控制台中的数据库详细信息页。要启动转换操作,请再次执行本主题中的所有步骤,并在最终步骤中选择转换为 PDB 选项。

成功转换数据库后,控制台中的数据库详细信息页将在数据库体系结构字段中显示容器数据库。此字段位于数据库详细信息页的数据库信息选项卡中。

将非 CDB 转换为 PDB 的故障排除提示

如果转换操作未成功完成,则可以使用数据库 cli (dbcli) 命令行实用程序解决该问题。有关数据库 CLI 的更多信息,请参见Oracle Database CLI Reference

要排除故障:

  1. 连接到数据库系统概览中所述登录到数据库系统。
  2. 使用 dbcli list-jobs 命令确定不成功的数据库转换操作的作业 ID 和状态。
  3. 使用 dbcli describe-job 命令可显示有关不成功的数据库转换操作的详细信息。

根据 dbcli describe-job 命令检索到的信息,可以尝试解决导致转换操作失败的问题。对于在插入过程中(新 PDB 插入新 CDB 时)发生的错误,请与 Oracle 技术支持联系,以便在解决导致故障的问题后完成转换。

如果转换操作失败,控制台可能会显示数据库系统中的 2 个数据库,或者仅显示已终止的数据库。数据库系统最多可能需要 2 小时才能自行重置。如果控制台不再显示 2 个数据库或单个终止的数据库,您可以重试转换。如果数据库系统本身未重置并允许您重试,请与 Oracle 技术支持联系。