oracle11g数据库升级

Oracle支持周期java

wKioL1RwrpvyBukyAAMkClSTeao691.jpg

 

Oracle对本身产品也同样,对于本身的产品在不一样的时期,支持的强度是不同的。
大致分来,支持的强度分为三个级别:Premier Support(最高优先级的支持),Extended Support(中等优先级的支持),Sustaining Support(最低优先级的支持)sql

1.从产品发布为期5年的标准支持服务期-Premier support数据库

2.随后为期3年的延展支持服务期---------extended support服务器

3.接下来进入持久支持服务期--------------sustaining support网络

不过根据不一样的周期划分,Oracle的支持费用将会不一样,在延展服务器内,第一年将会加收10%的费用提供支持,第二年加收20%的费用提供支持,第三年也是加收20%的费用提供支持。session

Oracle11g数据库的推出,oracle数据库的升级成为必然。升级包括数据库软件的升级和数据库的升级两部分。oracle

升级路线图app

wKiom1RwrmjSXODJAAITOSDSG4c601.jpg

 

大概的升级步骤:ide

1    备份数据库ui

2    运行patchset,升级oracle 软件

3    准备新的ORACLE_HOME

4    运行dbua 或者脚本升级实例

5    检查升级后的版本信息和无效对象

升级补丁包选择

Metalink文档id1922396.1会更新须要的补丁号

 wKioL1RwrxricNIJAAOWwmqw9J4760.jpg

升级方法选择

关于方法有不少,每种有各自的特色,根据特色选择合适的升级方式。

 

 wKiom1RwrtewdeArAAQ_nAkHjZs922.jpg

wKioL1Rwr5nSrTalAAJMXvvLJe0792.jpg

能够选择参考文档id 1674333.11602485.1分别是9i11g升级到最新的11gR2

wKiom1Rwr2fB0BrVAASB_rjEEMs949.jpg

 

1
======

下载 11.2.0.2 或更高版本的 RDBMS 软件。

2
======

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

运行Patchset runInstaller

./runInstaller

wKioL1Rwr_vCGaASAAIf8YPSwq0800.jpg

这里要注意,咱们以前讲过11gR2Patchset 能够直接用来安装。在这个界面就能够选择操做类型,这个功能比较方便,从而也致使patchset 愈来愈大,咱们这里选择upgrade an existing database

wKioL1RwsCCSa55BAALMX8XdHTg352.jpg

注意这里的安装位置,我以前的安装目录是11.2.0. 这里我改为了11.2.0.4. 即将oracle 安装到其余位置,这样能够减小宕机时间,也是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。不然可能会遇到错误:

1.     Log in to the system as theowner of the environment of the database being upgraded.

Important:

The Pre-UpgradeInformation Tool must be copied to and must be run from the environment of thedatabase being upgraded.

注意,这里必须调用新的ORACLE_HOME 下脚本。

2.     Start SQL*Plus.

3.     Connect to the databaseinstance as a user with SYSDBA privileges.

4.     Set the system to spool resultsto a log file for later analysis:

SQL> SPOOL upgrade_info.log

5.     Run the Pre-Upgrade InformationTool:

SQL>@/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql

6.     Turn off the spooling of scriptresults to the log file:

SQL> SPOOL OFF

4
======

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

若是 dbupgdiag.sql 脚本报告了任意无效对象,则运行 $ORACLE_HOME/rdbms/admin/utlrp.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';
}

6
=======

干净的关闭数据库。

操做步骤:

wKiom1RwsBHjRjz8AACCbN-ez6w930.jpg

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.orasqlnet.oratnsnames.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_BASEORACLE_HOMEPATHNLS_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.orasqlnet.oratnsnames.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] []

具体操做步骤:

 

操做步骤:(复制侦听,密码文件)
wKioL1RwsK2x9useAALAXsLbYQQ584.jpg

 编辑环境变量

wKiom1RwsE7Q-dCcAAHnGXapzGg452.jpg

 /etc/oratab,该目录下也有ORACLE_HOME

[oracle@dave db_1]$ cat /etc/oratab

wKiom1RwsGbjr0zzAACJMg_xfuk216.jpg

 若是配置了并使用了 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>

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

必须在升级前将 java_pool_size shared_pool_size 至少设置为 250MB

加入参数:

create pfile from spfile ;

修改参数

wKioL1RwsPrh1ei_AABvmZ626wc752.jpg

最后生成spfile

SQL> create spfile from pfile ;

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> @
$ORACLE_HOME/rdbms/admin /catupgrd.sql;  
SQL> spool off
SQL> Shutdown immediate

