"FLASHBACK DATABASE LEVEL"의 두 판 사이의 차이
DB CAFE
(→시나리오) |
(→시나리오) |
||
62번째 줄: | 62번째 줄: | ||
=== 시나리오 === | === 시나리오 === | ||
{{틀:고지상자 | {{틀:고지상자 | ||
− | |제목 = | + | |제목 = 순서 |
|내용 =# 테이블 생성 | |내용 =# 테이블 생성 | ||
# 데이터 입력 | # 데이터 입력 |
2021년 5월 28일 (금) 16:56 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 FLASHBACK DATABASE LEVEL[편집]
- 전통적인 백업 방법은 파일을 restore 하고 redo와 Archive File을 이용하여 복구
- Database Level Flashback 은 restore 과정을 생략하고 Flashback log 를 이용하여 복구 하는 것이 차이점
1.1 전통적인 복구 VS DATABASE FLASHBACK[편집]
REDO,ARCHIVE파일 복구 | DATABASE FLASHBACK 복구 |
---|---|
Redo, archive만 사용하는 불완전 복구 | Database flashback(어느정도 redo도 사용) |
복구 시 백업파일을 복원해야한다. | 복원 불필요 |
복구 후 재차 복구 불가능(resetlog때문에) | 복구 후 재차 복구 가능 |
Redo, archive파일사용 | Flashback log파일사용 |
Database archivelog 모드만 가능 | Archivelog mode 이고 flashback database mode |
1.1.1 주의사항[편집]
- flashback log 는 Database snapshot 수준으로 남기므로 많은 용량을 필요로 한다.
- system Tablespace 내의 Table은 Flashback 으로 복구 불가능
- Control file 을 재생성시 Flashback Database 설정 초기화
1.2 DATABASE FLASHBACK 전제조건[편집]
- flashback log 설정 활성화
- archive log mode
- Flashback Database Mode 설정 활성화
1.3 DB 환경 설정[편집]
- Database Level 의 Flashback 을 사용하려면 아래와 같은 설정을 선행 해야 한다.
-- db_flashback_retention_target 분 설정
SQL> alter system set db_flashback_retention_target=30 scope=spfile;
-- 종료 (pfile 을 사용한다면 종료후 pfile 에 db_flashback_retention_target 을 설정한다.)
SQL>SHUTDOWN IMMEDIATE;
-- MOUNT 상태로 시작
SQL> startup mount;
-- archive log 시작
SQL> alter database archivelog;
-- flashback on
SQL> alter database flashback on;
-- database open
SQL> alter database open;
-- flashback 상태 조회
select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
1.4 시나리오[편집]
-- 1.테이블 생성
SQL> create table t ( no number,name varchar2(10)) tablespace example;
Table created.
-- 2. 데이터 입력
SQL> begin
for i in 1..1000 loop
insert into t values ( i , dbms_random.string('A', 9));
end loop;
commit;
end;
/
-- 3. Table Truncate
SQL> truncate table t;
Table truncated.
-- 4. 복구
-- sys 계정 로그인 (database shutdown 하기 위해)
SQL> conn / as sysdba
-- database shutdown
SQL> shutdown immediate;
-- 마운트 상태에서 복구
SQL> startup mount;
-- 시간은 알아서..
SQL>flashback database to timestamp (systimestamp - interval '10' minute);
Flashback complete.
-- database 를 open 한다.
SQL> alter database open resetlogs;