ITPub博客

首页 > 数据库 > Oracle > Oracle重建awr步骤

Oracle重建awr步骤

原创 Oracle 作者:甲骨文技术支持 时间:2017-10-28 11:35:11 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/20893244/viewspace-2146541/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
2009年获得Oracle OCM认证,ITPUB社区OCM联盟成员,熟悉Oracle,mysql,Python,Zabbix等。

注册时间:2016-12-31

  • 博文量
    143
  • 访问量
    570498