合 使用 DBUA 升级数据库到 Database 12c 版本2(12.2)的完整核对清单 (Doc ID 2364820.1、2189854.1)
Tags: Oracle升级DBUAupgradeChecklist
- 适用于:
- 用途
- 适用范围
- 详细信息
- Database Upgrade Assistant (DBUA)
- 升级路径/12.2 兼容性矩阵
- 需要及推荐在源库上完成的
- 推荐/需要在目标库上完成的
- 对于Oracle Spatial组件:
- 在 Windows 上需要对 Oracle Home 做的准备及前提条件
- 升级前步骤
- 检查源库中失效的组件及对象:
- 收集优化器统计信息来减少数据库停机时间
- 确认升级前物化视图刷新都已经完成
- 检查 TIMESTAMP WITH TIMEZONE 类型的数据类型
- 确保没有数据文件需要介质恢复(media recovery)或处于备份的状态
- 升级前清空回收站
- 从 12.2 开始,升级前可以不禁用 Oracle Database Vault 功能
- 使用了 Oracle Label Security 和 Oracle Database Vault 的低于 12.1 版本的数据库升级前准备工作
- Audit Table 升级前准备
- 在 Oracle Database Release 11.2 上运行 olspreupgrade.sql
- 备份 Oracle EM DB Control 配置及数据 (对于低于 12.1 版本的数据库)
- 单实例数据库:
- Oracle Real Application Clusters (Oracle RAC) 数据库:
- 使用 emremove.sql 删除 DB control (对于低于 12.1 版本的数据库)
- 如果已经安装了 Oracle Spatial (SDO),那么需要应用 merge patch 29715479
- 不再支持 OLAP Catalog (OLAP AMD) (对于低于 12.1 版本的数据)
- 删除 JSON-Enabled Context search 索引 (仅适用于从 12.1 升级到 12.2)
- 复制 Transparent Encryption Oracle 钱包
- 检查用户使用了大小写敏感的密码的版本
- 关于密码大小写敏感
- 使用了 Oracle Warehouse Builder (OWB) 组件的数据库的升级前要求
- 启动 DBUA
- DBUA (步骤1)
- DBUA (步骤2)
- DBUA (步骤3)
- DBUA (步骤4)
- DBUA (步骤5)
- DBUA (步骤6)
- DBUA (步骤7)
- DBUA (步骤8)
- DBUA (步骤9)
- 升级后步骤
- 已知问题
- APPLIES TO:
- PURPOSE
- SCOPE
- DETAILS
- Database Upgrade Assistant (DBUA)
- Upgrade Path / Compatibility Matrix for 12.2 Oracle Database.
- Requirements and Recommendation for source database.
- Requirements and Recommendations for Target database
- Recommendation for Oracle Spatial Component:
- Prerequisites for Preparing Oracle Home on Windows
- Pre-Upgrade
- Check for Invalid Objects / Components:
- Gathering Optimizer Statistics to Decrease Oracle Database Downtime
- Verifying Materialized View Refreshes are Complete Before Upgrade
- Check of TIMESTAMP WITH TIMEZONE Datatype
- Ensuring That No Files Are in Backup Mode and no files need media recovery Before Upgrading
- Purging Recycle Bin before upgrade
- Starting with Oracle Database 12c release 2 (12.2), you can upgrade the database without disabling Oracle Database Vault.
- Requirements for Upgrading Databases That Use Oracle Label Security and Oracle Database Vault (For Oracle Database releases earlier than 12.1)
- Audit Table Preupgrade
- Running olspreupgrade.sql on Oracle Database Release 11.2
- Save OEM DB Control Configuration (For Oracle Database releases earlier than 12.1)
- Single-instance databases:
- Oracle Real Application Clusters (Oracle RAC) databases:
- Removing DB Control with emremove.sql (For Oracle Database releases earlier than 12.1)
- If Oracle Spatial (SDO) is installed, then apply the merge patch 29715479
- Desupport of OLAP Catalog (OLAP AMD) (For Oracle Database releases earlier than 12.1)
- Drop JSON-Enabled Context search Indexes (Only for the upgrade of 12.1 DB to 12.2)
- Copying Transparent Encryption Oracle Wallets
- Check the accounts use Case-Insensitive password version
- About Password Case Sensitivity
- Requirement for Upgrading Databases that Use Oracle Warehouse Builder (OWB)
- Invoke DBUA
- DBUA (Step 1 of 9)
- DBUA (step 2of 9)
- DBUA (Step 3 of 9)
- DBUA (Step 4 of 9)
- DBUA (Step 5 of 9)
- DBUA (Step 6 of 9)
- DBUA (step 7 of 9)
- DBUA (Step 8 of 9)
- DBUA Step 9 of 9)
- Post-Upgrade
- Known Issues
使用 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.6 | 11.1.0.6 --> 11.2.0.3 或更高版本 | 12.2.0.x |
11.2.0.1 | 11.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组件:
升级前在源库上执行下面的语句:
1 2 3 4 5 6 7 | col owner format a15 col table_name format a30 col column_name format a30 SELECT owner,table_name,column_name FROM dba_tab_columns WHERE data_type = 'SDO_GEOMETRY' AND owner != 'MDSYS' ORDER BY 1,2,3; |
如果有返回任何结果,那么需要在升级前对目标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 之外的文件。
升级前步骤
1 | $Earlier_release_Oracle_home/jdk/bin/java -jar $New_release_Oracle_home/rdbms/admin/preupgrade.jar [FILE|TERMINAL] [TEXT|XML] [DIR output_dir] |
FILE|TERMINAL - 使用 FILE 选项把脚本输出定向到一个文件。使用 TERMINAL 选项把脚本输出打印到屏幕上。如果没有指定,那么默认是 FILE 选项。
TEXT - 使用这个选项来指定输出文件是 Text 格式的。使用 XML 选项则输出为 XML 格式。如果不指定,默认是 Text。
DIR - Log 会创建在指定的目录里。如果不指定那么会创建 log 到默认的路径:如果定义了 ORACLE_BASE 环境变量,那么日志创建在 $ORACLE_BASE/cfgtoollogs/
比如
源 Oracle Home : /u01/app/oracle/product/12.1.0.1/dbgome_1
目标 Oracle Home : /u01/app/oracle/product/12.2.0.1/dbhome_1
1 2 3 4 5 6 7 8 9 | $ export ORACLE_SID=orcl $ export ORACLE_BASE=/u01/app/oracle $ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.1/dbhome_1 $ $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/admin/preupgrade.jar FILE TEXT Preupgrade generated files: /u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade.log /u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql /u01/app/oracle/cfgtoollogs/orcl/preupgrade/postupgrade_fixups.sql |
检查 preupgrade.log 文件并且实施推荐。
最新的12.2的 preupgrade 工具可以从下面的文档找到:
How to Download and Run Oracle's Database Pre-Upgrade Utility (Doc ID 884522.1)
检查源库中失效的组件及对象:
1 2 3 4 5 6 7 8 9 10 | set pagesize 500 set linesize 1000 set linesize 1000 col comp_id format a10 col comp_name format a40 select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name; select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status='INVALID' order by owner,object_type; select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by owner,object_type ; |
如果发现了任何无效组件或者对象,则执行下面的操作以使数据库中的无效对象变为有效:
1 2 | $ sqlplus "/ as sysdba" SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql |
收集优化器统计信息来减少数据库停机时间
Oracle 强烈推荐升级前收集统计信息。Oracle 推荐使用 DBMS_STATS.GATHER_DICTIONARY_STATS 来收集统计信息,比如,执行下面的 SQL:
1 | SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; |
确认升级前物化视图刷新都已经完成
用下面的语句检查当前是否有物化视图正在刷新。在升级数据库前,我们需要确认所有的物化视图都已经完成了刷新。
1 | SQL> select s.obj#,o.obj#,s.containerobj#,lastrefreshdate,pflags,xpflags,o.name,o.owner#, bitand(s.mflags, 8) from obj$ o, sum$ s where o.obj# = s.obj# and o.type# = 42 AND bitand(s.mflags, 8) = 8; |