테이블 단위 복구

FLASHBACK TABLE은 같은 명령군이지만,
삭제 복원과 시점 복원의 시작 조건이 다릅니다.

핵심은 무엇을 되돌리는지보다 어떤 상태에서 되돌릴 수 있는지입니다. DROP은 휴지통이 기준이고, 시점 복원은 ROW MOVEMENT를 먼저 허용해야 합니다.

공통 읽는 법
대상

DB 전체가 아니라 특정 테이블만 되돌립니다.

차이점

삭제 복원은 휴지통, 시점 복원은 지정 시각을 기준으로 동작합니다.

운영 의미

큰 복구 없이 필요한 테이블만 바로 복원할 수 있어 장애 범위를 줄입니다.

경로 1

실수로 DROP했다면
휴지통에서 다시 꺼낸다

삭제 직후 테이블 정의와 데이터를 되살리는 흐름입니다. 이름 충돌이 있으면 다른 이름으로 바로 복원할 수 있습니다.

1
휴지통에 남아 있는지 확인

DROP된 테이블이 재활용 영역에 있어야 복구할 수 있습니다.

2
TO BEFORE DROP 실행
FLASHBACK TABLE users TO BEFORE DROP;
3
필요하면 다른 이름으로 복원
FLASHBACK TABLE users
TO BEFORE DROP RENAME TO users_restored;
경로 2

테이블을 과거 시각으로
되돌리려면 이동을 허용한다

현재 존재하는 테이블을 특정 시점 상태로 후퇴시키는 흐름입니다. 행 위치가 바뀔 수 있으므로 선행 설정이 필요합니다.

1
ROW MOVEMENT 활성화
ALTER TABLE orders
ENABLE ROW MOVEMENT;
2
되돌릴 시각 지정
FLASHBACK TABLE orders TO TIMESTAMP
  TO_TIMESTAMP('2024-01-15 14:30:00',
  'YYYY-MM-DD HH24:MI:SS');
결과적으로 orders 테이블만 해당 시점 상태로 복구되고, 다른 테이블이나 DB 전체는 그대로 유지됩니다.