oracle11g数据库升级数据库升级(一)

2015-02-02 23:31:24 · 作者: · 浏览: 21

Oracle支持周期

wKioL1RwrpvyBukyAAMkClSTeao691.jpg

?

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

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

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

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

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

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

升级路线图

wKiom1RwrmjSXODJAAITOSDSG4c601.jpg

?

大概的升级步骤:

(1) 备份数据库

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

(3) 准备新的ORACLE_HOME

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

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

升级补丁包选择

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

wKioL1RwrxricNIJAAOWwmqw9J4760.jpg

升级方法选择

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

?

wKiom1RwrtewdeArAAQ_nAkHjZs922.jpg

?

wKioL1Rwr5nSrTalAAJMXvvLJe0792.jpg

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

wKiom1Rwr2fB0BrVAASB_rjEEMs949.jpg

?

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

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

运行Patchset 的runInstaller。

./runInstaller

wKioL1Rwr_vCGaASAAIf8YPSwq0800.jpg

这里要注意,我们之前讲过11gR2的Patchset 可以直接用来安装。在这个界面就可以选择操作类型,这个功能比较方便,从而也导致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.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/
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_
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.ORA
例如:

C