打补丁的过程
1、升级opatch工具,检查剩余空间用于存放ORACLE_HOME的备份,设置oracle_home环境变量,通过readme中的先决条件来检查现有补丁是否和本次补丁冲突
2、opatch apply 升级数据库软件,这个必须数据库文件不要被进程调用
在windows上排查数据库文件是否被进程使用可以通过
tasklist /m可以列出正在使用.ddl文件(模块)的进程名称和pid
tasklist /m ntdll.dll
然后用
taskkill /pid 杀掉
(1)通常有进程msdtc.exe,对应着分布式事务协调器服务,
net stop msdtc
(2)wmiprvse.exe进程,对应的服务是
Windows Management Instrumentation服务进行关闭
除过这些之外,对应着
oracleserviceorcl是实例服务,oracledb_home2TNSlistener是监听服务
3、升级时候,一般要求将补丁放在oracle_home所在的盘符下
4、更新数据字典
5、编译无效对象
6、升级OJVM补丁,如果没有用的话,可以禁用掉OJVM组件
在windows server 2008 R2 X64上给oracle 11.2.0.4打PSU后,使用sqlplus进行连接的时候,出现如下的报错:
解决方法:
无需回退补丁,在windows程序中检查
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC
的版本号,需要8.0.61000
下载地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=26347
下载完成后,直接安装该程序vcredist_x64.exe,安装后会出现两个版本,再次连接就正常。