oracle問題解決辦法(轉)

1. 先在google, 論壇,metalink, online document 裏搜索.


    在這裏提供Oracle 一些常見的連接地址,包括Oracle 下載地址,Oracle 對個人用是免費的。 所以你可以放心的從官網下,而且我也建議從官網下。 註冊一個帳號就可以了。 免費註冊的。

  Oracle 9i 在線文檔: http://download.oracle.com/docs/cd/B10501_01/index.htm
 Oracle 10g 在線文檔: http://www.oracle.com/pls/db102/homepage
  Oracle 11g 在線文檔: http://www.oracle.com/pls/db111/portal.all_books
  Oracle 10g/11g 下載地址: http://www.oracle.com/technology/software/products/database/index.html
 
  在提問前,應該先自己嘗試去解決問題。  一些功能和語法,可以直接在online document中查到。    在alert log裏發現了報錯信息或者在運行時發現了報錯信息,那麼,最簡單的做法就是將錯誤信息或者錯誤號先在google/metalink/論壇裏搜索一下。  Oracle 的錯誤都是以ORA-xxx 形式的,可以直接在google 搜索這些關鍵字。 說不定就有解決方法。 還可以功過這個網站進行查詢相關的錯誤解釋和解決方法: 
Http://ora-0600.ora-code.com
http://ora-00067.ora-code.com/
把這裏的ora-xxx 換成你自己的錯誤代碼就可以了。

2. 寫清楚log, 報錯信息,DB version , OS 


    描述不清提問的大忌之一,如“我的SQL出錯了”,“我的什麼操作,爲什麼不成功”,"跪求.." , 這些是最典型的錯誤提問方式。原始的信息是最重要的…
    寫清楚DB的version以及OS, 因爲在不同的 DB version , OS之間,很多特性都不一樣。
    可以從select * from v$version 查看到DB version。還有就是出現錯誤前的一些操作步驟。比如升級。  
    對於unix或者linux平臺可以通過uname -a 命令查看相關信息。
    
3.  實例方面的問題,請貼出alertlog


   常說要養成看alert log的習慣,最好是條件反射,數據庫出現問題就去看alert log, 這裏面有很多非常有用的信息。  alert log的位置,在$ORACLE_BASE/admin/$ORACLE_SID/bdump下。確切的說應該是在 db parameter background_dump_dest定義的目錄底下。如果沒有定義background_dump_dest,那麼,會在$ORACLE_HOME/rdbms/log底下。  如果在alert log裏面提到了TRACE FILE, 最好一起貼出相關的TRACE FILE。    

4.  Network的問題


   和網絡相關的元素就那麼幾個,一個是自身網絡的,而是相關參數。 這裏面設計到的參數文件包括tnsnames.ora 和 listener.ora。 這2個配置文件通常都在 $ORACLE_HOME/network/admin底下,如果定義了環境變量TNS_ADMIN,那麼配置文件在$TNS_ADMIN底下。
   我們可以手動的修改這些文件,當然不推薦這麼做。 因爲tnsnames.ora 這個文件比較敏感,就是多個空格都會報錯,但是對於空格,我們一般是不容易發現的。 最好的方法是通過net manager 工具來配置,配完後還可以測試一下。 在寫地址的時候,儘量寫IP地址,不要寫機器名。
關於net manager 工具的使用,參考blog:
Oracle 數據庫監聽配置
http://blog.csdn.net/tianlesoftware/archive/2009/11/25/4861572.aspx

  還有,在連接其他數據庫之前,要確保相應的監聽是開啓的。 如果說沒有開啓,是肯定連不上的。
命令:lsnrctl start/stop/status
如果listener不是默認的,還需要加上listener名:lsnrctl start/stop/status listener_name


5. SQL 相關的內容

    SQL 的問題,基本語法有關係,而且它報錯也很明顯,可以直接google或者查看在線文檔。 如果還是不能解決,在發帖的時候,請把相關的表結構和測試數據的創建SQL,index情況,Table的record數,table是否analyze等信息一併貼出來。 這樣也方便大家一起查看。

    還有對於SQL 性能的,最好一併貼上執行計劃。 這樣一看也就明瞭。 
    可以在sqlplus 開啓autotrace, 在執行命令後也能看到相關的執行計劃:
SQL>set autot on;
    或者通過如下SQL 語句:
(1)SQL>EXPLAIN PLAN FOR 你的sql語句;
             如 SQL>EXPLAIN PLAN FOR SELECT * FROM EMP WHERE EMPNO=7369;
       (2)SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

6.  數據總體性能問題


    關於這類問題,先對數據庫的整體狀態做個查看。9i可以通過statspack, 10g以後可以用AWR,ASH。 
  Oracle AWR 介紹
  http://blog.csdn.net/tianlesoftware/archive/2009/10/17/4682300.aspx
 statspack安裝使用 和 report 分析
  http://blog.csdn.net/tianlesoftware/archive/2009/10/17/4682329.aspx

 這些也可以用Toad 等工具,在界面上進行操作。 
  
     還有就是留意數據庫服務器的CPU 和內存使用情況。 Linux 下可以用vmstat命令或者top命令
Unix vmstat 命令
http://blog.csdn.net/tianlesoftware/archive/2010/04/09/5464408.aspx


發佈了39 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章