成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 南昌OA系統(tǒng) > 南昌OA信息化
提問的智慧 for Oracle
前一陣寫了一個(gè)簡版的“提問的智慧Oracle版”,總結(jié)了一下Oracle相關(guān)提問的智慧及技巧。最近發(fā)現(xiàn)寫的可能過于簡單了,于是將其稍為展開,希望更容易看懂。
0. 嘗試在google,論壇,metalink,online document里搜索。
quote:
--------------------------------------------------------------------------------

google: http://www.google.com
metalink: http://metalink.oracle.com ( http://www.itpub.net/53151.html )
論壇搜索: http://www.itpub.net/search.php?s=
online document: http://tahiti.oracle.com
在提問前,應(yīng)該先自己嘗試去解決問題。
對Oracle的某個(gè)組件或某個(gè)概念不清除時(shí),讀一讀 online document是最簡單有效的辦法。
另外,很多功能實(shí)現(xiàn),語句語法的問題也可以輕易的在 online document找到答案。
在alert log里發(fā)現(xiàn)了報(bào)錯(cuò)信息或者在運(yùn)行時(shí)發(fā)現(xiàn)了報(bào)錯(cuò)信息,那么,最簡單的做法就是將錯(cuò)誤信息或者錯(cuò)誤號先在google/metalink/論壇里搜索一下。
這里特別提一下Ora-7445/ora-600的錯(cuò)誤,是不能單用錯(cuò)誤號來搜索的,必須加上后面的相應(yīng)信息才能找到合適的答案。
ORA-600時(shí),加上后面的argument,Ora-7445時(shí),還需要打開相應(yīng)的TRACE文件,并截取其中有意義的部分進(jìn)行搜索。
--------------------------------------------------------------------------------
1. 寫清楚你的執(zhí)行l(wèi)og,報(bào)錯(cuò)信息,寫清楚DB version , OS
quote:
--------------------------------------------------------------------------------
提問的大忌之一,就是語焉不詳,“救命啊,我的DB起不來了”,“我的SQL出錯(cuò)了”,“我的Restore了database,為什么不成功”就是其中最典型的錯(cuò)誤提問方式。記住,原始的信息是最重要的……,同時(shí),最好能把你的原始信息用[ . code ] 或者 [ . php ]給包起來……
另一個(gè)要點(diǎn),就是要寫清楚DB的version以及OS, 因?yàn)樵诓煌?DB version , OS之間,很多特性都不一樣。
DB version,最簡單的獲得方式就是 select * from v$version, 或者單單運(yùn)行sqlplus也可以基本知道Oracle的版本信息。
再深入點(diǎn)來說,除了db version的信息,db component的信息可能的情況下也應(yīng)該提供,比如說,你啟用了Partition,或者Dataguard/Jserver等。
或許還應(yīng)該包括DB升級的一些信息,比如說,你的DB是從8.1.7.4升級為9.2.0.5的……
OS,對于unix或者linux來說,uname -a 基本就可以了。Windows的話,不用說了吧……
--------------------------------------------------------------------------------
2. Instance 方面的問題,請貼出alertlog
quote:
--------------------------------------------------------------------------------

一般來說,如果是instance出了問題,那么alert log會有相應(yīng)的記錄。同時(shí),alert log里也記錄的not default的db parameter,也可以或多或少幫助看出一些問題
alert log的位置,多數(shù)情況下是$ORACLE_BASE/admin/$ORACLE_SID/bdump底下,當(dāng)然,確切的說應(yīng)該是在 db parameter background_dump_dest定義的目錄底下。如果沒有定義background_dump_dest,那么,會在$ORACLE_HOME/rdbms/log底下。
如果在alert log里面提到了TRACE FILE,可能還需要上傳相應(yīng)的TRACE FILE。
--------------------------------------------------------------------------------
3. Network的問題,貼出DB server 的 listener.ora , sqlnet.ora 并運(yùn)行l(wèi)snrctl status , 貼出client 的 tnsnames.ora , sqlnet.ora ,并運(yùn)行tnsping
quote:
--------------------------------------------------------------------------------
幾個(gè)配置文件通常都在 $ORACLE_HOME/network/admin底下,當(dāng)然,如果定義了環(huán)境變量TNS_ADMIN,那么配置文件在$TNS_ADMIN底下。
另外,有可能你的listener不使用默認(rèn)名字,那么,在運(yùn)行 lsnrctl status 時(shí),還需要加上LISTENER的名字: lsnrctl status
--------------------------------------------------------------------------------
4. DB總體性能問題,請于peak time 做 statspack,并上傳statspack report。同時(shí)附上CPU/MEM配置,以及 CPU IDLE/free menory 的情況
quote:
--------------------------------------------------------------------------------
關(guān)于statspack,請參考eygle系列文章( http://www.eygle.com/statspack/statspack_list.htm ) 如何獲得CPU Usage或者Free Mem的信息. unix 下通??梢酝ㄟ^vmstat來獲得,具體到各OS,呵呵,自己找吧……
--------------------------------------------------------------------------------
5. SQL性能問題,列出當(dāng)前SQL,以及執(zhí)行計(jì)劃。同時(shí)應(yīng)提供表結(jié)構(gòu),index情況,Table的record數(shù)。CBO/RBO,table是否analyze等信息。

quote:
--------------------------------------------------------------------------------
執(zhí)行計(jì)劃的獲取: 通過 EXPLAIN PLAN FOR
當(dāng)然,也可以通過第三方軟件獲得
--------------------------------------------------------------------------------
6. 確保你的問題是Oracle相關(guān)。
quote:
--------------------------------------------------------------------------------
諸如"在SOLARIS的/PROC下面怎么看CPU的信息? ","SUSE8怎么啟動TELNET ","windows2000的本地屬性被禁用了咋辦? ","eclipse中BIRT插件的用法 "的問題,請到相應(yīng)板塊或論壇中提問
(itpub)

