經歷Oracle patch 5496862補丁

xingfei80發表於2012-06-01
1. 環境
資料庫平臺硬體架構如下:
生產機:IBMp6 570安裝AIX5L ML 5308 。
資料庫平臺:Oracle Server - Enterprise Edition - Version: 9.2.0.8
生產機:兩臺IBMp6 570 OS均為 5300-08-01-0189
應用系統:OA
2、故障現象:
系統管理員發現應用系統後臺總是報錯,錯誤如下:
ORA-01115:IO error reading block from file 6 (block #2707)
ORA-01110: data file 6 : ‘/oradata/smis1.dbf’
ORA-27091: skgfqio :unable to quere I/O
ORA-27072: skgfdisp : I/O error
IBM AIX RISC System/6000 Error : 5: I/O error
[@more@]
3、解決辦法:
這個問題在網上一查也就能知道780,在確定不是硬體故障的前提下,需要打oracle 補丁5496862。問題是在這臺機器上沒有Opatch,首先需要進行安裝。
4、安裝Opath

上傳檔案p2617419_10102_GENERIC.zip(當然,上傳之前肯定要下載,自己搜尋吧,實在找不到,可以聯絡我)
解壓到oracle目錄下:
aix下解壓到$ORACLE_HOME/OPatch下

windows下解壓到oracle/ora92/OPatch

可以看到在OPatch下有兩個opact檔案,其中一個是.bat的,在windows下用。另一個是在aix下用的。

解壓後如果忙著執行是不會有結果返回的。應該先配置環境變數。下面是操作步驟。解壓就不說了。

1). 把$ORACLE_HOME/OPatch,如果$ORACLE_HOME不可用的話就把絕對路徑放在前面。

$ cd home/oracle

---根目錄下的.profile最好不要修改。儘管它也沒有修改的許可權。

$ vi .profile
".profile" 32 lines, 890 characters


PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:$ORACLE_HOME/OPatch:/usr/java14/bin:.

export PATH

if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
ORACLE_HOME=/oracle/product/9.2.0
export ORACLE_HOME
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_SID=hydk
export ORACLE_SID
#ORACLE_TERM=vt100
#export ORACLE_TERM
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
JAVA_HOME=/usr/java14
export JAVA_HOME
CLASSPATH=/oracle/product/9.2.0/jdbc/lib/classes12.zip:/oracle/product/9.2.0/jdbc/lib/nls_charset12.zip
export CLASSPATH
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG
TMPDIR=/tmp
export TMPDIR
LIBPATH=$ORACLE_HOME/lib32:$JAVA_HOME/lib:$ORACLE_HOME/lib
export LIBPATH
#export DBCA_RAW_CONFIG=/oracle/admin/hydk/scripts/hydk_raw.cnf

umask 022
~
~
:q!

說明

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:$ORACLE_HOME/OPatch:/usr/java14/bin:.

可以修改成

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:/oracle/product/9.2.0/OPatch:/usr/java14/bin:.

2). 修改許可權

# ls -al
total 128
drwxr-x--- 5 oracle dba 256 Dec 03 14:00 .
drwxr-xr-x 58 oracle dba 4096 Dec 03 14:00 ..
-rw-r----- 1 oracle dba 2446 Dec 03 14:00 README.txt
drwxr-x--- 2 oracle dba 256 Dec 03 14:00 docs
-rw-r----- 1 oracle dba 17965 Dec 03 14:00 emdpatch.pl
drwxr-x--- 2 oracle dba 256 Dec 03 14:00 jlib
-rw-r----- 1 oracle dba 6143 Dec 03 14:00 opatch
-rw-r----- 1 oracle dba 5269 Dec 03 14:00 opatch.bat
-rw-r----- 1 oracle dba 13703 Dec 03 14:00 opatch.pl
drwxr-x--- 2 oracle dba 4096 Dec 03 14:00 perl_modules
# su root
# whoami
root
# su oracle
$ whoami
oracle
$ cd $ORACLE_HOME/OPatch
$
$ opatch lsinventory -all -detail
ksh: opatch: 0403-006 Execute permission denied.
$ chmod 770 opatch
$ ls -al
total 128
drwxr-x--- 5 oracle dba 256 Dec 03 14:00 .
drwxr-xr-x 58 oracle dba 4096 Dec 03 14:00 ..
-rw-r----- 1 oracle dba 2446 Dec 03 14:00 README.txt
drwxr-x--- 2 oracle dba 256 Dec 03 14:00 docs
-rw-r----- 1 oracle dba 17965 Dec 03 14:00 emdpatch.pl
drwxr-x--- 2 oracle dba 256 Dec 03 14:00 jlib
-rwxrwx--- 1 oracle dba 6143 Dec 03 14:00 opatch
-rw-r----- 1 oracle dba 5269 Dec 03 14:00 opatch.bat
-rw-r----- 1 oracle dba 13703 Dec 03 14:00 opatch.pl
drwxr-x--- 2 oracle dba 4096 Dec 03 14:00 perl_modules

