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,是个很郁闷的活!而且安装完了不是真正的安装完!!崩溃了吧~~~上边的操作是新建数据库之后就直接进行的,因此也没有考虑到数据库备份等工作。如果你已经在使用数据库做了一些工作,建议先备份数据库,以免补丁没有打上,影响数据库的使用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15149581/viewspace-616241/ ,如需转载,请注明出处,否则将追究法律责任。