Enhance MARS-835 rollback process with new scripts for file registration deletion and manual cleanup, and add process tracking identifier for exports
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
-- MARS-835: Manual cleanup of Parquet files only (after bugfix)
|
||||
-- Description: Removes orphaned Parquet files from ARCHIVE bucket
|
||||
-- Usage: Execute as CT_MRDS user
|
||||
|
||||
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||
|
||||
DECLARE
|
||||
vCredentialName VARCHAR2(100) := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||
vHistBucketUri VARCHAR2(200) := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||
vFileCount NUMBER := 0;
|
||||
vStartTime TIMESTAMP := SYSTIMESTAMP;
|
||||
vElapsedTime INTERVAL DAY TO SECOND;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.PUT_LINE('==========================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('MANUAL CLEANUP: Parquet files only');
|
||||
DBMS_OUTPUT.PUT_LINE('==========================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('Start Time: ' || TO_CHAR(vStartTime, 'YYYY-MM-DD HH24:MI:SS'));
|
||||
DBMS_OUTPUT.PUT_LINE('Credential: ' || vCredentialName);
|
||||
DBMS_OUTPUT.PUT_LINE('Archive Bucket: ' || vHistBucketUri);
|
||||
DBMS_OUTPUT.PUT_LINE('----------------------------------------------------------');
|
||||
|
||||
-- Delete CSDB_DEBT Parquet files
|
||||
DBMS_OUTPUT.PUT_LINE(chr(10) || 'Deleting CSDB_DEBT Parquet files...');
|
||||
vFileCount := 0;
|
||||
|
||||
FOR rec IN (
|
||||
SELECT object_name
|
||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
||||
credential_name => vCredentialName,
|
||||
location_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT/'
|
||||
))
|
||||
WHERE object_name NOT LIKE '%/' -- Exclude directories
|
||||
) LOOP
|
||||
BEGIN
|
||||
DBMS_CLOUD.DELETE_OBJECT(
|
||||
credential_name => vCredentialName,
|
||||
object_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT/' || rec.object_name
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||
vFileCount := vFileCount + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
IF SQLCODE = -20404 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' ERROR: ' || SQLERRM || ' - ' || rec.object_name);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('CSDB_DEBT Parquet files deleted: ' || vFileCount);
|
||||
|
||||
-- Delete CSDB_DEBT_DAILY Parquet files
|
||||
DBMS_OUTPUT.PUT_LINE(chr(10) || 'Deleting CSDB_DEBT_DAILY Parquet files...');
|
||||
vFileCount := 0;
|
||||
|
||||
FOR rec IN (
|
||||
SELECT object_name
|
||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
||||
credential_name => vCredentialName,
|
||||
location_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT_DAILY/'
|
||||
))
|
||||
WHERE object_name NOT LIKE '%/' -- Exclude directories
|
||||
) LOOP
|
||||
BEGIN
|
||||
DBMS_CLOUD.DELETE_OBJECT(
|
||||
credential_name => vCredentialName,
|
||||
object_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT_DAILY/' || rec.object_name
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||
vFileCount := vFileCount + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
IF SQLCODE = -20404 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE(' ERROR: ' || SQLERRM || ' - ' || rec.object_name);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('CSDB_DEBT_DAILY Parquet files deleted: ' || vFileCount);
|
||||
|
||||
-- Final summary
|
||||
vElapsedTime := SYSTIMESTAMP - vStartTime;
|
||||
DBMS_OUTPUT.PUT_LINE('----------------------------------------------------------');
|
||||
DBMS_OUTPUT.PUT_LINE('End Time: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS'));
|
||||
DBMS_OUTPUT.PUT_LINE('Elapsed Time: ' || vElapsedTime);
|
||||
DBMS_OUTPUT.PUT_LINE('==========================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('MANUAL CLEANUP COMPLETED');
|
||||
DBMS_OUTPUT.PUT_LINE('==========================================================');
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user