升级数据库
本文介绍了使用控制台和 API 升级数据库系统中的数据库的过程。
有关 Oracle Database 发行版和软件支持时间轴,请参见 My Oracle Support 门户中的 Release Schedule of Current Database Releases (Doc ID 742060.1) 。
必需的 IAM 策略
要使用 Oracle Cloud Infrastructure,必须在策略中由管理员为您授予安全访问权限。无论您是将控制台还是 REST API 与 SDK、CLI 还是其他工具结合使用,都需要进行此访问。如果您收到一条您无权或未经授权的消息,请向管理员核实您具有的访问权限类型以及要使用的区间。
对于管理员:让数据库管理员管理 Oracle Cloud 数据库系统中的策略允许指定的组使用数据库和相关数据库资源执行所有操作。
如果您不熟悉策略,请参阅策略入门和常见策略。如果要更深入地了解数据库的写入策略,请参阅数据库服务的详细信息。
先决条件
查看在数据库系统中升级 Oracle Database 的以下先决条件。
- 数据库必须处于 archivelog 模式。
- 数据库必须启用闪回。
有关详细信息,请参阅:
- 面向数据库发行版的 Oracle Database Documentation ,了解有关这些设置的更多信息
- 创建数据库的按需完整备份
- 从备份创建数据库系统
关于升级数据库
查看有关数据库软件版本升级的以下信息。
- 您可以将 Oracle Database 19c 或 21c 升级到 Oracle AI Database 26ai。必须先将所有早期 Oracle Database 版本升级到 Oracle Database 19c。
- 数据库系统必须使用 Grid Infrastructure 软件版本 26ai 升级到 Oracle AI Database 26ai。
- 数据库系统必须使用 Oracle Linux 8 (OL8) 升级到 Oracle AI Database 26ai。
- 数据库系统必须使用 Oracle Linux 7 (OL7) 升级到 Oracle Database 19c。
- 如果您的数据库系统使用自动存储管理 (ASM) 存储管理软件,则系统必须使用 Oracle Grid Infrastructure 19c 或更高版本。
- 对于数据库系统上的数据库不符合最低软件版本要求,只能在使用备份和还原操作将数据库还原到使用 OL7 和 GI 19c 的数据库系统后进行升级。
- 数据库升级涉及数据库停机。Oracle 建议在安排数据库升级时考虑这一点。
-
Oracle 建议您在升级之前备份数据库并在测试系统上测试新软件版本。
有关创建按需手动备份的更多信息,请参见 On-Demand Full Backup 。
- Oracle 建议在升级之前为数据库运行升级预检查操作,以便可以在计划执行升级之前发现需要缓解的任何问题。预检查操作不影响数据库可用性。所以你可以随时执行它。
-
正在执行自动备份操作时,无法执行升级操作。在升级之前,Oracle 建议禁用自动备份并执行手动备份。
有关更多信息,请参见 Configure Automatic Backups for a Database 和 Create 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 联系,以接收可以与 dbcli 一起使用的预先验证的 URL,以便下载您的软件。仅当 Oracle 提供了此预先验证的请求 URL(PAR URL) 时,才可以使用 dbcli 执行升级。
升级具有 Data Guard 关联的数据库
对于具有 Data Guard 关联的数据库,必须始终先升级备用数据库,然后再升级主数据库。控制台中提供了使用控制台创建的 Data Guard 关联的升级选项。但是,如果您的数据库没有 Data Guard 关联,但手动配置为主数据库或备用数据库,则以下内容适用于升级此类数据库。
- 数据库服务将能够检测和识别数据库是主数据库还是备用数据库。
- 对于数据库版本 11.2 和 12.1,升级之前必须禁用 Data Guard 配置。
- 必须先升级备用数据库,然后再升级主数据库。
- 数据库服务将在要升级的数据库上设置保证还原点 (GRP)。成功升级后,GRP 将自动从主数据库中删除。但是,在备用数据库上,必须手动删除 GRP。
- 升级时,将更改
DB_HOME,备用数据库将在装载模式下打开,主数据库将在读/写模式下打开。
成功升级主数据库和备用数据库后,执行以下操作。
- 对于数据库版本 11.2 和 12.1,请启用升级之前禁用的 Data Guard 配置。
- 检查备用数据库的打开模式。
- 删除在备用数据库上创建的 GRP。
数据库服务如何执行数据库升级操作
在数据库升级过程中,将自动执行以下步骤:
- 执行自动预检查。这使系统能够识别需要缓解的问题并停止升级操作。
- 设置 GRP,使其能够在升级失败时执行闪回。
- 根据指定的 Oracle 发布或定制数据库软件映像创建新的数据库主目录。
- 运行 Database Upgrade Assistant (DBUA) 软件对数据库执行升级。对于 Data Guard 关联的数据库,此步骤仅对主数据库执行。
回退失败的数据库升级
注:回退操作仅适用于 Oracle Database Enterprise Editions。
如果数据库升级未成功完成,则可以选择执行回退。在执行不成功的数据库升级操作后,数据库详细信息页上显示的标题消息中提供了回退选项。
在开始回退之前,请查看以下信息。
- 回退会将数据库重置为升级前的状态。
- 在升级期间和升级之后对数据库所做的所有更改都将丢失。
对于 Data Guard 关联中的数据库,必须按照以下步骤执行回退。
- 如果备用数据库升级失败并且您希望回退,请执行以下步骤。
- 回退备用数据库。
- 如果备用数据库升级失败并且您希望重试,请执行以下步骤。
- 回退备用数据库。
- 升级备用数据库。
- 如果主数据库升级失败并且您希望回退,请执行以下步骤。
- 回退主数据库。
-
使用 CLI 回滚备用数据库。控制台未提供回退成功升级的选项。
有关 CLI 的更多信息,请参见 Upgrade Rollback 。
- 在 11.2 和 12.1 数据库版本上运行的主数据库上重新启用 Data Guard 配置。
- 成功回退后,验证 Data Guard 配置。
- 如果主数据库升级失败并要重试,请执行以下步骤。
- 回退主数据库。
-
在备用数据库上执行到 GRP 的闪回。
有关 GRP 的更多信息,请参阅管理保证还原点。
- 升级主数据库。
注:必须始终先回退主数据库,然后再回退备用数据库。
通常,使用控制台中的回退选项回退数据库时,数据库服务会自动执行下列步骤。
- 执行闪回。
- 更改数据库主目录。
- 删除 GRP。
只能使用 CLI 回退成功的备用数据库升级。
有关使用控制台执行回退的步骤的详细信息,请参阅回退失败的数据库升级。
数据库升级完成后
成功升级后,请注意以下事项:
-
Oracle 建议您使用 dbcli 实用程序删除旧的数据库主目录。
有关更多信息,请参见Dbhome Commands 。
- 如果在升级之前禁用了自动备份,请检查是否已为数据库启用自动备份。
-
编辑 Oracle Database
COMPATIBLE参数以反映新的 Oracle Database 版本。有关详细信息,请参阅什么是 Oracle Database Compatibility?。
- 确保已更新 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 。
升级数据库
使用 OCI 控制台,执行以下步骤将数据库从较旧版本升级到较新的主要版本:
- 在数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统。
- 在数据库选项卡上,选择要使用的数据库。
-
在数据库详细信息页上,选择更新选项卡以查看数据库的可用升级列表。
默认情况下,最新批准的版本更新可用。您还可以在确认显示的消息后选择前两个版本更新(N-1 或 N-2)之一。要使用早于 N-2 的版本更新,必须提交服务请求。
- 从您感兴趣的升级的操作菜单中,选择以下操作之一:
- 查看详细信息:查看有关此升级的详细信息。
- Precheck :检查是否有任何先决条件,以确保可以成功应用升级。
- 应用更新:应用所选升级。Oracle 建议您在应用升级之前对升级运行预检查操作。
在列表中, State 显示操作的状态。应用升级时,状态将显示为升级。数据库的状态还显示为升级。对数据库及其资源的生命周期操作可能暂时不可用。如果升级成功完成,状态将更改为 Applied ,数据库的状态将更改为 Available 。
查看数据库升级历史记录
执行以下步骤,使用 OCI 控制台查看数据库的升级历史记录:
- 在数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统。
- 在数据库选项卡上,选择要使用的数据库。
- 在详细信息页上,选择更新历史记录选项卡以查看该数据库的更新和升级操作的历史记录。
回退失败的数据库升级
先决条件
- 升级回退操作仅适用于未成功升级且当前处于 "Failed" 生命周期状态的 Oracle Database Enterprise Edition 软件。
- 请先查看回退失败的数据库升级主题中的信息,然后再继续执行以下步骤。
过程
使用 OCI 控制台执行以下步骤以将失败的数据库升级回退到以前的 Oracle Database 版本:
- 在数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统。
- 在数据库选项卡上,选择要使用的数据库。
- 升级失败时,具有回退按钮的标题将显示在数据库详细信息页面的顶部。
- 选择回滚并确认。
将非容器数据库转换为 Oracle Database 19c PDB
本主题适用于从 Oracle Database 11。2 升级到 Oracle Database 19c 的数据库。在转换过程中,将创建一个新的容器数据库 (Container Database,CDB),用于存放通过转换非 CDB 创建的可插入数据库 (Pluggable Database,PDB)。要将非容器数据库转换为使用更高版本的 Oracle Database 19c 的 PDB,请按照本主题中的步骤操作,然后将生成的 19c 数据库升级到更高版本的软件版本,如“升级数据库”中所述。
先决条件和建议做法
- 必须具有非 CDB 的 TDE wallet 密码才能将其转换为 PDB。
- Oracle 建议在尝试转换之前创建数据库的手动备份。有关更多信息,请参见 Back Up and Recovery in Base Database Service 。
- 通过控制台,您可以对转换操作执行预检查,以确保转换可以成功完成。Oracle 建议在执行转换之前运行预检查。要执行预检查,请按照此过程中的步骤操作,对于最终步骤,请选择预检查。
- 您可以在克隆系统中的数据库中克隆数据库系统并测试转换操作,然后再尝试在源数据库系统上进行转换。有关详细信息,请参阅克隆数据库系统。
使用控制台将非 CDB 转换为 PDB
- 在数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统。
- 在数据库选项卡上,选择要使用的数据库。
- 在数据库详细信息页的数据库信息选项卡上,查看数据库体系结构字段以确认数据库是非容器数据库。
- 在数据库详细信息页上,从操作菜单中选择转换为 PDB 。
- 在将非 CDB 数据库转换为可插入数据库面板中,在容器数据库详细信息部分中提供以下信息:
- 容器数据库名称:为将保存转换的 PDB 的新 CDB 提供名称。
- 密码:为新 CDB 提供密码。
- 确认密码:重新输入 CDB 密码。
- 使用 TDE wallet 的管理员密码:如果要为 TDE wallet 设置单独的密码,请取消选中此选项。取消选中该选项后,将显示以下字段:
- 输入 TDE wallet 密码:为新 CDB 提供 TDE wallet 密码。
- 确认 TDE wallet 密码:重新输入 TDE wallet 密码。
- 在非容器数据库详细信息部分中,输入要转换的非 CDB 的现有 TDE wallet 密码。
-
选择 Precheck 以执行预检查,或者选择 Convert to PDB (如果已准备好转换数据库)。
注:运行预检查后,您将返回到控制台中的数据库详细信息页。要启动转换操作,请再次执行本主题中的所有步骤,并在最终步骤中选择转换为 PDB 选项。
成功转换数据库后,控制台中的数据库详细信息页将在数据库体系结构字段中显示容器数据库。此字段位于数据库详细信息页的数据库信息选项卡中。
将非 CDB 转换为 PDB 的故障排除提示
如果转换操作未成功完成,则可以使用数据库 cli (dbcli) 命令行实用程序解决该问题。有关数据库 CLI 的更多信息,请参见《Oracle Database CLI Reference 》。
要进行故障排除,请执行以下操作:
- 按连接到数据库系统概览中所述登录到数据库系统。
- 使用
dbcli list-jobs命令确定不成功的数据库转换操作的作业 ID 和状态。 - 使用
dbcli describe-job命令可显示有关不成功的数据库转换操作的详细信息。
根据 dbcli describe-job 命令重新优化的信息,您可以尝试解决导致转换操作失败的问题。对于插入过程中发生的错误(将新 PDB 插入到新 CDB 时),请与 Oracle 技术支持联系,以获得在解决导致失败的问题后完成转换所需的帮助。
如果转换操作失败,控制台可能会在数据库系统中显示 2 个数据库,或仅显示一个已终止的数据库。数据库系统自我重置至多需要 2 小时。如果控制台不再显示 2 个数据库或一个已终止的数据库,您可以重试转换。如果数据库系统未重置自身并允许您重试,请与 Oracle 技术支持联系。