您好,登錄后才能下訂單哦!
最近幾個項目上線前都要經(jīng)過服務(wù)器的安全檢測,問題最大的就是oracle數(shù)據(jù)庫,一開始都是找相關(guān)部門的DBA幫忙,今年又上新項目,服務(wù)器到位部署完畢還是掃描出數(shù)據(jù)庫一堆漏洞。決定自己學(xué)學(xué)打補丁吧,對于數(shù)據(jù)庫入門級的我來說輕易真的不敢操作生產(chǎn)系統(tǒng)的數(shù)據(jù)庫,但是總要邁出這一步,先在虛擬機上練習(xí),經(jīng)過3天的查閱資源和閱讀官方的文檔,終于成功了。
在這里記錄下來,以備后用。
在這里首先感謝風(fēng)哥提供的補丁和在安裝過程中給予的支持 目前正在學(xué)習(xí)風(fēng)哥的RAC+DG的課程,風(fēng)哥很多實戰(zhàn)中的經(jīng)驗很值得我們新手借鑒。51CTO學(xué)院風(fēng)哥介紹:http://edu.51cto.com/lecturer/index/user_id-8020378.html
操作系統(tǒng):Linux redhat enterprise 6.4
數(shù)據(jù)庫:oracle 11gr2 11.2.0.4
補丁版本:2016年第一季度發(fā)布的 p22378146_112040_Linux-x86-64
opatch版本:p6880880_112000_Linux-x86-64
環(huán)境檢查:
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE11.2.0.4.0Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
有些補丁必須要特定版本的opatch才能進行升級,我在第一次升級時就是報了opatch版本不能針對本次升級補丁包進行升級操作的錯誤信息,以下是我未升級前的opatch版本。如果你的opatch版本符合當(dāng)前補丁要求可以略過opatch升級步驟。
[oracle@localhost ~]$ opatch version OPatch Version: 11.2.0.3.4 OPatch succeeded.
OPatch升級
1.我們需要首先升級OPatch。第一步是進行原有OPatch備份。
使用tar zcvf opatch_bk.tar OPatch 或者zip -r Opatch.zip OPatc/ 都可以
2.從官網(wǎng)支持網(wǎng)站下載最新的opatch包p6880880_112000_Linux-x86-64 解壓縮到$ORACLE_HOME下
3.執(zhí)行opatch version查看最新版本
[oracle@localhost ~]$ opatch version OPatch Version: 11.2.0.3.6 OPatch succeeded.
數(shù)據(jù)庫升級
關(guān)閉監(jiān)聽和停掉數(shù)據(jù)庫
將驅(qū)動上傳至oracle用戶目錄下
解壓縮后進入該補丁目錄
執(zhí)行opatch apply進行安裝
成功后啟動監(jiān)聽、啟動數(shù)據(jù)庫,查看是否能正常啟動
登陸數(shù)據(jù)庫執(zhí)行@$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply
在dba_registry_history中,我們也可以看到記錄。
自2016年起,oracle的小版本號不再是以前那樣單個數(shù)字累加形式了,而是以日期的形式
下面是官方文檔我用有道翻譯的一些,也仍在這里算是備忘吧。最后打個廣告,胖哥也賣雜糧小米,有需要的加微信:aohanxiaomi
如果升級完畢,用PLSQL無法登陸,提示ORA-12526 所有適用例程都處于受限模式:請執(zhí)行下面操作步驟
正常啟動。但是PL/SQL DEVELOPER 連不上。沒執(zhí)行升級腳本。通過以下步驟升級成功。
SQL>@/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/catupgrd.sql
待catupgrd.sql腳本執(zhí)行完成,大概花了半個多小時;腳本執(zhí)行完會自動關(guān)閉庫,退出到oracle用戶下。
sqlplus /nolog
SQL>startup
啟動后用plsql鏈接成功,后面的步驟我就沒繼續(xù)操作,如果大家在升級中,到這步還是無法登陸可以繼續(xù)嘗試以下步驟。
執(zhí)行腳本D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/utlrp.sql;
執(zhí)行完畢后執(zhí)行查詢所有重新編譯錯誤
SQL> select * from utl_recomp_errors;
未選定行(這里說明沒有錯誤)
執(zhí)行檢查:
SQL> select name from v$database(確認(rèn)ORACLE_SID正確,為orcl)
SQL> show user(確認(rèn)當(dāng)前使用者為SYS)
SQL> select tablespace_name, bytes from dba_data_files(對系統(tǒng)表空間大小進行確認(rèn))。
SQL> @d:/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql(重建SYS用戶視圖 )
(注:這步在我升級的時候語句全部報錯,應(yīng)該可以忽略)
SQL>shutdown immediate
SQL>startup
數(shù)據(jù)庫啟動成功
To install the patch, follow these steps.
安裝補丁,遵循這些步驟。
Set your current directory to the directory where the patch is located and then run the OPatch utility by entering the following commands:
當(dāng)前目錄設(shè)置為補丁所在的目錄,然后運行OPatch實用程序通過輸入以下命令:
$ cd <PATCH_TOP_DIR>/22139245
cd < PATCH_TOP_DIR > / 22139245美元
Install the patch by running the following command:
通過運行下面的命令安裝補丁:
$ opatch apply
美元opatch應(yīng)用
Verify whether the patch has been successfully installed by running the following command:
驗證是否已成功安裝補丁通過運行下面的命令:
$ opatch lsinventory
美元opatch lsinventory
If apply fails for make target jox_refresh_knlopt when applying the patch to the database home, see Issue #1 in Section 8, "Known Issues" for more information.
如果不能申請目標(biāo)jox_refresh_knlopt數(shù)據(jù)庫應(yīng)用補丁時,看到問題# 1 8節(jié),“已知問題”獲得更多信息。
Start the services from the Oracle home after all the nodes are patched.
啟動服務(wù)后從Oracle回家的所有節(jié)點是修補。
If there are errors, see Section 8, "Known Issues".
如果有錯誤,參見“已知的問題”。
4 Postinstallation
4 Postinstallation
The following steps load modified SQL files into the database. For an Oracle RAC environment, perform these steps on only one node.
以下步驟修改SQL文件加載到數(shù)據(jù)庫。在Oracle RAC環(huán)境中,只有一個節(jié)點上執(zhí)行這些步驟。
Install the SQL portion of the patch by running the following command for a single instance environment.
安裝補丁的SQL部分通過運行下面的命令為單個實例的環(huán)境。
cd $ORACLE_HOME/sqlpatch/22139245
cd $ ORACLE_HOME / sqlpatch / 22139245
sqlplus /nolog
sqlplus / nolog
SQL> CONNECT / AS SYSDBA
SQL >連接/ SYSDBA
SQL> startup upgrade
SQL >啟動升級
SQL> @postinstall.sql
SQL > @postinstall.sql
SQL> shutdown
SQL >關(guān)閉
SQL> startup
SQL >啟動
For an Oracle RAC environment, reload the packages on one of the nodes using the following commands. Make sure no other instance of the database is up on the remote nodes.
對于一個Oracle RAC環(huán)境中,重載節(jié)點的包在一個使用以下命令。確保沒有其他實例數(shù)據(jù)庫的遠程節(jié)點上。
cd $ORACLE_HOME/sqlpatch/22139245
cd $ ORACLE_HOME / sqlpatch / 22139245
sqlplus /nolog
sqlplus / nolog
SQL> CONNECT / AS SYSDBA
SQL >連接/ SYSDBA
SQL> STARTUP
SQL >啟動
SQL> alter system set cluster_database=false scope=spfile;
SQL >改變系統(tǒng)設(shè)置cluster_database = false范圍= spfile;
SQL> SHUTDOWN
SQL >關(guān)閉
SQL> STARTUP UPGRADE
SQL >啟動升級
SQL> @postinstall.sql
SQL > @postinstall.sql
SQL> alter system set cluster_database=true scope=spfile;
SQL >改變系統(tǒng)集cluster_database = true范圍= spfile;
SQL> SHUTDOWN
SQL >關(guān)閉
SQL> STARTUP
SQL >啟動
After installing the SQL portion of the patch, some packages could become INVALID. This will get recompiled upon access or you can run utlrp. sql to get them back into a VALID state.
安裝補丁的SQL部分之后,一些包可能成為無效。這將會在訪問或您可以運行utlrp重新編譯。sql來讓他們回一個有效的狀態(tài)。
cd $ORACLE_HOME/rdbms/admin
cd $ ORACLE_HOME / rdbms / admin
sqlplus /nolog
sqlplus / nolog
SQL> CONNECT / AS SYSDBA
SQL >連接/ SYSDBA
SQL> @utlrp.sql
SQL > @utlrp.sql
If there are errors, see Section 8, "Known Issues".
如果有錯誤,參見“已知的問題”。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。