블로그 이미지
hengki
우쭈쭈우쭈쭈

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
0. 개요
 미디어(디스크)나 논리적 또는 소프트웨어에  문제가 있을때 데이터베이스가 손상되었다. 혹은 깨졌다라는 표현을 사용합니다. 이때 손상된 원인을 찾고 대처 할수 있는 능력을 키워야 할것이다.


1. 증상 알기
에러 메시지 ORA-01578 발생
- 손상된 데이터 블록이 발생하였을때 발생
- 손상된 파일번호와 블럭번호를 반환
- 손상된 블럭을 확인한(블럭을 사용한) 세션에게 에러를 반환
- alert.log 에 나타남


2. 손상된 블럭 확인 기능등
- DBVERIFY Utility
- ANALYZE 
- DB_BLOCK_CHECKING
- DB_BLOCK_CHECKSUM
- EXP


3. 손상된 블럭 복구 관련 기능들
- Flashback 
- DBMS_REPAIR
- Block Media Recovery 



* 자세한 설명은 생략한다. (이게 아니잔아!!) 보통 블럭이 손상 돼었을때 복구단계를 거치면 알아서 해결되기 때문에 많이는 사용하지 않는다고 한다.



posted by hengki


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;

저작자 표시
posted by hengki

 

LogMiner 는 8I 에서부터 새롭게 제공하는 기능으로 Oracle 8 이상의 Redo log file 또는 Archive log file 분석을 위해 이용된다.


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

저작자 표시
posted by hengki

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을 이용하여 설정하여 자동 백업을 설정 할수 있다.

저작자 표시
posted by hengki

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

저작자 표시
posted by hengki
prev 1 2 next