这个很是重要的步骤能够确保新的数据库软件的完整性和一致性。若是在启动数据库时碰到错误说参数文件中含有被废弃的初始化参数,那么从初始化参数文件中删除这些参数。若是须要的话,能够把 spfile 转换成 pfile 以后就能够编辑 pfile 并删除相关参数了。
执行 Post-Upgrade Status Tool $ORACLE_HOME/rdbms/admin/utlu112s.sql它会提供一个关于升级的总结. 它会显示升级后各个数据库组件的状态和各个组件升级花费的时间。任何在升级中碰到的错误也会被列出,这些错误必须获得妥善的处理。

$ sqlplus "/as sysdba"
SQL> STARTUP
SQL> @utlu112s.sql

运行 $ORACLE_HOME/rdbms/admin 目录下的 catuppst.sql完成不须要在数据库处于 UPGRADE 模式下操做的其它升级的动做:

SQL> @catuppst.sql
这个脚本能够和 utlrp.sql 并行运行. 在另外一个 session 里运行 utlrp.sql 来从新编译剩下的 PL/SQL Java 代码:

SQL> @utlrp.sql
运行从下面文档中获得的 dbupgdiag.sql 来检查升级后数据库的完整性。

Note 556610.1  Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
若是 dbupgdiag.sql 发现了一些失效对象,那么屡次执行 $ORACLE_HOME/rdbms/admin/utlrp.sql 来从新编译这些失效对象,直到失效对象的数目再也不变化。
在从新编译这些失效对象以后,再次运行 dbupgdiag.sql 确认一切都是正常的。

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

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 角色。
参考http://download.oracle.com/docs/cd/E11882_01/server.112/e17222.pdf

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

7最后调用一下dbca 重建一下OEM

       若是dbca 显示OEM 已经配置过,rm 掉以下2个目录,再次运行就ok了。

ORACLE_HOME/hostname_dbname

ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname

wKioL1RwsGPiLEGAAAIlewOpb_8430.jpg

最后验证一下各个组件的版本和状态:

Sql> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY

COMP_NAME                                VERSION         STATUS

---------------------------------------- --------------- ----------------------

OWB                                      11.2.0.1.0      VALID

Oracle Application Express               3.2.1.00.10     VALID

Oracle Enterprise Manager                11.2.0.4.0      VALID

OLAP Catalog                             11.2.0.4.0      VALID

Spatial                                  11.2.0.4.0      VALID

Oracle Multimedia                        11.2.0.4.0      VALID

Oracle XML Database                      11.2.0.4.0      VALID

Oracle Text                              11.2.0.4.0      VALID

Oracle Expression Filter                 11.2.0.4.0      VALID

Oracle Rules Manager                     11.2.0.4.0      VALID

Oracle Workspace Manager                 11.2.0.4.0      VALID

Oracle Database Catalog Views            11.2.0.4.0      VALID

Oracle Database Packages and Types       11.2.0.4.0      VALID

JServer JAVA Virtual Machine             11.2.0.4.0      VALID

Oracle XDK                               11.2.0.4.0      VALID

Oracle Database Java Packages            11.2.0.4.0      VALID

OLAP Analytic Workspace                  11.2.0.4.0      VALID

Oracle OLAP API                          11.2.0.4.0      VALID

18 rows selected.

至此,经过命令升级操做结束。

若是在升级过程当中遇到问题,能够从新执行升级脚本,步骤以下:

1.Shut down the database as follows:

    SQL> SHUTDOWNIMMEDIATE

2.Restart the databasein UPGRADE mode:

   SQL> STARTUP  UPGRADE

3.Set the system to spool results to a logfile for later verification of success:

   SQL> SPOOLupgrade.log

4.Rerun catupgrd.sql:

   SQL>@catupgrd.sql

Note:

You can rerunthe catupgrd.sql script as many times as necessary. The first timeyou run the script, there should be no error messages returned. If you rerunthe script, then the ORA-00001 messageis displayed. You can safely ignore this message.

5.Rerun utlu112s.sql:

   SQL>@utlu112s.sql

图形化升级

   图形化升级更为简单,到调用图形化界面后一路回车完成升级。

wKiom1RwsKXBxG2mAAJwHNl9sxE835.jpg

 

接着,是最重要的,经过DBUA进行数据库的升级,而后OUI会提示,升级ASM仍是数据库,若是数据库是安装在asm上的要先升级asm,后升级数据库。最后会汇总升级信息进行确认便可开始升级。数据库升级时一个耐心的活,由于可能很慢。升级过程当中最好有Data GuardRAC环境,优先提供服务。