对于Oracle 实例上的bug 修复或诊断补丁程序,热补丁
可以执行以下操作:
• 安装
• 启用
• 禁用
热补丁:概览
使用热补丁可以安装、启用和禁用
正在运行的
活动Oracle 实例上的bug 修复或诊断补丁
程序。
使用热补丁是可在应用热补丁程序时避免停机的建议解决方案。
Oracle 提供了使用
opatch命令行实用程序对任何Oracle 数据库进行热补丁的功能。如果代码的更改范围和
复杂性都较小(例如,诊断补丁程序或小型bug 修复),则可提供热补丁程序。
• 应用热补丁程序不需要关闭实例、重新链接Oracle
二进制文件或重新启动实例。
• OPatch 可用于安装或卸载热补丁程序。
• OPatch 可以检测两个热补丁程序之间以及热补丁程序
与常规补丁程序之间的冲突。
安装热补丁程序
与常规补丁机制不同,应用热补丁程序不需要关闭或重新启动实例。
与常规补丁类似,可以使用OPatch 来安装热补丁程序。
可以使用以下命令来确定某个补丁程序是否为热补丁程序:
opatch query -is_online_patch <patch location> or
opatch query <patchlocation> -all
注:打过补丁的代码将作为动态/共享库提供,该库随后会被每个Oracle 进程映射至内存
中。
• 无停机时间,不中断业务
• 安装和卸载速度极快
• 与OPatch 集成:
– 检测冲突
– 在补丁程序清单中列出
– 在RAC 环境中工作
• 虽然不改变磁盘上的Oracle 二进制文件,但热补丁程序
在实例关闭和启动时都保持有效。
热补丁的优点
在应用热补丁程序时无需关闭数据库实例。与常规补丁不同,热补丁的安装和卸载速度极
快。因为热补丁使用OPatch,因此可以获得使用OPatch 的常规补丁已有的所有优点。不
管多少次关闭数据库,也不管关闭数据库的时间有多长,热补丁程序在实例关闭和启动时
始终保持有效。
常规补丁和热补丁
常规补丁基本上要求关闭数据库实例。
热补丁不需要任何停机时间。在安装热补丁时,应用程序可以继续运行。同样的,无需停
机便可卸载已安装的热补丁程序。
• 可能不是所有平台上都有热补丁程序。当前在以下平台
上有热补丁程序:
– Linux x86
– Linux x86-64
– Solaris SPARC64
• 要消耗一些额外的内存。
– 确切的内存数取决于:
— 补丁程序的大小
— 当前运行的Oracle 进程数
– 最小内存数:每个Oracle 进程大约占一个OS 页面
热补丁注意事项
一个操作系统(OS) 页面在Linux x86 上一般为4 KB,在和Solaris SPARC64 上为8 KB。
在平均大约一千个Oracle 进程同时运行的情况下,这意味着一个小型的热补丁程序大约
额外占用4 MB 内存。
• 在每个Oracle 进程安装或卸载热补丁程序之前,可能会有
一段极短的延迟(几秒)。
• 并非所有bug 修复和诊断补丁程序都可用作热补丁程序。
• 不能在停机时间使用热补丁程序。
• 如果可能有停机时间,则应以常规补丁程序方式安装所有
相关的bug 修复。
热补丁注意事项(续)
极大部分诊断补丁程序可作为热补丁程序提供。对于bug 修复,则具体取决于其性质。并
非每个bug 修复或诊断补丁程序都可用作热补丁程序。但热补丁工具的长期目标是为关键
补丁程序更新提供热补丁功能。