从以前的 11.2.0.N 版本非原地手动升级到最新的 11.2.0.N 补丁集的完整核对清单

来源:互联网 发布:印度留学知乎 编辑:程序博客网 时间:2024/06/07 12:01

目标

本文介绍如何执行从 11.2.0.1 到 11.2.0.2 或更高版本的非原地数据库手动升级。

提问,获得帮助,并分享您对于这篇文档的经验。

您是否希望与其他 Oracle 客户、Oracle 员工和业内专家进一步探讨此主题?

请点击这里进入Oracle 社区(中文).
请点击这里进入My Oracle Support 社区的数据库安装/升级(英文)主页发现更多的话题和讨论。

解决方案

11.2.0.2 和及更高版本的补丁集是完整版本。11.2 补丁集安装程序不更新现有 11.2 安装。
不论您是执行非原地升级还是原地升级,安装过程都将执行新安装。
(请参阅 11.2 Upgrade Guide 第 3 章“Known Issue When Starting an In-Place Upgrade for Release 11.2.0.2”或更高版本的说明

从 11.2.0.2 开始,有两种方法来安装补丁集:

  • 非原地升级(推荐)
  • 原地升级
  •  
    “原地”升级选项可选,但并非推荐选项。
    该升级可以完成。但是,您不能简单地运行 11.2.0.2 的安装程序并指向 原来的11.2.0.1。

    “原地”升级步骤记录在 Upgrade Guide 中(见下文)。
    原地升级(升级到同一个Oracle Home)

有关详细信息,请参阅以下说明:

Note 1189783.1 Important Changes to Oracle Database Patch Sets Starting With 11.2.0.2
Note 1320966.1 Things to Consider before upgrading to 11.2.0.2.x regarding performance/wrong results

 

假如Mitigation Patch 1972130应用在原数据库上,然后Oracle JVM component被禁止。当升级数据库的时候你可能会遇到下面的错误。
ORA-02290 - check constraint (SYS.JAVA_DEV_DISABLED) violated.
在开始升级数据库前,在原数据库上打开Oralce JVM java component。

Connect to the database as a SYSDBA user
SQL> exec dbms_java_dev.enable;

参照:Database Upgrade failed with Errors “ORA-02290: check constraint (SYS.JAVA_DEV_DISABLED) violated” & “ORA-04045: SYS.DBMS_ISCHED” (Doc ID1985725.1)

注意:这步骤仅仅当您在原数据库上应用了Mitigation Patch的时候实施


请注意:在本文中,当提到 11.2.0.1 时,指的是当前已安装的任意 11.2 版本 (11.2.0.1-11.2.0.N)。当提到 11.2.0.2 时,指的是 11.2 补丁集 (11.2.0.2-11.2.0.N) 的任意较新版本。


第 1 步
======

下载 11.2.0.2 或更高版本的 RDBMS 软件。
请参阅 NOTE:753736.1 - Quick Reference to Patchset Patch Numbers
查看补丁程序集自述文件中关于所需下载文件的完整说明,因为可能需要多个文件,并且自述文件中提供了每个补丁集的特定说明。

另请参阅:

Note 549617.1 : How To Verify The Integrity Of A Patch/Software Download? [Video]
Note 169706.1 : Oracle Database Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)


第 2 步
======

将最新的 11.2 RDBMS 软件安装到新的 ORACLE_HOME 中。

请注意,从 11.2 安装开始,所有基本 RDBMS 组件均会安装。唯一的选项是组件是否会被链接(激活并可以使用)。自定制安装选项不再提供了。

如果数据库使用 Oracle Text 主题或者要安装 Oracle Multimedia 演示和其他演示,则需要安装 11.2.0.2 Examples CD(以前称为 Companion CD),因为这些项不在基本安装中。

您可以对以前的和新的 ORACLE_HOME 运行“opatch lsinventory -detail”以比较安装的产品。

另请注意:
如果使用 /opt/oracle 作为 ORACLE_BASE,则 rootupgrade.sh 将失败。有关详细信息,请参阅 

Note: 1281913.1 Root Script Fails if ORACLE_BASE is set to /opt/oracle


第 3 步
======

安装最新的 11.2 RDBMS 软件之后,用以前的 ORACLE_HOME 中启动 11.2.0.1实例,对正在运行的以前的实例执行 11.2.0.2 的$ORACLE_HOME/rdbms/admin/utlu112i.sql 脚本,并将输出 spool 至一个文件。

不论您是使用 DBUA 还是手动升级,均必须运行 Pre-Upgrade Information Tool。否则可能会遇到错误:

