2015. 12. 3. 01:35 오라클
oracle flashback 설정
- flashback database 여부 확인
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
-flashback 영역에 저장되는 화일
Current control file
Online redo logs
Archived redo logs
Flashback logs
Control file autobackups
Datafile 과 control file copies
Backup pieces
Foreign archived redo log ( LogMiner세션을 위해 logical standby 데이터베이스에 의해 수신된 archived redo log.)
LOG_ARCHIVE_DEST 와 LOG_ARCHIVE_DUPLEX_DEST 파라미터를 리두 로그 아카이브 위치로 지정하는 데 사용할 수는 없다. 플래쉬 복구 영역을 구성하는 경우라면 언제나 LOG_ARCHIVE_DEST_n 을 사용해야 한다.
만약 복구 영역을 생성하고 다른 로컬 아카이빙 위치를 설정하지 않았다면, LOG_ARCHIVE_DEST_10 는 묵시적으로 USE_DB_RECOVERY_FILE_DEST 로 설정된다.
- flashback database off
SQL> ALTER DATABASE FLASHBACK OFF;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='';
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE='';
- flashback database on
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;
- 위치지정 또는 변경
SQL> alter system set db_recovery_file_dest='+<FRA Diskgroup>' SCOPE=spfile;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+disk1' SCOPE=BOTH SID='*';
SQL> alter system set db_recovery_file_dest_size=100G SCOPE=spfile;
아카이브로그 백업을 위해 바람직한 방법
SQL> alter system set log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST' scope=both;
- flashback log의 크기확인(archive & rman backup 제외)
SQL> select estimated_flashback_size/1024/1024/1024 "EST_FLASHBACK_SIZE(GB)" from v$flashback_database_log;
- fast recovery area 사용량 확인
SQL> select * from v$flash_recoveyr_area_usage;
SQL> Select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable,number_of_files as "number" from v$flash_recovery_area_usage;
SQL> select name, space_limit as Total_size ,space_used as Used,SPACE_RECLAIMABLE as reclaimable ,NUMBER_OF_FILES as "number" from V$RECOVERY_FILE_DEST;
버전별로 view가 틀려서 헷갈릴수 있다.
From >= 10gR2 and <= 11gR1: V$FLASH_RECOVERY_AREA_USAGE
From >= 11gR2 : V$RECOVERY_AREA_USAGE
- reclaimable space 확인
SELECT substr(name, 1, 30) name,
space_limit AS quota,
space_used AS used,
space_reclaimable AS reclaimable,
number_of_files AS files
FROM V$RECOVERY_FILE_DEST ;
- FRA가 Full 났을시 조치 정리
1. DB_RECOVERY_FILE_DEST_SIZE 의 크기 확장
SQL> alter system set db_recovery_file_dest_size=xG SCOPE=BOTH;
2. rman 으로 영역을 백업
RMAN>BACKUP RECOVERY AREA;
3. OS에서 지웠다면 RMAN에서 DELETE 수행
RMAN>CROSSCHECK BACKUP;
RMAN>CROSSCHECK ARCHIVELOG ALL;
RMAN>Delete expired backup;
RMAN>Delete expired archivelog all;
RMAN>Delete force obsolete;
4. 복원지점이 필요없다면 삭제
SQL> select * from v$restore_point;
SQL>Drop restore point <restore_point_name>;
5. 충분한 용량을 가지고 있지 않다면
SQL>Alter database FLASHBACK OFF;
6. 백업 retenton 정책을 변경
RMAN>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;