使用 DBUA 升级数据库到 Database 12c 版本2(12.2)的完整核对清单 (Doc ID 2364820.1、2189854.1)

0    900    1

Tags:

👉 本文共约15528个字,系统预计阅读时间或需59分钟。

目录

使用 DBUA 升级数据库到 Database 12c 版本2(12.2)的完整核对清单 (Doc ID 2364820.1)

适用于:

Oracle Database - Enterprise Edition - 版本 11.2.0.3 到 12.2.0.1 [发行版 11.2 到 12.2]
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台

用途

本文旨在提供使用 DBUA 从 12c 前数据库升级到 12.2.0.1 的指南。

适用范围

数据库管理人员/技术支持

详细信息

Database Upgrade Assistant (DBUA)

  • Database Upgrade Assistant (DBUA) 交互式的协助您一步一步升级,配置新的 12.2 数据库。是推荐的升级数据库主要版本或者补丁集的方式。

  • 它会自动执行为了升级数据库所需的所有步骤,会对数据库的某些特定领域做出推荐,您可以根据推荐做相应的配置修改。

  • DBUA 也支持升级 Oracle Real Application Clusters (Oracle RAC) 数据库。在 Oracle RAC 环境下, DBUA 升级集群中的所有节点上的数据库以及配置文件。

  • DBUA 需要在新安装的数据库 12c 软件的 ORACLE_HOME 下运行。在 windows 环境下,需要使用 administrator 用户或者软件的属主用户来执行 DBUA。

  • DBUA 会执行 Pre-Upgrade Tool,它会自动修正一些升级需要的配置参数。比如 Pre-Upgrade Tool 可以修改初始化参数成升级需要的值。Pre-Upgrade Tool 也会列出需要在升级前就手工解决的问题列表。

  • 它会对数据库的某些特定领域做出推荐,根据推荐做相应的配置修改可以让升级过程更加简单/人性化。

  • 当解决了所有预升级推荐/错误/警告后开始升级,DBUA 会显示升级源库各个组件的进展。

  • 和之前版本的 DBUA 相比,12c 的 DBUA 限制了对隐藏参数的设置。因为除了为了升级而由 Oracle 技术支持推荐的隐含参数外,Oracle 不推荐使用其它的隐藏参数。
    要检查数据库中已设置的隐藏参数,可以使用 AS SYSDBA 权限执行下面的命令:
    SELECT name,description from SYS.V$PARAMETER WHERE name LIKE '_%' ESCAPE '\';

  • DBUA 会在数据库真正升级之前检查一些项目;这些检查也可以手工去做来减少升级的停机时间。

  • DBUA 提供下面的一些选项:

    - 升级 timezone。12.2.0.1 默认的 timezone 版本是 26。

    - 在升级前收集数据字典的统计信息。

    - 把用户表空间设置为只读。

    - 在升级前做 RMAN 备份。

    - 可以恢复数据库备份来回退升级。

    - 可以在升级前或升级后执行自定义的脚本。

    - 显示 alert log 和 DBUA log的路径。

    - 可以把已存在的 listener 升级到最新的 12c Home 下或者在 12.2 目标库 HOME 下创建一个新的 listener。

  • 从 Oracle Database 12c release 2 (12.2) 开始,升级数据库可以不禁用 Oracle Database Vault。不过,如果在升级前禁用了 Oracle Database Vault,那么升级后需要手工启用它。

升级路径/12.2 兼容性矩阵

DBUA 只能对一些支持的版本进行直接升级。

可以直接升级到 12.2 的版本:

源数据库目标数据库
11.2.0.3 或者更高版本12.2.0.x
12.1.0.x (12.1.0.1 - 12.1.0.2)12.2.0.x

间接升级到 12.2:

