2021-10-25 오라클 아카이브 로그 활성화 설정
개요
Oracle DB에서 아카이브 로그(Archive Log)를 사용하도록 모드를 변경한다.
환경
- OS : HP-UX B.11.31
- Shell : sh (POSIX shell)
- DB : Oracle Database 10g
해결법
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 mode는 No Archive Mode로 아카이브 로그를 사용하지 않는 상태를 의미한다.
No Archive Mode를 Archive 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 일 경우 정상이다.
이것으로 작업 완료.