오라클 아카이브 모드(archive log mode) 변경 방법

Posted by

아카이브 로그 모드(Archive Log Mode)란?
 

  우리가 오라클데이터베이스에 접속을해서 DML이나 DDL등의 명령어로 작업을 수행하면, 모든 작업의 기록이 리두로그 파일에 저장이 된다.

작업의 양이 많아지면 리두로그파일에 기록하는 내용도 굉장히 많아지게 되겠죠. 그렇게 되면 데이터를 기록하기 위해서 리두로그파일을 늘려야 하는 일이 발생을 한다.

그런데 오라클 리두로그파일은 계속 증가하는 것이 아니라 몇 개의 리두로그 파일을 만들어 놓고 번갈아 가면서 기록하는 구조로 되어 있다.

이렇게 번갈아 가면서 기록을 하게 되면 새로운작업의 내용이 예전의 작업내용을 덮어쓰므로 예전의 작업한 내용을 잃게 된다는 단점이 있다. 그래서 예전의 작업한 내용에 데이터 손실이 발생하면 복구하기 어렵다는 단점이 있다.

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

오라클데이터베이스는 기본적으로 No Archive Log Mode 이고, Archive Log Mode로 운영하기 위해서는 따로 설정을 해주어야 한다.

Archive 모드 변경하는 절차입니다. 

1. spfile 을 사용 할 경우 

C:\>sqlplus “/as sysdba” 

SQL*Plus: Release 11.2.0.1.0 Production on 수 3월 8 12:55:38 2017 

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


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

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


spfile 사용 유무 확인 

SQL> show parameter spfile; 

NAME                                TYPE 
———————————— ———————- 
VALUE 
—————————— 
spfile                              string 
D:\APP\ADMINISTRATOR\PRODUCT\1 
1.2.0\DBHOME_1\DATABASE\SPFILE 
ORCL.ORA 

SQL> show parameter spfile; 


현재 instance 상태 확인 
SQL> select status from v$instance; 

STATUS 
———————— 
OPEN 

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

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 

SQL> alter system set log_archive_dest_1=’location=D:\archive’ scope=spfile; 

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

SQL> alter system set log_archive_format=’%s_%t_%r.arc’ scope=spfile; 

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


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

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

Total System Global Area 3423965184 bytes 
Fixed Size                  2180544 bytes 
Variable Size            1996491328 bytes 
Database Buffers        1409286144 bytes 
Redo Buffers              16007168 bytes 
데이터베이스가 마운트되었습니다. 

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


SQL> alter database archivelog; 

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

SQL> alter database open; 

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

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


==================================================================== 


2. pfile 을 사용할 경우 


1. Archive Log 관련 파라미터 설정 
– 아카이브 파일이 떨어지는 위치 설정 
SQL> alter system set log_archive_dest_1=”c:\archivelog” scope=spfile; 
c:\archivelog  위치는 사이트에 맞추어 변경해 주세요. 

– 아카이브 파일의 이름을 설정 
SQL> alter system set log_archive_format = “arch_%t_%s_%r.arc” scope=spfile; 

2. DB shutdown 
SQL> Shutdown immediate 

3. Archive Log mode 전환 
SQL> Startup mount   mount단계로 start 
SQL> alter database archivelog;               archive mode 변경 
SQL> alter database open;  database open 

4. Archive Log 설정 확인 
SQL> archive log list 
Database log mode              Archive Mode 
Automatic archival                Enabled 
Archive destination              C:\ARCHIVELOG 
Oldest online log sequence    66 
Next log sequence to archive  68 
Current log sequence            68 
SQL> alter system switch logfile;       지정된 위치에 아카이브 파일이 생성이 되는지를 확인합니다. 

– 설정 완료- 

Archive log 파일의 경우 full backup 후 full backup 이전의 archive log file은 필요가 없으므로 삭제해 주셔야 합니다. 
삭제하지 않고 남겨 둘 경우 디스크가 full 이 발생할 수 있습니다. 

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다