源数据库升级路径目标数据库
7.3.3 (或更低版本)7.3.4 --> 9.2.0.8 --> 11.2.0.3 或更高版本12.2.0.x
8.0.5 (或更低版本)8.0.6 --> 9.2.0.8 --> 11.2.0.3 或更高版本12.2.0.x
8.1.7(或更低版本)8.1.7 --> 9.2.0.8 --> 11.2.0.3 或更高版本12.2.0.x
9.0.1.3(或更低版本)9.0.1.3 --> 9.2.0.8 --> 11.2.0.3 或更高版本12.2.0.x
9.2.0.7(或更低版本)9.2.0.7 --> 11.2.0.3 或更高版本12.2.0.x
10.2.0.4 (或更低版本)10.2.0.4 --> 11.2.0.3 或更高版本12.2.0.x
11.1.0.611.1.0.6 --> 11.2.0.3 或更高版本12.2.0.x
11.2.0.111.2.0.1 --> 11.2.0.3 或更高版本12.2.0.x

需要及推荐在源库上完成的

  • 在升级前确保所有 oracle 提供的组件和对象都是有效的。

  • 在开始升级或者降级前,Oracle 推荐您先升级源数据库和目标数据库到最新的 Oracle bundle patch 或者 patch set update (BP 或者 PSU)。

  • 确保在 sys 和 system schema 下没有重复存在的对象。对于 1) 和 2),参照:

    Doc Id 556610.1 - Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)

    dbupgdiag.sql 是可以在升级前或者升级后对数据库的状态进行诊断并提供用户友好的输出结果的一些 SQL 语句;它会创建一个名为 db_upgdiag_.log 的输出文件。

  • 确保升级前拥有一个可用的源数据库的备份。

  • 禁用所有自定义的 before/after DDL 类型的触发器,完成升级后再启用它们。

  • 在升级前检查数据库的升级/降级兼容性矩阵。

  • 推荐在升级前启用 archive log 模式,这样 DBUA 在升级过程中可以创建/更新 archive log。

  • 如果使用 DBUA 升级的是 RAC 数据库,那么必须保持 CLUSTER_DATABASE 设置成 true。

  • 在升级前确保运行了 pre-upgrade 工具。 检查并且实施 preupgrade log 给出的建议。

  • 在升级前原数据库上的物化视图应该被停掉
    Doc ID 1406586.1 - How to Handle Materialized Views When You Upgrade or Clone a Database

  • 禁止掉客户的计划作业以及 cron job。

推荐/需要在目标库上完成的

  • 先检查您的硬件平台/操作系统是否兼容 12.2 版本。
  • 下载安装 12c 版本2 (12.2.0.1) 软件到一个新的 ORACLE_HOME 并确认没有编译错误。
  • 如果有补丁集(PatchSet)或者最新的 Critical Patch Update(PSU/CPU)的话,下载并安装它们。
  • 确保设置 ORACLE_HOME, PATH, LD_LIBRARY_PATH, LIBPATH 等指向到 12.2 目标库 HOME。

对于Oracle Spatial组件:

升级前在源库上执行下面的语句:

如果有返回任何结果,那么需要在升级前对目标Oracle HOME打下面的补丁。

链接 : https://updates.oracle.com/Orion/Download/process_form/p25293022_122010_Generic.zip?file_id=95607293&aru=21422588
文件名 : p25293022_122010_Generic.zip

如果不打这个补丁会导致升级的post upgrade步骤的utlrp.sql执行缓慢。

在 Windows 上需要对 Oracle Home 做的准备及前提条件

在 Microsoft Windows 平台上升级数据库之前,必须满足以下这些前提条件。基于安全的考虑,为不同的 Oracle Home 配置的不同的 Microsoft Windows 用户,不允许共享同一个 Oracle Base。

  • 数据库升级对于源数据库和目标数据库的 ORACLE_HOME 使用相同的 Windows 用户是支持的。
  • 数据库升级对于源数据库使用 Windows 自带账户是支持的。Oracle Database 12c 之前的版本 (release 11.2 或者之前的版本) 在 Windows 上只支持使用 Windows 自带的用户来作为 Oracle Home 用户。
  • Oracle home 用户可能无法访问在它自己的 Oracle Base 和 Oracle home 之外的文件。如果出现这样的情况,那么在升级时选择不同的 Oracle Base,可能会出现 Oracle 数据库服务无法访问旧 Oracle Base 的情况。使用 DBUA 升级,需要确保 Oracle Home 用户可以访问它自己的 Oracle Base 和 Oracle Home 之外的文件。

