[Archived log mode]
- online redo log 파일을 다른 장소로 한번 더 archive해서 혹시 발생할지 몰는 online redo log 파일의 장애 대비
- 관리자가 별도로 설정해야 하며 archived log가 저장될 별도의 저장 공간이 필요함
[No Archived log mode]
- online redo log 파일을 archive하지 않고 운영하는 방법
- 오라클 설치시 기본 모드
- log switch가 일어날때 archive process가 archive log file 복사
- archive 용량이 꽉찼을때 no archive mode로 변경되며 이후에도 계속 no archive mode
- archive log file을 저장할 경로의 권한이 없을때 no archive mode
- archive log file의 저장공간이 꽉찼을 때
archive log file을 지워야 하는데 복구 해야할 파일 뒤에 생성된 파일은 남아있어야 함
(백업 파일은 어디까지 백업했는지 확인이 불가능함)
① 백업파일의 날짜를 확인하여 archive log file의 날짜와 비교하여 이전 날짜의 파일을 지워야함
② 백업을 지금 당장 하고 archive log file을 삭제하면 됨.
1. archive Redo Log mode로 변경하기
[spfile 사용할 경우]
SQL > show parameter spfile; << parameter 파일 확인
SQL > select status from v$instance << instance 상태 open
SQL > show parameter log_archive_dest_1; << archive log file 저장경로 확인
SQL > alter system set log_archive_dest_1='경로' scope=spfile; << 파라미터 파일에 archive log file 저장 경로와 이름 지정해줌
SQL > shutdown immediate ; << DB 종료 후
SQL > startup mount; << mount 상태로 open
[pfile을 사용할 경우]
① DB 종료
SQL > shutdown immediate;
② parameter file 수정
oracle$ vi $ORACLE_HOME/dbs/inittestdb.ora << pfile 수정
log_archive_start=true << 9i까지만 사용, 10g이상버전에서는 사용하면 안됨!
log_archive_dest_1='location=/data/arc1' << 첫번째 저장경로 지정
log_archive_dest_2='location=/data/arc2' << 두번째 저장경로 지정
log_archive_format=%s_%t_%r.arc << 아카이브 로그파일 이름 지정
③ mount상태로 open
SQL > archive log list; << archive log mode 확인
SQL > alter database archivelog; << archive log mode로 변경
SQL > alter database oepn; << mount 상태인 DB를 open
* No Archive log mode로 변경
SQL > alter database noarchivelog;
테스트 > alter system switch logfile << switch 발생시킨 후 archive log file이 생기는지 테스트 하기 위해서
> archive log file 의 저장위치는 아까 변경해준 곳으로 설정되어있음
> 저장 경로에 archive log file이 생성이 되었는지 확인
2. Archive Hang 발생 시 해결하는 방법 --archive log mode로 운영할때 발생하는 문제
* archiving hane 발생원인
① archive log file 저장경로 삭제될때
② archive log file 저장 공간이 부족할때
③ oracle이 저장 디렉토리 권한이 없을때
step 1. 현재 상황 확인
SQL > archive log list;
step 2. 권한을 변경하여 archive hang 발생시킨다
- archive log file이 저장되는 디렉토리의 권한을 변경한다.
- oracle이 접근할수 없으므로 hang이 발생하게 됨.
step 3. Log Switch를 발생시키면 Archive Hang 발생
step 4. alter log를 확인하여 Archiving Hang 상태 확인
oracle$ vi /app/oracle/diag/rdbms/testdb/testdb/trace/alert_testdb.log
- 저장해야 하는 디렉토리에 oracle계정이 쓸 권한이 없어서 Log Switch가 발생해도 archiving 불가하다는 에러 확인
step 5. oracle에게 권한을 부여
step 6. Log Switch 발생시켜서 Hang이 안걸리는지 확인
SQL > alter system switch logfile; >> 여전히 Hang이 풀리지 않음.
step 7. 파라미터 변경후 archiver 재시작
SQL > alter system set log_archive_dest_state_1=defer;
SQL > alter system set log_archive_dest_state_1=enable;
SQL > alter system set log_archive_dest_state_2=defer;
SQL > alter system set log_archive_dest_state_2=enable;
SQL > alter system archive log stop;
SQL > alter system archive log start;
SQL > alter system switch logfile >> Hang 걸리지 않고 스위치 잘 넘어감
3. Archive log 압축하여 저장공간 줄이기
- hang 발생문제나 archive log를 저장할 대용량 스토리지를 별도로 구입해야 하는 등의 현실적인 문제
- 오라클에서는 archive log를 생성할때 압축을 할수있는 방법을 제공 (기본값 : desable)
- enable로 설정할 경우 파일의 내용이 대체적으로 50%이상의 압축률을 보임 (OS마다 압축효율이 다름)
- but, 데이터 복제 솔루션(data guard 등)을 사용할 경우 압축으로 인해 문제 발생할 수도 있음
① 압축모드 확인하기 : select archivelog_compression from v$database;
② enable 상태로 변경 : alter database archivelog compress enable;
③ disable 상태로 변경 : alter database archivelog compress disable;
'oracle > [Recovery] 기타' 카테고리의 다른 글
[Clone DB] clone db를 이용한 drop tablespace 복구 (1) | 2014.11.10 |
---|---|
[Clone DB] clone db와 exp/imp를 이용한 drop table복구 (0) | 2014.11.10 |
[Log Miner] Log Miner 활용 (0) | 2014.11.05 |
Backup (백업의 종류 및 특징) (0) | 2014.10.30 |
sys 사용자 암호 묻도록 설정하기/ orapw 파일 삭제되었을 경우 조치 (0) | 2014.10.29 |
댓글