2008. 10. 1. 14:58ㆍOracle/Oracle Study
C:\> sqlplus "/as sysdba"
archive mode로 변경하기 전에 확인 해 봐야 할 것!!
SQL> archive log list
데이터베이스 로그 모드 아카이브 모드가 아님
자동 아카이브 사용 안함
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서 32
현재 로그 순서 33
SQL>show parameter log_archive_max_processes; (활성화 되고 있는 archive process 확인)
NAME TYPE VALUE
--------------------------- -------------- -------
log_archive_max_processes integer 2
process를 늘려주고 싶을 때 : alter system set log_archive_max_processes=3;
저는 default 값으로 활성화 시키도록 하겠습니다.
이제 본격적으로 간단한 설정을 해보도록 하겠습니다.
archive file 저장 위치를 지정해준다.
SQL> alter system set log_archive_dest_1='location=c:\PROD\DISK1\Archive\arch01 reopen';
SQL> alter system set log_archive_dest_2='location=c:\PROD\DISK2\Archive\arch02 reopen';
cf.
mandatory : 아카이브하는 작업이 성공적으로 완료되어야 온라인 리두 로그파일을 겹쳐 쓸 수있음
optional : 아카이브하는 작업이 성공적으로 완료되지 않은 경우에도 온라인 리두 로그 파일을
재사용할 수 있음.
reopen : 키워드와 함께 숫자를 지정하면, 실패 후 지정된 시간(초)이 경과한 다음 다시 쓰기를 시도함.
default = 300, ex) reopen=500
REOPEN을 지정하지 않은 경우 선택 대상에서 발생한 오류는 기록된 다음 무시되고 더 이상 이 대상으로
리두 로그가 보내지지 않는다. 필수 대상에서 오류가 발생하면 아카이브가 성공적으로 수행될 때까지 온라인 리두 로그를 재사용할 수 없다.
저는 process를 2개를 활성화 하였기 때문에 경로를 2개를 지정해주었습니다.
서로 다른 디스크에 저장을 시켜주어야 하지만 여건상 같은 디스크에 넣을수 밖에 없었네요.^^
show parameter log_archive_dest 를 보면 위치가 설정된 것을 확인해 보실수 있습니다.
* process를 여러개 지정해주는 이유
1. 대량의 트랙잭션 로드 작업 과 동시에 다른 작업들이 맞물려 wait가 발생되는 archive 이목현상을
방지하기 위해서
2. archive log 파일을 다중화 하여 복구를 대비하기 위하여(archive file도 깨질수있기때문임.)
SQL> alter system set log_archive_format='ARC%T%S%R.ARC' scope=spfile;
※ 주의할 점은 9i까지는 %s만 넣어도 상관없었지만 10g부터는 %t%s%r이 반드시 들어가야한다.
참고로 저는 %s%t 만 넣었다가 DB가 startup이 안되서 복구시키느냐구 고생을 좀 하였습니다.^^;;
제가 경험한 에러 및 복구 방안은 Oracle Error Catalog에 추후 등록시키도록 하겠습니다.
SQL> shutdown immediate;
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup mount;
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 285212672 bytes
Fixed Size 1287016 bytes
Variable Size 92277912 bytes
Database Buffers 188743680 bytes
Redo Buffers 2904064 bytes
데이터베이스가 마운트되었습니다.
SQL> alter database archivelog;
데이타베이스가 변경되었습니다.
SQL> alter database open;
데이타베이스가 변경되었습니다.
이렇게 하면 archive로 설정이 되었습니다.
잘 되었는지 확인 해 봅시다.
SQL> archive log list --처음에 확인했던 명령어이죠.
데이터베이스 로그 모드 아카이브 모드
자동 아카이브 사용
아카이브 대상 C:\oraclexe\oradata\Archive\Arch2
가장 오래된 온라인 로그 순서 36
아카이브할 다음 로그 37
현재 로그 순서 37
SQL> alter system archive log current;
시스템이 변경되었습니다.
SQL>
Archive file이 저장되는 경로에 가서 파일이 생성되었는지 확인해 봅시다.
잘 생성되었다면 archive mode로 이상없이 변경 된 것입니다.
9i보다는 많이 간단해 진 것 같습니다.
또한 log_archive_start는 9i에서는 true로 설정을 해주어야했지만,
10g에서 obsolete parameter 입니다. 설정에 상관없이 true로 인식을 합니다.
--추가글(20100429)
만약 archive process를 2개로 가동시키다가 1개로 줄이고 싶다면 archive모드를 해제한후 다시 설정을 해야한다.
(지금까지 내가 알기로는 그렇다.)
'Oracle > Oracle Study' 카테고리의 다른 글
Partition Table(1) - Create (0) | 2009.06.17 |
---|---|
Row Migration (0) | 2008.11.30 |
Rollup & Cube & Grouping 차이 (0) | 2008.05.16 |
with grant option & with admin option 차이 (0) | 2008.05.14 |
view에 사용되는 with check option (0) | 2006.10.20 |