升级前步骤

FILE|TERMINAL - 使用 FILE 选项把脚本输出定向到一个文件。使用 TERMINAL 选项把脚本输出打印到屏幕上。如果没有指定,那么默认是 FILE 选项。
TEXT - 使用这个选项来指定输出文件是 Text 格式的。使用 XML 选项则输出为 XML 格式。如果不指定,默认是 Text。
DIR - Log 会创建在指定的目录里。如果不指定那么会创建 log 到默认的路径:如果定义了 ORACLE_BASE 环境变量,那么日志创建在 $ORACLE_BASE/cfgtoollogs//preupgrade/ 否则会创建在 $ORACLE_HOME/cfgtoollogs/db_name/preupgrade/。

比如

源 Oracle Home : /u01/app/oracle/product/12.1.0.1/dbgome_1

目标 Oracle Home : /u01/app/oracle/product/12.2.0.1/dbhome_1

检查 preupgrade.log 文件并且实施推荐。

最新的12.2的 preupgrade 工具可以从下面的文档找到:

How to Download and Run Oracle's Database Pre-Upgrade Utility (Doc ID 884522.1)

检查源库中失效的组件及对象:

如果发现了任何无效组件或者对象,则执行下面的操作以使数据库中的无效对象变为有效:

收集优化器统计信息来减少数据库停机时间

Oracle 强烈推荐升级前收集统计信息。Oracle 推荐使用 DBMS_STATS.GATHER_DICTIONARY_STATS 来收集统计信息,比如,执行下面的 SQL:

确认升级前物化视图刷新都已经完成

用下面的语句检查当前是否有物化视图正在刷新。在升级数据库前,我们需要确认所有的物化视图都已经完成了刷新。

How to Handle Materialized Views When You Upgrade or Clone a Database (Doc ID 1406586.1)

检查 TIMESTAMP WITH TIMEZONE 类型的数据类型

Oracle Database 12c release 2 (12.2) 自带的 time zone 文件版本是 26。

情况1 源数据库的 Timezone 版本等于或者小于 26。

如果源数据库的 Timezone 版本小于 26,那么不需要打 DST 补丁到源数据库 Home 或者目标 12cR2 home。

情况2 源数据库的 Timezone 版本高于 26。

如果源数据库的 Timezone 版本高于 26,升级前必须打补丁把目标 12cR2 $ORACLE_HOME 升级到源库的 Timezone 版本一致。

确保没有数据文件需要介质恢复(media recovery)或处于备份的状态

执行下面的语句检查备份的状态:

确保没有文件需要介质恢复:

升级前清空回收站

DBUA 也可以清空回收站。

从 12.2 开始,升级前可以不禁用 Oracle Database Vault 功能

从 Oracle Database 12c release 2 (12.2) 开始,升级前可以不禁用 Oracle Database Vault 功能。不过,如果在升级前禁用了 Oracle Database Vault,那么升级后需要手工启用它。
从 Oracle Database 12c release 2 (12.2) 开始,如果启用了 Database Vault,那么可以不禁用 Database Vault 功能就升级数据库。在升级后,Oracle Database Vault 默认启用并使用升级前的设置。不过,如果在升级前禁用了 Oracle Database Vault,那么升级后需要手工启用它。

可以使用 dvsys.dbms_macadm.enable_dv() 在升级后启用 Oracle Database Vault(请确认您确实需要启用 Database Vault)。使用拥有 DV_OWNER 或者 DV_ADMIN 权限来执行。执行这个 procedure 后需要重新启动数据库实例来让设置生效。

