본문 바로가기
ORACLE

ORACLE Flashback Query와 Flashback Table을 활용한 데이터 복구

by samie 2025. 3. 25.
ORACLE Flashback Query와 Flashback Table을 활용한 데이터 복구

ORACLE Flashback Query와 Flashback Table을 활용한 데이터 복구

ORACLE 데이터베이스에서 데이터 손실이나 실수로 삭제된 데이터를 복구하는 것은 매우 중요한 작업입니다. 특히, 실수로 데이터를 삭제하거나 변경했을 때, Flashback QueryFlashback Table 기능을 사용하면 데이터 복구를 간편하게 수행할 수 있습니다. 이번 글에서는 ORACLE의 Flashback 기술을 활용하여 어떻게 데이터를 복구할 수 있는지에 대해 설명하겠습니다.

1. Flashback Query란?

Flashback Query는 ORACLE에서 제공하는 기능으로, 데이터베이스 테이블의 과거 특정 시점의 데이터를 조회할 수 있게 해줍니다. 이 기능을 사용하면 실수로 데이터를 삭제하거나 수정한 경우, 과거 상태의 데이터를 복원하는 데 유용합니다. Flashback Query는 주로 SELECT 문에서 사용되며, 과거의 데이터를 조회하는 데 필요한 시간 여행 기능을 제공합니다.

1.1. Flashback Query 사용법

Flashback Query를 사용하려면, AS OF 절을 사용하여 특정 시점의 데이터를 조회할 수 있습니다. 예를 들어, 특정 시간대의 테이블 데이터를 조회하려면 다음과 같이 작성합니다.


    SELECT * FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2023-03-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
    

위 쿼리는 2023년 3월 1일 오전 10시 시점의 employees 테이블 데이터를 조회하는 예제입니다. TO_TIMESTAMP 함수를 사용하여 특정 시간을 지정합니다.

1.2. Flashback Query 예제


    SELECT * FROM employees AS OF SCN 123456;
    

위 쿼리는 시스템 변경 번호(SCN)를 이용하여 특정 시점의 데이터를 조회하는 예제입니다. SCN을 이용하면 더 정확한 시점으로 데이터를 조회할 수 있습니다.

2. Flashback Table이란?

Flashback Table은 Flashback Query와 유사하지만, 데이터를 복구하는 데 사용됩니다. 이 기능은 실수로 삭제되거나 잘못 수정된 테이블의 상태를 복원하는 데 유용합니다. Flashback Table을 사용하면 이전 시점의 테이블을 그대로 복원할 수 있습니다.

2.1. Flashback Table 사용법

Flashback Table을 사용하려면 FLASHBACK TO 절을 사용하여 특정 시점으로 테이블을 복원합니다. 예를 들어, employees 테이블을 2023년 3월 1일 오전 10시 시점으로 복원하려면 다음과 같이 명령을 실행합니다.


    FLASHBACK TABLE employees TO TIMESTAMP TO_TIMESTAMP('2023-03-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
    

위 명령어는 employees 테이블을 지정된 시점으로 복원하는 명령어입니다. 테이블을 이전 상태로 되돌리는 데 사용됩니다.

2.2. Flashback Table 예제

Flashback Table은 또한 SCN을 사용하여 복원할 수 있습니다. 예를 들어, 다음과 같은 명령어로 특정 SCN 시점으로 테이블을 복원할 수 있습니다.


    FLASHBACK TABLE employees TO SCN 123456;
    

위 명령어는 SCN 번호 123456으로 employees 테이블을 복원하는 예제입니다. SCN을 사용하면 더욱 정확한 시점으로 복원할 수 있습니다.

3. Flashback 기술의 장점

  • 신속한 데이터 복구: Flashback Query와 Flashback Table을 사용하면 실수로 삭제된 데이터나 잘못 수정된 데이터를 빠르게 복구할 수 있습니다.
  • 시간 절약: 데이터베이스를 전체 복원하는 것보다 특정 시점으로 데이터를 되돌리는 것이 훨씬 효율적이고 시간 절약적입니다.
  • 시스템 부하 최소화: Flashback 기능은 데이터베이스의 전체 복구보다 시스템 자원을 덜 사용하므로, 시스템 부하를 최소화할 수 있습니다.

4. Flashback 사용 시 주의사항

  • Flashback 기능은 해당 테이블에 대한 UNDO 데이터를 충분히 보유하고 있어야 작동합니다. 데이터가 오래되거나 UNDO 테이블스페이스가 부족하면 복구가 불가능할 수 있습니다.
  • Flashback 기능을 사용하려면 데이터베이스가 FLASHBACK 기술을 지원하도록 구성되어 있어야 합니다.
  • Flashback Table 명령은 데이터의 복구를 수행하지만, 해당 테이블에 대한 모든 변경 사항이 롤백되므로 주의해서 사용해야 합니다.

5. 결론

ORACLE의 Flashback Query와 Flashback Table은 데이터 복구에 매우 유용한 도구입니다. 실수로 데이터를 삭제하거나 잘못 수정한 경우, 이 기술을 사용하여 빠르고 간편하게 데이터를 복구할 수 있습니다. 데이터베이스 관리자는 이 기능을 적극적으로 활용하여 시스템의 안전성과 데이터의 무결성을 유지할 수 있습니다.