3). 執行。

$ cd $ORACLE_HOME/OPatch
$ opatch lsinventory -all -detail

Oracle Interim Patch Installer version 1.0.0.0.53
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /oracle/product/9.2.0
Location of Oracle Universal Installer components = /oracle/product/9.2.0/oracle.swd.oui
Location of OraInstaller.jar = "/oracle/product/9.2.0/oracle.swd.oui/lib"
Oracle Universal Installer shared library = /oracle/product/9.2.0/oracle.swd.oui/bin/aix/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /oracle
Path to Java = /oracle/product/9.2.0/jdk/jre/bin/java
Log file = /oracle/product/9.2.0/.patch_storage//*.log

Creating log file "/oracle/product/9.2.0/.patch_storage/LsInventory__12-04-2008_15-23-43.log"

ORACLE HOME LOCATION
----------- --------

OUIHome /oracle/product/9.2.0
There is no Interim Patch


OPatch succeeded.

到此,Opatch安裝完成。

5、補丁安裝

1)從SAP Service網站下載Oracle Enterprise Edition Version: 9.2.0.8的補丁包5496862。說實在這上檔案真的不好找,沒有Oracle網站的Metalink帳號,是下載不下來的,發動群眾的力量幫你下載吧!!)

2)將補丁包p5496862_92080_AIX64-5L.zip的解壓後上傳到資料庫主機的/oracle/patch目錄

3)載入patch

詳細步驟如下:
以oracle資料庫使用者執行下面的命令:
$su - oraprd
$cd /oracle/patch
$cd 5496862
$ORACLE_HOME/Opatch/opatch install
開始安裝,接著提示
Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /oracle/PRD/920_64)
Is this system ready for updating?
Please respond Y|N > ”輸入’Y’
此時oracle會開始安裝patch,因為要重新連結lib,所以要花幾分鐘時間,在安裝完畢後會出現“OPatch succeeded”提示。

4)測試

5)如測試有問題解除安裝該patch
$ORACLE_HOME/Opatch/opatch rollback -id 5496862

6、原檔案

(好像找不到可以上傳的地方...................)

從論壇中發現另一種解決辦法:

故障現象

執行SELECT tablespace_name 表空間,sum(blocks*8192/1000000) 剩餘空間M FROM dba_free_space GROUP BY tablespace_name;
報如下錯誤
ORA-01116: error in opening database file 47
ORA-01110: data file 47: '/dev/rpt_itrusca_disk'
ORA-27041: unable to open file
IBM AIX RISC System/6000 Error: 13: Permission denied
Additional information: 3

故障分析
根據Permission denied懷疑是許可權問題,如下查詢得知果然許可權crw-rw----和其他空間不一樣
p550a:/dev#ls -lt|grep rpt_
crw-rw---- 1 root system 80,100 8月09 17時39 rpt_itrusca_disk
crwxrwxrwx 1 oracle dba 80,102 6月25 13時08 rpt_gaza_disk
crwxrwxrwx 1 oracle dba 80,101 6月25 13時08 rpt_silkroad
crwxrwxrwx 1 root system 80, 98 6月25 13時08 rpt_website_disk
crwxrwxrwx 1 oracle dba 80,103 6月25 13時08 rpt_zjport1_disk
crwxrwxrwx 1 oracle dba 80,104 6月25 13時08 rpt_zjport2_disk
crwxrwxrwx 1 oracle dba 80,105 6月25 13時08 rpt_zjport3_disk
crwxrwxrwx 1 oracle dba 80,106 6月25 13時08 rpt_zjport4_disk
crwxrwxrwx 1 oracle dba 80,107 6月25 13時08 rpt_zjport5_disk
crwxrwxrwx 1 oracle dba 80,108 6月25 13時08 rpt_zjport6_disk
crwxrwxrwx 1 oracle dba 80,109 6月25 13時08 rpt_zjport7_disk
crwxrwxrwx 1 oracle dba 80,110 6月25 13時08 rpt_zjport8_disk
crw-rw---- 1 oracle dba 80, 99 6月25 13時08 rpt_zjport_index
crwxrwxrwx 1 root system 80, 97 4月30 17時38 rpt_users_disk
解決
chmod 後故障消失
p550a:/dev#chmod 777 rpt_itrusca_disk
後續規範解決:chown oracle:dba rpt_itrusca_disk

作者及原文:

沒有測試過,不知道是不是真的可以解決!有待查證。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14663377/viewspace-1058393/,如需轉載,請註明出處,否則將追究法律責任。

相關文章