- 손상된 데이터 블록이 발생하였을때 발생
- 손상된 파일번호와 블럭번호를 반환
- 손상된 블럭을 확인한(블럭을 사용한) 세션에게 에러를 반환
- alert.log 에 나타남
1. 사용되는 파일보기
SQL> select name from v$datafile;
2. 시스템 파일 지우기 (db 망치기)
SQL> !rm /u01/app/oracle/oradata/devdb/system_disk/system01.dbf
3. 재시작 해보기 (에러)
SQL> startup force
4. 파일복사 (백업본 -> 지운파일)
SQL> !cp /u01/app/oracle/oradata/devdb_backup/open_backup/system01.dbf
/u01/app/oracle/oradata/devdb/system_disk/system01.dbf
5. 복원
SQL> recover datafile 1;
1. logminer로 추출한 로그파일 지정
execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/u01/app/oracle/oradata/devdb/redo_a/r1a.log',OPTIONS => DBMS_LOGMNR.NEW);
2. logminer 시작
execute DBMS_LOGMNR.START_LOGMNR (OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
3. v$logmnr_contents 안의 내용 확인
SELECT username, operation, SQL_REDO, sql_undo from v$logmnr_contents;
4. logminer 끝내기
execute dbms_logmnr.end_logmnr ;
출처 : http://energ.tistory.com/8
1. RMAN 설정
SQL> alter system set db_recovery_file_dest_size=2G;
SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/';
SQL> exit
2. RMAN 접속
OS> rman target sys/qltkdans
3. BACK UP 명령어
RMAN> backup database;
RMAN> host;
4. 백업 확인
OS> ls -lR /u01/app/oracle/flash_recovery_area/
※ job을 이용하여 설정하여 자동 백업을 설정 할수 있다.
1. 컨트롤 파일 오픈 백업
SQL> !mkdir /u01/app/oracle/oradata/devdb_backup/open_backup
SQL> alter database backup controlfile to trace as '/u01/app/oracle/oradata/devdb_backup/open_backup/control.sql';
SQL> cat /u01/app/oracle/oradata/devdb_backup/open_backup/control.sql
2. 데이터 파일 오픈 백업
SQL> spool open_backup.sql
SQL> select 'alter tablespace '||tablespace_name||' begin backup;'||chr(10)||
'!cp '||file_name||' /u01/app/oracle/oradata/devdb_backup/open_backup'||chr(10)||
'alter tablespace '||tablespace_name||' end backup;' as commands
from dba_data_files;
SQL> spool off
SQL> ed open_backup.sql (alter~ !cp~ alter~ 빼고 나머지 정리)
SQL> @open_backup.sql
SQL> !ls -l /u01/app/oracle/oradata/devdb_backup/open_backup