Oracle 9.2.0.1升级到9.2.0.8版本

景:在windows xp server上安装了Oracle 9.2.0.1,现使用p4547809_92080_WINNT.zip将其升级到9.2.0.8版本,并打上最

新的安全补丁April 2008版。


1.升级oracle(administrator用户权限)(下载p4547809_92080_WINNT.zip网址:

ftp://updates.oracle.com/4547809/p4547809_92080_WINNT.zip)
(1)、压缩包名称为 p4547809_92080_WINNT.zip,for windows 32bit,解压缩zip,下边包含一个Disk1和readme.html文件

。安装升级补丁之前,在管理中停掉所有的oracle相关服务(在服务中停止)

(2)、双击解压后文件夹下的setup.exe,安装时目标选项里,在名称里下拉选择,就可以指定出原来的安装名称和路径,自

动升级到9.2.0.8,命令提示符提示安装完成后,说明组件已经安装上。

(3)、以sysdba身份登录数据库后,确保init.ora中的参数SHARED_POOL_SIZE 和JAVA_POOL_SIZE 为150m。方法是查看现有

两个参数值的大小
SQL>SHOW PARAMETER SHARED_POOL_SIZE
SQL>SHOW PARAMETER JAVA_POOL_SIZE
如果大小不是150m,进行设置:
SQL> Alter SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
SQL> Alter SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
注:须将服务重启才能查看出修改后的数据

设置成功后shutdown immediate关闭数据库。

(4)、以sysdba登录数据库
执行 SQL> STARTUP MIGRATE
SQL> SPOOL patch.log
SQL> @ORACLE_BASE/ORACLE_HOME/rdbms/admin/catpatch.sql
SQL> SPOOL OFF
spool patch.log是把做升级日志记录到patch.log,供以后察看。
其中ORACLE_BASE/ORACLE_HOME表示你的oracle目录,假设oracle安装目录为c:/oracle/ora92,则第三句应为:
SQL>@c:/oracle/ora92/rdbms/admin/catpatch.sql 其中@表示执行以下脚本。
这个过程持续大概20分钟。
(5)完成后shutdown immediate数据库,

然后SQL> STARTUP MIGRATE ,

执行另外一个脚本:
SQL> @ORACLE_BASE/ORACLE_HOME/rdbms/admin/utlrp.sql,完成后升级补丁打完!!
(6)重起数据库(shutdown immediate、STARTUP MIGRATE),

登陆后select * from v$version;可以看到oracle升到了9208。

2.oracle打安全补丁
(1)补丁信息:Critical Patch Update Note Release 9.2.0.8 for Microsoft Windows (32-Bit),patch号为6867138。
(2)CPU是过渡性补丁,需要用Oracle的安装工具opatch安装。
安装CPU之前,查看相应的opatch版本应为1.0.0.0.57,9.2.0.1版oracle自带版本为55的,到metalink下载57版本的,压缩

包名为p2617419_10102_GENERIC。解压缩后将OPATCH目录覆盖%oracle_home%/opatch就行了。
(3)在用OPATCH安装安全补丁之前,停掉所有的oracle服务,但是实践中发现,进程中仍会有相关的dll被未知(我未知)的程序

占用,导致couldn't copy一些.dll文件。因此建议重启服务器,进入安全模式进行。
(4)在安全模式下,在命令提示符中直接Opatch apply %补丁所在位置%,比如在我的电脑中补丁在 D:/software/oracle9

/p6867138_92080_WINNT/6867138中,则我在命令提示符中输入 Opatch apply D:/software/oracle9

/p6867138_92080_WINNT/6867138,自动安装安全补丁。
(5)安装完成后,补丁还不算打成功,都快哭了~~~~。咬牙,接着来
跑remove_demo.js脚本来移除不稳定的Oracle HTTP Server demos.命令提示符中cd到6867138目录。
>cscript //nologo remove_demo.js
(6)把修改过的 .sql文件导入数据库:
启动oracle服务,cd %ORACLE_HOME%/cpu/CPUApr2008 然后以sysdba登录后执行SQL>@catcpu.sql
如果在这个过程中报有invalid的对象,则需要执行(7),否则直接执行(8).
(7)cd %ORACLE_HOME%/rdbms/admin后以sysdba登录,执行@utlrp.sql,之后你可以用
SQL> Select OBJECT_NAME FROM DBA_OBJECTS Where STATUS= 'INVALID';检查,可以看到已没有invalid对象。
(8)重新编译数据库中的视图
cd %ORACLE_HOME%/cpu/view_recompile然后sysdba登录,执行SQL> @recompile_precheck_jan2008cpu.sql 这个是计算下需

要执行的时间等。
shutdown数据库,以migrate方式startup,SQL>startup migrate 然后SQL> @view_recompile_jan2008cpu.sql 关闭数据库。

如果有invalid对象,手动compile,但是一般没有。

总结:oracle不同的补丁还有不同的打法,实在是很不智能,所以之前要仔细的阅读readme,是个很郁闷的活!而且安装完

了不是真正的安装完!!崩溃了吧~~~上边的操作是新建数据库之后就直接进行的,因此也没有考虑到数据库备份等工作。如果你

已经在使用数据库做了一些工作,建议先备份数据库,以免补丁没有打上,影响数据库的使用。

猜你喜欢

转载自blog.csdn.net/hej027/article/details/5389135
今日推荐