oracle 10g R2 new feature를 보다 보니까.. (나온지가 언젠데.!!)
"restore point"라는 개념이 나오더군요.. (아래..)
테스트 함 해봤습니다.
원문 : Restore Point in Flashback Database
SQL의 savepoint라는 개념을 기억하십니까? 트랜잭션에서 savepoint를 생성한 후, 데이터를 일부 수정한 다음, 다시 savepoint를 생성하는 식으로 작업합니다. 그리고 변경된 내용을 다시 되돌리고 싶다면, 해당되는 savepoint로 롤백하면 됩니다.
Oracle Database 10g의 Flashback Database는 데이터베이스를 과거의 특정 시점으로 되돌리는 기능을 제공합니다. 그렇다면 여기에도 savepoint와 유사한 개념을 도입하면 유용하지 않을까요? 시간을 기준으로 하지 않고, 명명된 시점(named point)으로 되돌릴 수 있게 하면 좋지 않을까요?
Oracle Database 10g Release 2에 추가된 “restore point”라는 기능이 바로 이러한 역할을 담당합니다. 그 작동 원리가 다음과 같습니다.
위의 내용은 OTN의 Oracle Database 10g Release 2의 신기능에서 가져왔습니다.
위의 내용은 OTN의 Oracle Database 10g Release 2의 신기능에서 가져왔습니다.
1. RESTORE POINT 생성.
SQL> create restore point before_fb_test guarantee flashback database;
ERROR at line 1:
ORA-38784: Cannot create restore point 'BEFORE_FB_TEST'.
ORA-38786: Flash recovery area is not enabled.
SQL> alter system set db_recovery_file_dest='/..' scope=both;
SQL> alter system set log_archive_dest_1='' scope=spfile;
SQL> shutdown immediate;
SQL> startup
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
:
SQL> create restore point before_fb_test guarantee flashback database;
ERROR at line 1:
ORA-38784: Cannot create restore point 'BEFORE_FB_TEST'.
ORA-38787: Creating the first guaranteed restore point requires mount mode when flashback database is off.
ORA-38787: Creating the first guaranteed restore point requires mount mode when flashback database is off.
Cause: While flashback database is not on, an attempt was made to create the first guaranteed restore point while the database is open.
Action: Mount the database and retry.
SQL> shutdown immediate;
SQL> STARTUP MOUNT
SQL> ALTER DATABASE FLASHBACK ON;
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38708: Not enough space for first flashback database log file
SQL> alter system set db_recovery_file_dest_size=5G scope=both;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
( flash backup area에 flb라는 확장자로 파일이 하나 생기는 군요.)
SQL> create restore point before_fb_test guarantee flashback database;
2. 테스트
SQL> delete from scott.emp;
SQL> commit;
* flash backup area에 flb file이 추가로 1개 더 생기는 ..
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> FLASHBACK DATABASE TO RESTORE POINT before_update_of_emp;
SQL> ALTER DATABASE OPEN RESETLOGS;
기본 설정만 해놓으면 잘 되는 거 같네요..
'Oracle Database' 카테고리의 다른 글
Oracle datafile 생성 이후 모든 archive log는 있으나 datafile의 backup이 없는 경우 recovery (0) | 2010.07.30 |
---|---|
간단히 테스트해본 oracle 11g new feature invisible index (0) | 2010.07.19 |
Oracle Join 종류: CROSS, INNER, OUTER, NATURAL,EQUI, SELF join (0) | 2010.07.13 |
오라클 옵티마이져의 비용 산정 모듈의 세가지 예상치 (Selectivity, cardinality, cost) (0) | 2010.07.07 |
oracle oradebug를 이용해 삭제된 trace file을 다시 만드는 방법 (0) | 2010.07.06 |