AWS RDS Oracle Data Pump 관련 dmp, log 파일 일괄 삭제

1936 단어 오라클RDSAWS

개요



AWS RDS를 사용하는 경우 OS에 로그인할 수 없습니다. oracle Data Pump와 DBMS_FILE_TRANSFER 사용하면 데이터를 이동할 수 있지만 더 이상 필요하지 않은 DMP 파일, LOG 파일을 삭제하고 싶습니다. 한 디렉토리 아래의 파일을 대량 삭제의 절차를 만들려고했습니다.

절차



예 : DATA_PUMP_DIR 아래의 파일 일괄 삭제
DEClARE
  directory_object  VARCHAR2(100);
BEGIN  
  directory_object:='DATA_PUMP_DIR';
  FOR vRec IN (
    SELECT FILENAME 
      FROM table(RDSADMIN.RDS_FILE_UTIL.LISTDIR(directory_object))
     WHERE TYPE='file' 
     ORDER BY mtime
  ) LOOP
        utl_file.fremove(directory_object,vRec.FILENAME);
  END LOOP;
END;


동작 확인



삭제 전


SELECT FILENAME
     , TYPE
     , FILESIZE
     , MTIME
  FROM table(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DATA_PUMP_DIR')) 
 ORDER BY mtime;



실행


SQL> DEClARE
  2    directory_object  VARCHAR2(100);
  3  BEGIN
  4    directory_object:='DATA_PUMP_DIR';
  5    FOR vRec IN (
  6      SELECT FILENAME
  7        FROM table(RDSADMIN.RDS_FILE_UTIL.LISTDIR(directory_object))
  8       WHERE TYPE='file'
  9       ORDER BY mtime
 10    ) LOOP
 11             utl_file.fremove(directory_object,vRec.FILENAME);
 12    END LOOP;
 13  END;
 14  /

PL/SQLプロシージャが正常に完了しました。

실행 후


SELECT FILENAME
     , TYPE
     , FILESIZE
     , MTIME
  FROM table(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DATA_PUMP_DIR')) 
 ORDER BY mtime;



↑대상 파일 삭제되고 있는 것을 확인할 수 있었습니다.
※폴더내 전 파일 삭제이므로, 사용하는 경우 주의해 주세요.

좋은 웹페이지 즐겨찾기