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

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

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

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

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

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

升级路线图

大概的升级步骤:

(1) 备份数据库

(2) 运行patchset,升级oracle 软件

(3) 准备新的ORACLE_HOME

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

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

升级补丁包选择

Metalink文档id:1922396.1会更新需要的补丁号

升级方法选择

关于方法有很多,每种有各自的特点,根据特点选择合适的升级方式。

可以选择参考文档id 1674333.1和1602485.1分别是9i和11g升级到最新的11gR2

第 1 步
======
下载 11.2.0.2 或更高版本的 RDBMS 软件。

第 2 步
======
将最新的 11.2 RDBMS 软件安装到新的 ORACLE_HOME 中。

运行Patchset 的runInstaller。

./runInstaller

这里要注意,我们之前讲过11gR2的Patchset 可以直接用来安装。在这个界面就可以选择操作类型,这个功能比较方便,从而也导致patchset 越来越大,我们这里选择upgrade an existing database。

注意这里的安装位置,我之前的安装目录是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 步
=======
干净的关闭数据库。

操作步骤:

第 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] []

具体操作步骤:

操作步骤:(复制侦听,密码文件)

编辑环境变量

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

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

如果配置了并使用了 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 ;

修改参数

最后生成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

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

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

图形化升级

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

接着,是最重要的,通过DBUA进行数据库的升级,然后OUI会提示,升级ASM还是数据库,如果数据库是安装在asm上的要先升级asm,后升级数据库。最后会汇总升级信息进行确认即可开始升级。数据库升级时一个耐心的活,因为可能很慢。升级过程中最好有Data
Guard或RAC环境,优先提供服务。

oracle11g数据库升级数据库升级的更多相关文章

  1. Oracle数据库异机升级

    环境: A机:RHEL5.5 + Oracle 10.2.0.4 B机:RHEL5.5 需求: A机10.2.0.4数据库,在B机升级到11.2.0.4,应用最新PSU补丁程序. 目录: 一. 确认是 ...

  2. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  3. Android入门(十)SQLite创建升级数据库

    原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可 ...

  4. Android学习笔记(十八)——再谈升级数据库

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 之前我们为了保证数据库中的表是最新的,只是简单地在 onUpgrade()方法中删除掉了当前所有的表,然后强制 ...

  5. 附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件

    今天在将一个 SQL Server 2000 数据库附加到 SQL Server 2005时出现如下的错误:附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库t ...

  6. 【Android】数据库的简单应用——升级数据库

    假如我们已经创建好了一个数据库,随着功能需求的增加,想在数据库中再添加一个表,如果直接在之前的代码中插入一个表,会发现创建表失败,这是因为该数据库已经存在.该如何解决呢? 1.卸载程序,重新编译安装. ...

  7. 无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539) 解决方案

    使用SQL2012附加一个数据库时报出了以下错误:“无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539).不能打开与此版本的 sqlserver.exe 不兼 ...

  8. Django1.6版本的PG数据库定义手动升级

    Django1.7以后添加了migration功能,数据库定义的升级完全实现自动化,之前是通过一个叫south的app来做的.这篇文章谈一下1.6下的手动更新升级. 1.table create和ta ...

  9. Android——SQLite数据库(二)升级数据库、增、删、改、查、事务

    xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...

随机推荐

  1. 算法-动态规划DP小记

    算法-动态规划DP小记 动态规划算法是一种比较灵活的算法,针对具体的问题要具体分析,其宗旨就是要找出要解决问题的状态,然后逆向转化为求解子问题,最终回到已知的初始态,然后再顺序累计各个子问题的解从而得 ...

  2. LOJ#2983. 「WC2019」数树

    传送门 抄题解 \(Task0\),随便做一下,设 \(cnt\) 为相同的边的个数,输出 \(y^{n-cnt}\) \(Task1\),给定其中一棵树 设初始答案为 \(y^n\),首先可以发现, ...

  3. Codeforces 468C/469E 易错点

    #include <stdio.h> #include <stdlib.h> typedef long long ll; int main() { ll x=1e17; ll ...

  4. 枚举类型---java基础代码

    package com.mon11.day4; /** * 类说明 :定义枚举 * @author 作者 : chenyanlong * @version 创建时间:2017年11月4日 */ pub ...

  5. vue中的插槽slot

    插槽(slot):是组件的一块HTML模板,父组件决定这块模板显不显示以及怎么显示. 位置由子组件自身决定(slot现在组件template的什么位置,父组件传过来的模板将来就显示在什么位置) 匿名插 ...

  6. FastDFS初步认识--上传下载流程介绍

    什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 F ...

  7. 关于Html class id 命名规范

    CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...

  8. bzoj千题计划277:bzoj4513: [Sdoi2016]储能表

    http://www.lydsy.com/JudgeOnline/problem.php?id=4513 f[i][0/1][0/1][0/1] 从高到低第i位,是否卡n的上限,是否卡m的上限,是否卡 ...

  9. bzoj千题计划211:bzoj1996: [Hnoi2010]chorus 合唱队

    http://www.lydsy.com/JudgeOnline/problem.php?id=1996 f[i][j][0/1] 表示已经排出队形中的[i,j],最后一个插入的人在[i,j]的i或j ...

  10. LaTeX文章结构

    %导言 %\documentclass{article} %ctexbook \documentclass{ctexbook} \title{\heiti 监督学习} % 黑体 \author{\ka ...