熱更新檔:概覽
對于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
的正常更新檔已有的所有優點。不管多少次關閉資料庫,也不管關閉資料庫的時間有多長,熱更新檔程式在執行個體關閉和啟動時始終保持有效。
正常更新檔和熱更新檔
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPFdFZvhXbjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNzIzMxIjMxIzNxETMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
正常更新檔基本上要求關閉資料庫執行個體。
熱更新檔不需要任何停機時間。在安裝熱更新檔時,應用程式可以繼續運作。同樣的,無需停機便可解除安裝已安裝的熱更新檔程式。
熱更新檔注意事項
? 可能不是所有平台上都有熱更新檔程式。目前在以下平台上有熱更新檔程式:
– 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
修複或診斷更新檔程式都可用作熱更新檔程式。但熱更新檔工具的長期目标是為關鍵更新檔程式更新提供熱更新檔功能。
來源:http://blog.csdn.net/rlhua/article/details/16574625