使用了 Oracle Label Security 和 Oracle Database Vault 的低于 12.1 版本的数据库升级前准备工作

如果使用了 Oracle Label Security 或者 Oracle Database Vault,在开始升级前需要完成下面的步骤。

Audit Table 升级前准备

如果要升级使用了 Oracle Label Security (OLS) 和 Oracle Database Vault 的低于 12.1 版本的数据库,必须运行 OLS preprocess 脚本, olspreupgrade.sql,来处理 aud$ 表的内容。它会把 AUD$ 从 SYSTEM 用户迁移到 SYS 用户下。

在 Oracle Database Release 11.2 上运行 olspreupgrade.sql

如果要升级的低版本源库安装了 Oracle Label Security,那么必须运行 OLS preprocess olspreupgrade.sql 脚本。

如果在你的 11.2 数据库上没有安装 Oracle Database Vault,那么可以忽略这个部分的第2,3,6和7步骤。

升级前在 11.2 数据库上执行 OLS preprocess 脚本:

  1. 从 12.2 的 $ORACLE_HOME/rdbms/admin 下拷贝 olspreupgrde.sql 脚本到源库的 $ORACLE_HOME/rdbms/admin 下。
  2. 启动 SQL*Plus 并以 DVOWNER 登录到要升级的数据库。
  3. 执行下面的SQL:
    SQL> GRANT DV_PATCH_ADMIN to SYS;
  4. 使用 SYS as SYSDBA 登陆数据库:
    CONNECT SYS AS SYSDBA
  5. 执行 OLS preprocess 脚本:
    ORACLE_HOME/rdbms/admin/olspreupgrade.sql
    在执行 OLS preprocess 脚本前,仍然可以运行应用。
  6. 在 olspreupgrade.sql 执行完毕后启动 SQL*Plus 并以 DVOWNER 登陆数据库。
  7. 执行下面的 SQL:
    SQL> REVOKE DV_PATCH_ADMIN from SYS;

备份 Oracle EM DB Control 配置及数据 (对于低于 12.1 版本的数据库)

如果在升级数据库到 12.2 版本后,有需要再降级,那么我们必须在升级前使用 emdwgrd 工具备份 Database Control 的文件,这样在降级后可以恢复这些文件。

备份数据的步骤:

  1. 安装 12.2 的数据库软件。
  2. 设置 ORACLE_HOME 到旧的数据库版本。
  3. 设置 ORACLE_SID 为要升级的数据库 SID。
  4. 设置 PATH, LD_LIBRARY_PATH 和 SHLIB_PATH 到旧的 ORACLE_HOME 相关的目录下。
  5. 切换目录到目标数据库软件。
  6. 执行 emdwgrd。
单实例数据库:

Oracle Real Application Clusters (Oracle RAC) 数据库:

需要跨节点远程拷贝。定义一个环境变量 EM_REMCP 来指向远程拷贝的命令,比如: export EM_REMCP /usr/bin/scp

  1. 提供要升级的数据库的 SYS 密码。

使用 emremove.sql 删除 DB control (对于低于 12.1 版本的数据库)

警告:
下面的步骤不能在升级 Enterprise Manager Cloud Control Repository 时操作,否则 EM Cloud Control Repository 数据库会不可用。

从 Oracle Database 12c 版本1 (12.1) 开始,作为升级的一部分,DB Control 会被删除。

停掉 DB Console:

emctl stop dbconsole

执行 emremove.sql 脚本。脚本存放在目标 12.2 的 OH/rdbms/admin/。

在 emremove.sql 执行完毕后,必须从系统中手工删除 ORACLE_HOME/HOSTNAME_SID 和 ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_HOSTNAME_SID 目录。

如果已经安装了 Oracle Spatial (SDO),那么需要应用 merge patch 29715479

