LoginSignup
3
4

More than 5 years have passed since last update.

AWS RDS Oracle Data Pump関連dmp , logファイル一括削除

Last updated at Posted at 2018-05-12

概要

AWSのRDS利用している場合、OSにログインできないです。oracle のData Pump とDBMS_FILE_TRANSFER 使えばデータの移動できますが、不要になったDMPファイル、LOGファイルを削除したいです。あるdirectoryの下のファイルを一括削除のprocedureを作成してみました。

Procedure

例: 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;

image.png

実行

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;

image.png

↑対象ファイル削除されていること確認できました。
※フォルダー内全ファイル削除なので、使う場合ご注意ください。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4