1. 今天安装Statspack后,运行报以下错误,处理办法是将STATS$SNAPSHOT主键和外键都删掉,然后悲剧的是报告一直生成不了。
SQL> execute statspack.snap;
begin statspack.snap; end;
ORA-04063: package body "SYS.DBMS_SHARED_POOL" 有错误
ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_SHARED_POOL" 的程序单元
ORA-06512: 在 "PERFSTAT.STATSPACK", line 5370
ORA-06512: 在 line 2
SQL> execute statspack.snap;
begin statspack.snap; end;
ORA-02291: 违反完整约束条件 (PERFSTAT.STATS$SNAPSHOT_FK) - 未找到父项关键字
ORA-06512: 在 "PERFSTAT.STATSPACK", line 4239
ORA-06512: 在 "PERFSTAT.STATSPACK", line 104
ORA-06512: 在 line 2
2. 找到原因是DBMS_SHARED_POOL编译不通过。
ORA-04063: package body "SYS.DBMS_SHARED_POOL" 有错误
ORA-06508: PL/SQL: 无法找到正在调用 : "SYS.DBMS_SHARED_POOL" 的程序单元
ORA-06512: 在 "PERFSTAT.STATSPACK", line 5370
ORA-06512: 在 line 2
3. 继续找原因是@spcreate.sql在pl/sql中执行的,应该要做cmd中执行。
4. 生成的报告在D:\oracle\product\10.2.0\db_1\BIN下,可以指定报告路径如 D:/gg1
Statspack生成报告步骤:
SQL> @D:\oracle\RDBMS\ADMIN\spcreate.sql
SQL> execute statspack.snap
SQL> execute statspack.snap
SQL> @D:\oracle\RDBMS\ADMIN\spreport.sql
SQL> @D:\oracle\RDBMS\ADMIN\spdrop.sql