오라클 아카이브 로그 활성화 설정

 

개요

Oracle DB에서 아카이브 로그(Archive Log)를 사용하도록 모드를 변경한다.


환경


해결법

1. DB 로그인

$ sqlplus / as sysdba

oracle 계정에서 sysdba 권한으로 Oracle Database에 로그인합니다.

 

2. 아카이브 로그 설정 확인

SQL> archive log list
Database log mode            No Archive Mode
Automatic archival           Disabled
Archive destination          /oracle/arch
Oldest online log sequence   7989
Current log sequence         7991

현재 Database log modeNo Archive Mode로 아카이브 로그를 사용하지 않는 상태를 의미한다.

No Archive ModeArchive Mode로 활성화 해주기 위해서는 SQL alter문으로 설정을 변경한 후 DB 인스턴스의 재기동이 필요하다.

 

No Archive Mode vs Archive Mode

No Archive Log Mode는 Oracle Database 설치시 기본값이며, 몇 개의 redo 로그 파일을 돌려서 변경사항을 기록해두는 방식이다. 따라서, 일정 갯수의 redo 로그 파일 이전의 변경기록은 보관하지 않고 밀려나 사라지게 된다.

Archive Mode는 이와 달리 redo 파일에 변경사항을 다 쓴후 파일에 덮어쓰기 전에 이전 파일을 다른 곳에 복사해 보관해두는 방식이다. 따라서 용량만 여유가 있다면 모든 변경사항이 덮어쓰여지지 않고 보관된다.

 

3. DB 종료 후 mount

SQL> shutdown immediate;

DB를 내려준다.

SQL> startup mount;
ORACLE instance started.
[...]
Database mounted.

Database altered. 메세지가 떨어지면 정상적으로 실행된 것이다.

실제 운영 DB에서 startup mount 실행시 소요시간이 5~10분 걸릴 수 있다.

 

4. 아카이브 로그 설정 변경

SQL> alter database archivelog;

Database altered.

아카이브 로그를 사용하도록 설정하는 alter문이다.
Database altered. 메세지가 떨어지면 정상적으로 실행된 것이다.

 

5. DB open

DB를 open 상태로 변경한다.

SQL> alter database open;

Database altered.

 

6. 작업 결과확인

Database log mode 확인

SQL> archive log list
Database log mode              Archive Mode
[...]

Database log mode 값이 No Archive Mode에서 Archive Mode 로 변경되었다.

 

Instance 상태 확인

SQL> SELECT instance_name, status FROM v$instance;

INSTANCE_NAME      STATUS
------------------ ------------
DEV                OPEN

DB 인스턴스의 상태값(STATUS)이 OPEN 일 경우 정상이다.

이것으로 작업 완료.