Oracle重建awr步驟

甲骨文技術支援發表於2017-10-28
1.穩妥起見,建議停機重建

2.如果是rac環境需要修改如下引數:

  1. alter system set cluster_database = false scope = spfile;
3.執行如下指令碼開始清除,執行速度很快,因為都是drop,如果遇到某個表不存在的報錯,無須理會

  1. @?/rdbms/admin/catnoawr.sql
4.執行指令碼執行重建

  1. @?/rdbms/admin/catawrtb.sql
5.執行指令碼編譯無效物件

  1. @?/rdbms/admin/utlrp.sql
6. 11g執行如下指令碼

  1. @?/rdbms/admin/execsvrm.sql
執行這個指令碼的時候,遇到如下報錯:

  1. BEGIN
  2. *
  3. ERROR at line 1:
  4. ORA-04068: existing state of packages has been discarded
  5. ORA-04061: existing state of package "SYS.DBMS_SWRF_INTERNAL" has been
  6. invalidated
  7. ORA-04065: not executed, altered or dropped package "SYS.DBMS_SWRF_INTERNAL"
  8. ORA-06508: PL/SQL: could not find program unit being called:
  9. "SYS.DBMS_SWRF_INTERNAL"
  10. ORA-06512: at line 3
解決辦法是對包重新編譯:

  1. alter package dbms_swrf_internal compile;
  2. alter package dbms_swrf_internal compile body;
7.重新執行第六步

8.生成一個報告試試

  1. exec dbms_workload_repository.create_snapshot;
遇到如下報錯:

  1. SQL> exec dbms_workload_repository.create_snapshot;
  2. BEGIN dbms_workload_repository.create_snapshot; END;

  3. *
  4. ERROR at line 1:
  5. ORA-13518: Invalid database id (819500514)
  6. ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 99
  7. ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 122
  8. ORA-06512: at line 1
在MOS上找到一篇文章說了這個問題


  1. ORA-13518 : 'Invalid Database Id' On Call to DBMS_WORKLOAD_REPOSITORY Package [ID 984447.1]


    Changes
     Recently AWR was recreated using catnoawr.sql and catawrtb.sql. 
    Cause
     When a function / procedure is called from DBMS_WORKLOAD_REPOSITORY package,  it refers table WRM$_DATABASE_INSTANCE to get dbid information.
     As the AWR repositories has been recreated , the table doesn't not have any data present in it. 
     
    SQL> select * from WRM$_DATABASE_INSTANCE ;
     no rows selected


    Solution
    The WRM$_DATABASE_INSTANCE gets populated with instance information when the instance is rebooted. 
    So, If you have recreated AWR using catnoawr.sql , catawrtb.sql , then you need to bounce the Instance . 
    On restart , the table will be populated with the requisite information. 
    Hence , better option for recreating AWR is to use startup restrict method. 
    After the recreation activity is completed , shutdown the database and open it normally.


9.重啟後問題解決

10.修改rac 相關引數

  1. alter system set cluster_database = true scope = spfile;
11.生成awr報告

  1. @$ORACLE_HOME/rdbms/admin/awrrpt.sql




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

相關文章