千家信息网

Oracle重建awr步骤

发表于:2024-10-25 作者:千家信息网编辑
千家信息网最后更新 2024年10月25日,1.稳妥起见,建议停机重建2.如果是rac环境需要修改如下参数:alter system set cluster_database = false scope = spfile;3.执行如下脚本开始清
千家信息网最后更新 2024年10月25日Oracle重建awr步骤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 =truescope= spfile;
11.生成awr报告

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




0