Operating System/ORACLE

Oracle 11g 아카이브 로그 모드(archive log mode) 변경

Growing DBA 2023. 7. 14. 15:20
728x90
반응형

* 아카이브 로그 모드

- 오라클DB에 접속하여 DML이나 DDL 등의 명령어로 작업을 수행하면 모든 작업의 기롤이 리두로그파일에 저장된다.

작업의 양이 많아지면 리두로그파일에 기록하는 내용이 많아지므로 리두로그파일을 늘려야 하는 일이 발생한다.

그런데 오라클 리두로그파일은 계속 증가하는 것이 아닌 몇 개의 리두로그파일을 만들어 놓고 번갈아가면서 기록하는 구조이다. 이렇게 번갈아가면서 기록을 하게 되면 새로운 작업의 내용이 예전의 작업내용을 덮어쓰므로 예전의 작업한 내용을 잃게 된다.

이러한 단점을 해결하기 위한 방법으로 리두로그파일의 내용을 다른 디렉토리에 자동으로 복사해서 저장하도록 운영하는 방법을 아카이브 로그 모드라고 한다. 

 

 

* 아카이브 로그 모드 설정

1. 현재 로그 모드 확인

[oracle@OL7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on 토 4월 8 00:56:41 2023

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list
데이터베이스 로그 모드              아카이브 모드가 아님
자동 아카이브             사용 안함으로 설정됨
아카이브 대상            USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서     28
현재 로그 순서           30

 

2. spfile 확인

SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0
                                                 .4/db_1/dbs/spfileDB11G.ora

 

3. instance 확인

SQL> select status from v$instance;

STATUS
------------
OPEN

 

4. 아카이브 로그 저장 경로 확인

SQL> show parameter log_archive_dest_1;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_11                  string
log_archive_dest_12                  string
log_archive_dest_13                  string
log_archive_dest_14                  string
log_archive_dest_15                  string
log_archive_dest_16                  string
log_archive_dest_17                  string
log_archive_dest_18                  string
log_archive_dest_19                  string

 

5. 아카이브 모드 활성화

SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.

SQL> startup mount
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  826753024 bytes
Fixed Size                  2232880 bytes
Variable Size             557845968 bytes
Database Buffers          260046848 bytes
Redo Buffers                6627328 bytes
데이터베이스가 마운트되었습니다.

SQL> alter database archivelog;

데이타베이스가 변경되었습니다.

SQL> alter database open;

데이타베이스가 변경되었습니다.

SQL> archive log list
데이터베이스 로그 모드              아카이브 모드
자동 아카이브             사용으로 설정됨
아카이브 대상            USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서     29
아카이브할 다음 로그   31
현재 로그 순서           31

 

6. 아카이브 파일 생성 확인

SQL> alter system switch logfile;

시스템이 변경되었습니다.


* archive log 파일의 경우 fullbackup 후 backup 이전의 archive log file은 필요없으므로 삭제
(삭제하지 않고 남겨둘 시 디스크가 full 발생)

 

7. 아카이브 모드 비활성화

SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.

SQL> startup mount
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  826753024 bytes
Fixed Size                  2232880 bytes
Variable Size             557845968 bytes
Database Buffers          260046848 bytes
Redo Buffers                6627328 bytes
데이터베이스가 마운트되었습니다.

SQL> alter database noarchivelog;

데이타베이스가 변경되었습니다.

SQL> alter database open;

데이타베이스가 변경되었습니다.

SQL> archive log list
데이터베이스 로그 모드              아카이브 모드가 아님
자동 아카이브             사용 안함으로 설정됨
아카이브 대상            USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서     30
현재 로그 순서           32

SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG
728x90
반응형