SQL> SELECT TO_NUMBER('MUST_BE_SAME_TIMEZONE_FILE_VERSION')
2 FROM registry$database
3 WHERE tz_version != (SELECT version from v$timezone_file);
SELECT TO_NUMBER('MUST_BE_SAME_TIMEZONE_FILE_VERSION')
*
ERROR at line 1:
ORA-01722: invalid number


您需要检查 spool 生成文件的内容,并在升级到 11.2 的最新版本之前修复所有问题。

已知问题
++++++++++++++++
11.2.0.2 使用时区版本 14。11.2.0.1 使用时区版本 11(以后的版本可能会使用更新版本的时区数据)。

如果选中了“Upgrade Timezone Version and TIMESTAMP WITH TIME ZONE data”框,则最新 ORACLE_HOME 中的 DBUA 会自动将时区升级到所包括的版本。

如果是手动升级,则:
可在升级到最新 11.2 版本之后,使用 DBMS_DST 程序包升级时区版本,或者将 11.2.0.1 时区升级到该时区版本(请注意,如果在升级之前将 11.2.0.1 时区版本升级到其他版本,需要重新运行 utlu112i.sql)。

请参阅:

 Note 1201253.1 Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset


第 4 步
======

运行以下 My Oracle Support 文章中的 dbupgdiag.sql 脚本,验证 dba_registry 中的所有组件有效并且 dba_objects 中没有无效的数据字典对象。

Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)


如果 dbupgdiag.sql 脚本报告了任意无效对象,则运行 $ORACLE_HOME/rdbms/admin/utlrp.sql(可能需要多次)以使数据库中的无效对象变为有效,直至无效对象数不发生变化为止。

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba"
SQL> @utlrp.sql


使无效对象有效之后,再次在数据库中重新运行 dbupgdiag.sql,然后确保一切正常。

第 5 步
======

禁用所有批处理和 cron 作业,然后执行数据库的完整备份。

例子
----------
要执行数据库的完整备份,请完成以下步骤:

1. 登录 RMAN:
rman "target / nocatalog"
2. 运行以下 RMAN 命令:
RUN
{
ALLOCATE CHANNEL chan_name TYPE DISK;
BACKUP DATABASE FORMAT 'some_backup_directory%U' TAG before_upgrade;
BACKUP CURRENT CONTROLFILE FORMAT 'controlfile location and name';
}


另请参阅:Oracle Database Backup and Recovery User's Guide

注:对于完整的冷备份,请首先关闭数据库。

第 6 步
=======

干净的关闭数据库。

第 7 步(仅限 Windows 平台)
========================


1) 将环境变量 ORACLE_HOME 设置为指向 11.2.0.1 安装。

2) 停止指向 11.2.0.1 安装的 Oracle 数据库服务。

  C:\> NET STOP OracleServiceORCL


3)  使用 %ORACLE_HOME%\bin\ORADIM 可执行程序删除 11.2.0.1 Oracle 服务。

C:\> ORADIM -DELETE -SID ORCL


4) 将环境变量 ORACLE_HOME 设置为指向 11.2.0.2 安装。

5) 将 init.ora/spfile 和口令文件 (orapw<sid>.ora) 从 11.2.0.1 %ORACLE_HOME%/database 复制到 11.2.0.2 %ORACLE_HOME%/database。

6) 将网络配置文件(listener.ora、sqlnet.ora、tnsnames.ora 等)从 11.2.0.1 %ORACLE_HOME%\network\admin(或 $TNS_ADMIN)位置复制到 11.2.0.2 %ORACLE_HOME%\network\admin(或 %TNS_ADMIN%)位置。

7) 如果配置并使用了 DB Console/DB Control,将以下两个目录及其内容从 11.2.0.1 复制到 11.2.0.2。(如果未配置 DB Console/DB Control,则这些目录可能不存在。)
           ORACLE_HOME/<hostname_dbname>
           ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>


8) 使用 11.2.0.2 的可执行程序,在命令提示符下创建 Oracle 11.2.0.2 服务。

%ORACLE_HOME%\bin\ ORADIM 
C:\> ORADIM -NEW -SID SID -SYSPWD PASSWORD -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA


例如:

C:\> ORADIM -NEW -SID ORCL -SYSPWD  pass_with_sysdba_priv  -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA

 

PASSWORD = 新数据库实例的口令。这是使用 SYSDBA 权限连接的用户的口令。-SYSPWD 选项并非必需。如果未指定该项,则将使用操作系统验证,并且不需要口令



第 8 步(Unix 和 Linux)
================
=
配置目标 11.2.0.2 ORACLE_HOME

1) 确保环境变量 ORACLE_BASE、ORACLE_HOME、PATH、NLS_10 和 LIBRARY_PATH 设置为指向 11.2.0.2 安装。

