表領域を過去の時点に戻す(TSPITR)
OracleRMANコマンド
-- 1) Is the tablespace self-contained (SQL, on the target DB):
EXEC DBMS_TTS.TRANSPORT_SET_CHECK(ts_list => 'USERS', incl_constraints => TRUE, full_check => TRUE);
SELECT * FROM transport_set_violations;
-- 2) Objects created AFTER the target time that TSPITR will lose:
SELECT owner, name, tablespace_name,
TO_CHAR(creation_time,'YYYY-MM-DD HH24:MI:SS') AS created
FROM ts_pitr_objects_to_be_dropped
WHERE tablespace_name = 'USERS'
AND creation_time > TO_DATE('2026-01-15 03:00:00','YYYY-MM-DD HH24:MI:SS');
# 3) RMAN: with an automatic auxiliary instance
RECOVER TABLESPACE users
UNTIL TIME "TO_DATE('2026-01-15 03:00:00','YYYY-MM-DD HH24:MI:SS')"
AUXILIARY DESTINATION '/u03/aux';
# 4) The tablespace is left OFFLINE: take a backup first, then bring it online
BACKUP TABLESPACE users;
ALTER TABLESPACE users ONLINE;概要
RMANが一時的な補助インスタンスでSYSTEM/UNDO/SYSAUXとターゲット表領域を指定時刻までリカバリし、トランスポータブル表領域でターゲットデータベースに戻す。データベースの他の部分は最新のまま。
使用する場面
誤ったバッチジョブや誤ったDROP/TRUNCATEが1つの表領域(または自己完結した表領域セット)のデータのみを損傷し、フラッシュバックの選択肢では不十分な場合。
注意
その表領域で行われたすべての変更と、ターゲット時刻以降に作成されたすべてのオブジェクトが失われる。表領域セットは自己完結している必要がある(他の表領域にインデックス/表、パーティション、LOB、FKがないこと)。SYSTEM、UNDO、SYSオブジェクトを含む表領域には使用できない。TSPITR後、その表領域の以前のバックアップは使用できないため、直ちにバックアップを取得する。AUXILIARY DESTINATIONにはSYSTEM+SYSAUX+UNDO+ターゲット表領域分の空き領域が必要。