Drop old DB ID's from a clone

Run the following SQL to identify old DBIDs.

SELECT DISTINCT dbid
FROM DBA_FEATURE_USAGE_STATISTICS
WHERE dbid NOT IN (SELECT dbid FROM v$database);

If the query above returns a record or more.  Run the following block of PL/SQL

DECLARE
current_dbid NUMBER;
CURSOR old_dbids IS
SELECT DISTINCT dbid
FROM DBA_FEATURE_USAGE_STATISTICS
WHERE dbid NOT IN (SELECT dbid FROM v$database);
BEGIN
FOR old_dbid IN old_dbids LOOP
— Remove old Workload Repository data
DBMS_SWRF_INTERNAL.UNREGISTER_DATABASE(old_dbid.dbid);
END LOOP;
SELECT dbid INTO current_dbid FROM v$database;
DELETE FROM wri$_dbu_usage_sample WHERE dbid != current_dbid;
DELETE FROM wri$_dbu_feature_usage WHERE dbid != current_dbid;
DELETE FROM wri$_dbu_high_water_mark WHERE dbid != current_dbid;
DELETE FROM wri$_dbu_cpu_usage WHERE dbid != current_dbid;
DELETE FROM wri$_dbu_cpu_usage_sample WHERE dbid != current_dbid;
COMMIT;
END;
/

Leave a Comment

Scroll to Top