将 ORACLE_SID 设置为 11.2.0.1数据库名以升级。

修改 /etc/oratab 文件指向您的 11.2.0.2 ORACLE_HOME。

2) 禁用 Database Vault

Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX


3) 将 init.ora/spfile 和口令文件 (orapw<sid>.ora) 从 11.2.0.1 $ORACLE_HOME/dbs 复制到 11.2.0.2 $ORACLE_HOME/dbs

4) 将网络配置文件(listener.ora、sqlnet.ora、tnsnames.ora 等)从 11.2.0.1 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置复制到 11.2.0.2 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置

5) 如果配置了并使用了 DB Console/DB Control,将以下两个目录及其内容从 11.2.0.1 复制到 11.2.0.2。(如果未配置 DB Console/DB Control,则这些目录可能不存在。)
           ORACLE_HOME/<hostname_dbname>
           ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>

请为 <hostname_dbname> 指定实际的名称

6) 确保为 Oracle Database 11g 版本 2 (11.2) 正确设置了 COMPATIBLE 初始化参数。如果未正确设置 COMPATIBLE,则 Pre-Upgrade Information Tool 会在“Database”部分中显示警告。

7) 将初始化参数的值调整到至少为 Pre-Upgrade Information Tool 指示的最小值。对于安装了 JVM 的客户,必须在升级前将 java_pool_size 和 shared_pool_size 至少设置为 250MB,否则 JVM 升级可能会失败,并出现以下错误:

ORA-07445: exception encountered: core dump [qmkmgetConfig()+52] [SIGSEGV] [ADDR:0x18] [PC:0x103FFEC34] [Address not mapped to object] []


第 9 步
======

手动升级数据库。

1) 启动 sqlplus 并从 新安装的目标 $ORACLE_HOME/rdbms/admin 下运行 catupgrd.sql 脚本

sqlplus " / as sysdba "
SQL> spool /tmp/upgrade.log
SQL> startup upgrade
SQL> set echo on
SQL> @catupgrd.sql;
SQL> spool off
SQL> Shutdown immediate


2) 查看 catupgrd.sql 生成的 spool 文件中的错误。

3) 按正常模式重新启动数据库。

4) SQL> @$ORACLE_HOME/rdbms/admin/catuppst.sql;

5) SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql;

6) 运行 dbupgdiag.sql 脚本(参阅 note: 556610.1)并验证 dba_registry 中的所有组件均有效并且 dba_objects 中没有无效对象。

升级后步骤
===================

1) 升级集群配置

如果您使用的是 Oracle 集群,那么您必须更新集群配置。

从 11.2.0.2 开始,upgrade 命令会将配置更新为正在运行的软件的版本。

您可以使用 srvctl 命令,例如:

srvctl upgrade database

这个命令会将数据库及其对应服务的配置信息更新至正在运行的软件的版本。

语法及选项如下:

srvctl upgrade database -d db_unique_name -o Oracle_home
Table A-161 srvctl upgrade database Options

选项描述
-d db_unique_name
 数据库的 unique name
 
-o Oracle_home
ORACLE_HOME 的路径

2) 使用 DBMS_DST 将时区升级到最新版本。

Note 1201253.1
Title: Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset


3) 升级 Recovery Catalog
有关升级 Recovery Catalog 和 UPGRADE CATALOG 命令的完整信息,请参阅《Oracle Database Backup and Recovery User's Guide》中的介绍这些过程的主题。

4) 升级 DBMS_STATS 程序包创建的 Statistics Table

如果使用 DBMS_STATS.CREATE_STAT_TABLE 创建了 statistics table,则通过运行以下命令来升级这些表:

EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('scott', 'stat_table');


在示例中,SCOTT 是 statistics table 的所有者,STAT_TABLE 是 statistics table 的名称。对每个 statistics table 都需要执行此命令。

5) 启用 Oracle Database Vault 并收回 DV_PATCH_ADMIN 角色。
如果您使用了 Oracle Database Vault,并按照之前的指示在升级前先禁用了它,现在您需要:

启用 Database Vault。

Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX


收回 SYS 用户的 Database Vault DV_PATCH_ADMIN 角色。

参考
===========
Oracle Database
Upgrade Guide
11g Release 2 (11.2)
E17222-06                             <October 2010                         <
Chapter 3
       Upgrading to the New Release

http://download.oracle.com/docs/cd/E11882_01/server.112/e17222.pdf

6). 数据库中的 Oracle Warehouse Builder (OWB) 组件不会在升级过程中安装。升级后,有几个步骤升级该组件。

请参考 Oracle® Warehouse Builder Release Notes 11g Release 2 (11.2)

0 0
原创粉丝点击