Oracle數(shù)據(jù)庫(kù)opatch補(bǔ)丁操作流程
一、 升級(jí)前準(zhǔn)備工作
1、 確認(rèn)數(shù)據(jù)庫(kù)版本
使用dba登陸查詢當(dāng)前數(shù)據(jù)庫(kù)的版本
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi PL/SQL Release 10.2.0.5.0 - Production CORE 10.2.0.5.0 Production TNS for 64-bit Windows: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 – Production
2、 查詢補(bǔ)丁安裝信息
SQL> select * from dba_registry_history;
沒(méi)有任何記錄一般是未安裝補(bǔ)丁,也可以在環(huán)境設(shè)置以后用opatch lsinventory opatch 命令查詢當(dāng)前補(bǔ)丁安裝情況。
3、 查詢數(shù)據(jù)庫(kù)失效對(duì)象個(gè)數(shù),這個(gè)數(shù)字記下來(lái)記為N1
SQL> SELECT sum(OBJECT_NAME)N1 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
如果存在失效對(duì)象最好先編譯一遍
Sql >@?/rdbms/admin/utlrp.sql
編譯完成后重新執(zhí)行下下面語(yǔ)句,查看當(dāng)前的實(shí)效對(duì)象記為N2
SQL> SELECT sum(OBJECT_NAME)N2 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';--將該結(jié)果存入excel或者表中,便于補(bǔ)丁完后進(jìn)行核對(duì)。
4、 補(bǔ)丁類型
Oracle數(shù)據(jù)庫(kù)補(bǔ)丁一般分為兩種CPU和PSU補(bǔ)丁。
Oracle PSU的全稱是Patch Set Update,Oracle對(duì)于其產(chǎn)品每個(gè)季度發(fā)行一次的補(bǔ)丁包,包含了bug的修復(fù)。Oracle選取被用戶下載數(shù)量多,且被驗(yàn)證過(guò)具有較低風(fēng)險(xiǎn)的補(bǔ)丁放入到每個(gè)季度的PSU中。在每個(gè)PSU中不但包含Bug的修復(fù)而且還包含了最新的CPU。PSU通常隨CPU一起發(fā)布。PSU通常是增量的,大部分PSU可以直接安裝,但有些PSU則必須要求安裝了上一 個(gè)版本的PSU之后才能繼續(xù)安裝,要仔細(xì)看各個(gè)PSU的Readme文檔。
Oracle CPU的全稱是Critical Patch Update, Oracle對(duì)于其產(chǎn)品每個(gè)季度發(fā)行一次安全補(bǔ)丁包,通常是為了修復(fù)產(chǎn)品中的安全隱患。CPU是累積的(Cumulative),即最新的CPU補(bǔ)丁已經(jīng)包含以往的CPU補(bǔ)丁,所以只要安裝最新的CPU補(bǔ)丁即可。
安全漏洞整改時(shí)我們要安裝的是CPU補(bǔ)丁。
5、 查詢補(bǔ)丁信息
登陸oracle官網(wǎng)安全專題http://www.oracle.com/technetwork/topics/security點(diǎn)擊learn More,找到Critical Path Update Advisory
打開(kāi)以后可以看到oracle發(fā)布的補(bǔ)丁的列表,里面包含了oracle產(chǎn)品發(fā)布的補(bǔ)丁。
6、 補(bǔ)丁下載
例如我們當(dāng)前的oracle的版本為10.2.0.5,該版本的最后更新補(bǔ)丁為2013年 7月份,點(diǎn)擊上圖紅色鏈接后可以看到10.2.0.5的數(shù)據(jù)庫(kù)補(bǔ)丁。
注:下載使用metalink的賬號(hào),依照服務(wù)器的類型下載相應(yīng)版本的補(bǔ)丁即可。如果沒(méi)有oracle 的metalink賬號(hào)無(wú)法下載補(bǔ)丁。
7、 數(shù)據(jù)庫(kù)備份工作
在補(bǔ)丁升級(jí)前做好數(shù)據(jù)庫(kù)的備份工作,使用rman或者導(dǎo)出數(shù)據(jù)文件方式進(jìn)行數(shù)據(jù)庫(kù)的全備。條件允許的情況下操作系統(tǒng)最好也進(jìn)行一次備份。
所有以上操作做完后我們可以進(jìn)行補(bǔ)丁安裝工作了。
二、 補(bǔ)丁安裝操作
1、 閱讀補(bǔ)丁安裝要求
每個(gè)補(bǔ)丁下載后的壓縮包均會(huì)包含一份README.html 在安裝前需要仔細(xì)閱讀。一般會(huì)標(biāo)明該補(bǔ)丁適用的數(shù)據(jù)庫(kù)版本和操作系統(tǒng)版本,修復(fù)了哪些BUG等,還會(huì)有相關(guān)的提示信息。
2、 環(huán)境設(shè)置
2.1、Windows環(huán)境下
進(jìn)入計(jì)算機(jī)屬性→高級(jí)系統(tǒng)設(shè)置→系統(tǒng)屬性→環(huán)境變量
編輯path在path末尾加上%ORACLE_HOME%\OPatch或者在cmd 下set path=%path%;%ORACLE_HOME%\OPatch;
2.2、Linux下的環(huán)境變量設(shè)置
使用oracle 安裝用戶,設(shè)置ORACLE_HOME以后export PATH=$ORACLE_HOME/OPatch:$PATH。
2.3、OPATCH命令測(cè)試
環(huán)境變量設(shè)置成功后測(cè)試OPatch命令是否可用,終端下opatch –help,可以看到相關(guān)信息表示環(huán)境變量設(shè)置成功。
3、 查詢補(bǔ)丁安裝信息
操作系統(tǒng)下查看當(dāng)前補(bǔ)丁安裝情況opatch lsinventory –patch
4、 停掉監(jiān)聽(tīng)和oracle服務(wù)
4.1、Windows下關(guān)閉服務(wù)
在服務(wù)里關(guān)閉Oracle相關(guān)服務(wù)進(jìn)程,停掉監(jiān)聽(tīng)和oracle服務(wù)。關(guān)閉PLSQL客戶端,關(guān)閉SQLPLUS界面。
4.2、Linux下關(guān)閉服務(wù)
shutdown 掉所有實(shí)例,關(guān)閉監(jiān)聽(tīng)和oracle 相關(guān)進(jìn)程。如果有安裝GI和其他使用Oracle 的應(yīng)用一并停止,退出SQLPLUS界面。
5、 安裝補(bǔ)丁
在補(bǔ)丁目錄下執(zhí)行opatch apply。例如我的補(bǔ)丁解壓在E:\13460968,那就先CD到該目錄,然后執(zhí)行opatch apply
注意:windows下有時(shí)候會(huì)出現(xiàn)所有oracle進(jìn)程關(guān)閉,但是命令執(zhí)行后依然會(huì)出現(xiàn)D:\oracle\product\10.2.0\db_1\bin\oci.dll 占用的錯(cuò)誤。
linux下出現(xiàn)進(jìn)程占用時(shí)一般是sqlplus 進(jìn)程未關(guān)閉,可以用fuser查詢是什么用戶占用,但是強(qiáng)制kill時(shí)候數(shù)據(jù)庫(kù)啟動(dòng)的時(shí)候可能會(huì)報(bào)錯(cuò)。
去到該目錄找到該文件改名,例如改成oci.dllbak,如果執(zhí)行過(guò)補(bǔ)丁回退操作記得改回來(lái),重新執(zhí)行opatch apply。
選擇y,下一步等待補(bǔ)丁安裝完畢即可。
6、 啟動(dòng)數(shù)據(jù)庫(kù)
Windows先在服務(wù)中啟動(dòng)oracle的服務(wù)和監(jiān)聽(tīng)。以sysdba登陸系統(tǒng)。
Linux 下正常啟動(dòng)oracle實(shí)例和監(jiān)聽(tīng)。以sysdba登陸系統(tǒng)。
7、 執(zhí)行腳本,更新補(bǔ)丁信息到數(shù)據(jù)庫(kù)
執(zhí)行補(bǔ)丁包中的目錄下的腳本,等待腳本運(yùn)行完畢即可。Linux找到補(bǔ)丁目錄執(zhí)行即可。
sql>@E:\13460968\files\Bundle\Patch14\catcpu.sql
注意:不同補(bǔ)丁集位置可能有所不同,但一般都是有該腳本。
8、 編譯失效對(duì)象,執(zhí)行以下語(yǔ)句
Sql >@?/rdbms/admin/utlrp.sql
注意:大部分失效對(duì)象錯(cuò)誤是可以忽略的,具體類型可以用如下命令去檢查。
SQL> SELECT sum (OBJECT_NAME)N3 FROM DBA_OBJECTS WHERE STATUS='INVALID';
查看N3和第一張第3節(jié)的N2比對(duì)下,看是否新增失效對(duì)象,如果有查看具體的失效對(duì)象是什么,利用第一章節(jié)3小節(jié)得到的列表比對(duì),如果不能處理咨詢數(shù)據(jù)庫(kù)管理員處理。
9、 查詢補(bǔ)丁更新的信息
select * from dba_registry_history;
可以查看到剛剛安裝的補(bǔ)丁的相關(guān)信息。(這里我安裝了一次,卸載了一次,最后是剛剛安裝成功的信息都記錄到了數(shù)據(jù)庫(kù))。命令行下執(zhí)行Opatch lsinventory opatch
整個(gè)安裝流程結(jié)束,數(shù)據(jù)庫(kù)正常。
三、 回滾操作
一般情況下在不確定問(wèn)題原因的情況下咨詢DBA進(jìn)行檢查,確定問(wèn)題原因,在無(wú)法查證原因的情況下可以回退,具體的回滾操作命令如下。
1、如果補(bǔ)丁應(yīng)用后數(shù)據(jù)庫(kù)異?;蛘甙l(fā)生BUG,可以利用Opatch回滾補(bǔ)丁更新的操作。
2、關(guān)閉oracle相關(guān)服務(wù),參照第二節(jié)2小節(jié)設(shè)置環(huán)境變量,執(zhí)行如下命令,紅色部分為安裝補(bǔ)丁的ID。
opatch rollback -id 13460968
3、執(zhí)行完畢后 啟動(dòng)oracle相關(guān)服務(wù),windows記得恢復(fù)重命名的dll文件。
4、查詢數(shù)據(jù)庫(kù)是否可以正常啟動(dòng)。
5、回滾完畢以后使用sysdba用戶執(zhí)行roolback腳本
Sql>@E:\13460968\files\Bundle\Patch14\ catcpu_rollback.sql
6、檢查數(shù)據(jù)庫(kù)是否正常。
注意:數(shù)據(jù)庫(kù)補(bǔ)丁升級(jí)工作需要停應(yīng)用和相關(guān)服務(wù),在升級(jí)前一定要進(jìn)行數(shù)據(jù)庫(kù)的備份工作。
以上所述是小編給大家介紹的Oracle數(shù)據(jù)庫(kù)opatch補(bǔ)丁操作流程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Oralce 歸檔日志開(kāi)啟與關(guān)閉示例
- 設(shè)置oralce自動(dòng)內(nèi)存管理執(zhí)行步驟
- 提取oralce當(dāng)天的alert log的shell腳本代碼
- Oralce數(shù)據(jù)導(dǎo)入出現(xiàn)(SYSTEM.PROC_AUDIT)問(wèn)題處理方法
- mysql數(shù)據(jù)庫(kù)遷移至Oracle數(shù)據(jù)庫(kù)
- Oracle數(shù)據(jù)庫(kù)ORA 54013錯(cuò)誤的解決辦法
- VMware Workstation/Fusion 中安裝 Fedora 23/24 及其他 Linux 系統(tǒng)時(shí)使用 Open VM Tools 代替 VMware Tools 增強(qiáng)工具的方法
- oracle 創(chuàng)建字段自增長(zhǎng)實(shí)現(xiàn)方式
- Oracle觸發(fā)器trigger詳解
- oracle 數(shù)據(jù)按主鍵刪除慢問(wèn)題的解決方法
- Linux 自動(dòng)備份oracle數(shù)據(jù)庫(kù)詳解
- ORACLE實(shí)現(xiàn)自定義序列號(hào)生成的方法
- ReactNative (API)AsyncStorage存儲(chǔ)詳解及實(shí)例
- 查詢Oracle中正在執(zhí)行和執(zhí)行過(guò)的SQL語(yǔ)句
- oralce和db2兼容開(kāi)發(fā)注意事項(xiàng)
相關(guān)文章
Oracle 輕量級(jí)實(shí)時(shí)監(jiān)控工具 oratop詳解
這篇文章主要介紹了Oracle 輕量級(jí)實(shí)時(shí)監(jiān)控工具 oratop,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03oracle的歸檔模式 ORACLE數(shù)據(jù)庫(kù)歸檔日志常用命令
Oracle數(shù)據(jù)庫(kù)有聯(lián)機(jī)重做日志,這個(gè)日志是記錄對(duì)數(shù)據(jù)庫(kù)所做的修改,比如插入,刪除,更新數(shù)據(jù)等,對(duì)這些操作都會(huì)記錄在聯(lián)機(jī)重做日志里2013-01-01Orcle的package中訪問(wèn)其它Schema的表報(bào)錯(cuò)ORA-00942解決方法
package要訪問(wèn)其它Schema的表,但編譯報(bào)錯(cuò)ORA-00942,經(jīng)過(guò)搜索了一下找到了解決方法下面與大家分享下2013-05-05ORACLE應(yīng)用經(jīng)驗(yàn)(1)
ORACLE應(yīng)用經(jīng)驗(yàn)(1)...2007-03-03Oracle數(shù)據(jù)更改后出錯(cuò)的解決方法
這篇文章主要介紹了Oracle數(shù)據(jù)更改后出錯(cuò)的解決方法,需要的朋友可以參考下2014-07-07Oracle如何查看impdp正在執(zhí)行的內(nèi)容
這篇文章主要給大家介紹了關(guān)于Oracle如何查看impdp正在執(zhí)行的內(nèi)容的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06oracle中utl_file包讀寫(xiě)文件操作實(shí)例學(xué)習(xí)
在oracle中utl_file包提供了一些操作文本文件的函數(shù)和過(guò)程,接下來(lái)和大家一起學(xué)習(xí)他的基本操作,感興趣的你可以參考下哈希望可以幫助到你2013-03-03