如果源库上已经安装了 Oracle Spatial (SDO),那么需要在升级前在目标 HOME 上安装 merge patch 29715479 来避免在以下文档中提到的问题:
Doc ID 2547520.1 - SDO_GEOMETRY Type Body becomes Invalid after Upgrade to 12.2.0.1

不再支持 OLAP Catalog (OLAP AMD) (对于低于 12.1 版本的数据)

从 Oracle Database 12c 开始,OLAP Catalog (OLAP AMD) 不再支持,并且作为升级的一部分会从数据库中删除。为了减少停机时间,也可以在升级前手工删除它。可以执行脚本 $ORACLE_HOME/olap/admin/catnoamd.sql 来删除它。请不要在 UPGRADE 模式下执行这个脚本。

删除 JSON-Enabled Context search 索引 (仅适用于从 12.1 升级到 12.2)

如果源库版本为 12.1 并且创建了 JSON search index 那么 Oracle 推荐在升级前先删除这些索引。

如果源库是 12.1.0.2 并且创建了 JSON search index,Oracle 推荐删除索引并在升级后再使用 CREATE SEARCH INDEX 语句创建新的 search index。更详细的信息请参照 "Oracle Database JSON Developer’s Guide"。

复制 Transparent Encryption Oracle 钱包

如果使用了带 Oracle 钱包的 Transparent Data Encryption (TDE),并且要使用 Database Upgrade Assistant (DBUA) 来升级数据库,那么拷贝 thesqlnet.ora 和 wallet 文件到新的 12.2 Oracle home。

在升级前需要手工拷贝 sqlnet.ora 和 wallet 文件。

  1. 以授权用户身份登录。

  2. 手工拷贝 sqlnet.ora,wallet 文件以及 ewallet.p12,到新的 Oracle home。

  3. 以 mount 模式打开数据库 wallet。

例如:
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN;

检查用户使用了大小写敏感的密码的版本

以管理员账号登陆 SQL*Plus 并执行下面的语句
SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;

如果存在 10g 版本的密码,建议参照 Oracle 文档来解决 10g 版本问题,否则,升级完成后用户会被锁。

关于密码大小写敏感

确保没有设置废弃的参数 SEC_CASE_SENSITIVE_LOGON 为 FALSE。

使用了 Oracle Warehouse Builder (OWB) 组件的数据库的升级前要求

11.2.0.3 之前版本的 OWB 无法和 Oracle Database 12c 兼容。安装 Oracle Database 12c 软件并不会安装 OWB 组件。之前版本的 OWB 组件在升级过程中并不会被升级。但是你仍然可以在 Oracle Database 12c 上使用 11.2.0.3 版本的OWB。

启动 DBUA

在所有前提检查都完成后,执行 DBUA,请确保所有的环境变量都指向目标 12.2 home。

取消ORACLE_PATH的参数设置,如果已经设置了的话

DBUA (步骤1)

我们需要选择要升级到 12.2.0.1 的数据库的 SID,在这个例子里是 orcl。

image-20211206162144991

DBUA (步骤2)

在下面的屏幕上,DBUA 会做很多检查。它会执行 preupgrade 脚本(preupgrade.jar) 并且返回警告/错误。

DBUA (步骤3)

一旦 pre-upgrade 警告被解决,下一个屏幕会显示各种选项,比如启用并行升级,在升级后的步骤里重新编译失效对象,升级 timezone,升级前收集统计信息,在升级中把用户表空间设置为只读。当然,您也可以指定在升级前后要执行的任何SQL脚本。

DBUA (步骤4)

在选择选项之后,下个屏幕会显示一些 Recovery 选项,比如在哪里创建 Guaranteed Restore Point,或者做一个 RMAN 备份或者已经在 DBUA 外创建了备份,那么"I have my own backup and restore stratege "选项可以被选中。

DBUA (步骤5)

在这个屏幕里,可以创建一个新的监听或者升级当前的监听到 12.2.0.1。

DBUA (步骤6)

这个屏幕来配置 EM express 或者注册这个数据库到 EM Cloud control。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复