MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
SQL> select dbid, retention fromdba_hist_wr_control;
DBID RETENTION
-------------------------------------------------------------------------------
879543530 +00008 00:00:00.0
SQL>
dbms_swrf_internal.unregister_database 会把所有的快照直接干掉,与我们上节中的删除是不同的效果。
2.2.2.2 删除本机的AWR
我们之前把快照清空了,所以没有结果:
SQL> select * from dba_hist_snapshotwhere dbid = 879543530;
no rows selected
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> executedbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
--现在又有快照了:
SQL> select min(snap_id), max(snap_id)from dba_hist_snapshot where dbid = 879543530;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
177 180
--删除快照:
SQL> exec dbms_swrf_internal.unregister_database(879543530)
BEGINdbms_swrf_internal.unregister_database(879543530); END;
*
ERROR at line 1:
ORA-13521: Unregister operation on localDatabase id (879543530) not allowed
ORA-06512: at"SYS.DBMS_SWRF_INTERNAL", line 99
ORA-06512: at line 1
这里直接提示,dbms_swrf_internal.unregister_database不能对本地的数据库使用。所以如果本地的数据库,就只能使用dbms_workload_repository包了。
2.2.3 小结
dbms_workload_repository:
可以删除本地和其他数据库的快照,可以选择不同的快照来进行删除。
dbms_swrf_internal:
只能对其他数据库的快照来进行操作,会把整个快照unregister掉。