데이터 보존
지정한 데이터 보존 기간이 지나면 데이터를 자동으로 삭제하는 기능입니다.
보존 기간과 삭제 주기를 정의한 보존 정책을 생성한 후 ALTER 구문을 통해 테이블에 적용하거나 해제할 수 있습니다.
Create Retention Policy
보존 기간과 삭제 주기를 지정해 RETENTION POLICY를 생성합니다.
보존 기간은 월 또는 일 단위로 지정하고, 삭제 주기는 일 또는 시간 단위로 지정할 수 있습니다.
정책 정보는 M$RETENTION 테이블 조회로 확인할 수 있습니다.
Syntax:
CREATE RETENTION policy_name DURATION duration {MONTH|DAY} INTERVAL interval {DAY|HOUR}
- policy_name : 생성할 정책 이름
- duration : 삭제 대상 데이터의 보존 기간(시스템 시간 기준)
- interval : 보존 기간 점검 주기
Example:
-- 하루 이상 지난 데이터는 삭제하고, 갱신 주기는 1시간으로 설정합니다.
Mach> CREATE RETENTION policy_1d_1h DURATION 1 DAY INTERVAL 1 HOUR;
Executed successfully.
-- 한 달 이상 지난 데이터는 삭제하고, 갱신 주기는 3일로 설정합니다.
Mach> CREATE RETENTION policy_1m_3d DURATION 1 MONTH INTERVAL 3 DAY;
Executed successfully.
Mach> SELECT * FROM M$RETENTION;
USER_ID POLICY_NAME DURATION INTERVAL
-----------------------------------------------------------------------------------------------------
1 POLICY_1D_1H 86400 3600
1 POLICY_1M_3D 2592000 259200
[2] row(s) selected.
Apply Retention Policy
이전에 생성한 RETENTION POLICY를 테이블에 적용합니다.
적용 이후에는 삭제 주기마다 보존 기간을 점검하고 조건에 부합하는 데이터를 삭제합니다.
정책이 적용된 테이블은 V$RETENTION_JOB 테이블 조회로 확인할 수 있습니다.
Syntax:
ALTER TABLE table_name ADD RETENTION policy_name
- table_name : 정책을 적용할 테이블 이름
- policy_name : 적용할 정책 이름
Example:
Mach> CREATE TAG TABLE tag (name VARCHAR(20) PRIMARY KEY, time DATETIME BASETIME, value DOUBLE SUMMARIZED);
Executed successfully.
Mach> ALTER TABLE tag ADD RETENTION policy_1d_1h;
Altered successfully.
Mach> SELECT * FROM V$RETENTION_JOB;
USER_NAME TABLE_NAME
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
POLICY_NAME STATE LAST_DELETED_TIME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYS TAG
POLICY_1D_1H WAITING NULL
[1] row(s) selected.
Release Retention Policy
테이블에 적용한 RETENTION POLICY를 해제합니다.
해제 이후에는 데이터가 삭제되지 않고 영구 보관됩니다.
Syntax:
ALTER TABLE table_name DROP RETENTION;
- table_name : 보존 정책을 해제할 테이블 이름
Example:
Mach> ALTER TABLE tag DROP RETENTION;
Altered successfully.
Drop Retention Policy
RETENTION POLICY가 적용 중인 테이블이 존재하면 해당 정책을 삭제할 수 없습니다.
정책을 삭제하려면 먼저 적용된 테이블에서 보존 정책을 해제해야 합니다.
Syntax:
DROP RETENTION policy_name
- policy_name : 삭제할 정책 이름
Example:
Mach> ALTER TABLE tag ADD RETENTION policy_1d_1h;
Altered successfully.
-- ERROR
Mach> DROP RETENTION policy_1d_1h;
[ERR-02702: Policy (POLICY_1D_1H) is in use.]
Mach> ALTER TABLE tag DROP RETENTION;
Altered successfully.
-- SUCCESS
Mach> DROP RETENTION policy_1d_1h;
Dropped successfully.
최근 업데이트