客户又扫描出漏洞来了,还得打补丁。
这次经历很有意思,从头学了一次Oracle在windows下 如何打补丁,
- Oracle体系中的漏洞和补丁的关系。
厂商补丁:Oracle
Oracle已经为此发布了一个安全公告(cpujuly2011-313328)以及相应补丁:
cpujuly2011-313328:Oracle Critical Patch Update Advisory - July 2011
链接:http://www.oracle.com/technetwork/topics/security/cpujuly2011-313328.html
威胁分值 8
危险插件 否
发布日期 2011-07-19
CVE编号 CVE-2011-2238
CVE编号 CVE-2011-2238:类似一个公共的组织,来提示漏洞,各厂商根据此漏洞给出各自不同的补丁,这里很像j2ee,sun给出接口,各厂商给出各自的实现。
1.1 点开网页,按照下图找出需要打补丁的程序(贴图太麻烦了)
Oracle Database 11g Release 2, versions 11.2.0.1, 11.2.0.2 | Database |
这个需要有support的帐号登录。没有的话,去借一个吧。
1.2,在文档中找第3部分“
3 Patch Availability for Oracle Products”
3.1 Oracle Database
Table 7 Patch Availability for Oracle Database 11.2.0.1
Oracle Database home |
CPU Patch 12419278, or DB PSU Patch 12419378, or Exadata BP11 Patch 12608545 |
Bundle Patch 12429528 |
Bundle Patch 12429529 |
CVE-2011-0816, CVE-2011-0831, CVE-2011-0832, CVE-2011-0835, CVE-2011-0838, CVE-2011-0848, CVE-2011-0870, CVE-2011-0876, CVE-2011-0879, CVE-2011-0880, CVE-2011-2230, CVE-2011-2231, CVE-2011-2232, CVE-2011-2238, CVE-2011-2239, CVE-2011-2242, CVE-2011-2243, CVE-2011-2244, CVE-2011-2248, CVE-2011-2253, CVE-2011-2257 |
按照合适的操作系统,选择patch,在新出的页面上,可以在页面的右侧,直接download,就是合适的补丁了。
2.安装补丁,找了好多文档,都是在linux下面如何安装补丁的文档,很少有windows下面的。最后根据公司DBA的提示,让我自己看readme文件。
3.下面就是安装步骤了,其实这里的步骤,就是readme文件上写的。
3.1 备份ORACLE_HOME,其实我发现我都没有设置这个变量,这里设不设没有关系,这里为了表示方便就写做%ORACLE_HOME%(到dbhome_1)
3.2根据提示更新Opatch
3.2.1将Opatch设置如Path变量, %ORACLE_HOME%\Opatch
3.2.2执行 opatch version 命令,看看是否符合上面那个readme要求。
3.2.3如果不符合要求,去下载一个符合要求的。readme上有连接。
3.2.4,其实下载了,解压、覆盖Opatch文件夹就好了,为了安全期间,还是备份一下。
3.3 使用Opatch安装补丁
3.3.1 关闭service里面关闭所有的Oracle程序。还有一个Distributed Transaction Coordinator(这个不是Oracle的也得关闭)
3.3.2在命令窗口,CD到补丁的根目录下,执行 Opath apply
3.3.3 这里我碰到一个问题就是oci.dll is active,主要解决方式是下面的几种
3.3.3.1 检查3.3.1的步骤是否关闭。
3.3.3.2 Windows Management Instrumentation 的进程,这个不能关闭,暂停吧。
3.3.3.3如果还不管用的话,出绝招了,将active的dll,进行重命名。(我就是这个方法,升级完成后,会生成新的,而且反正有备份)
3.3.4 执行Opatch apply吧。再吧关掉的进程都重启一下,最好是重启一下电脑,就搞定了。