모든 데이터베이스의 변경 사항은 온라인 리두 로그 파일에 기록되고, 리두 로그 파일이 로그 스위칭 될 때 이 전의 가장 마지막으로 사용된 로그 파일을 아카이브 로그 파일로 백업 시키고 로그 스위칭을 진행 하게 된다.
그렇기 때문에 아카이브 로그 모드에서는 아카이브 모드를 유실하지 않는 다면 완전 복구가 가능하다.
이는 다르게 말한다면 아카이브 로그 모드 이더라도 최종 백업본으로 아카이브 로그가 유실 된다면 어쩔 수 없이 불안전 복구를 해야 하는 상황이 될 수도 있으므로, 항상 아카이브 로그 파일의 관리를 철저히 해야 한다는 것을 명심해야 할 것이다. 물론 아카이브가 되지 않은 온라인 리두 로그 파일도 유실된다면 완전 복구가 불가능한 것은 당연한 얘기이다.

이번 장에서는 아카이브 모드 설정 및 데이터 파일 유실 시 노 아카이브 모드와는 어떻게 다른 방식으로 백업 및 복구를 하는 지에 대해 알아보도록 한다.

1. 아카이브 로그 파일이 생성된 디렉토리 생성

먼저 OS에서 아래와 같이 아카이브 로그가 생성될 디렉토리를 생성한다.

 mkdir -p /u02/arch


2. 아카이브 로그 모드와 관련된 초기화 파라미터 설정

sys계정으로 접속하여 아래와 같이 아카이브 로그 파일의 생성 형식을 지정한다.

sqlplus / as sysdba

SQL>  alter system set log_archive_format='%t_%s_%r.arc' scope=spfile ;
SQL>  alter system set log_archive_dest_1='location=/u02/arch/';

System altered.

-------
========================================
 파일 이름에 사용되는 형식
========================================
      %d: 데이터베이스 이름
      %t: 인스턴스 번호
      %s: Log Sequence 번호
      %r: Resetlogs ID로, 
     리두 로그가 초기화 될 때 지정되는 ID 
 ========================================

(주) 운영 중 특별 세션, 혹은 시스템 상의 상태를 변경할 수 있는 경우에는 scope=memory로 메모리 상태에서 변경이 가능하지만 서버 재시작 시에는 변경 사항이 적용되지 않고, scope=both일 경우 spfile에도 내용이 저장되고 메모리 상태 변경도 가능하다. 
하지만 scope=spfile일 경우 변경 사항을 spfile에만 기록 하고 현재 상태에서 시스템 변경이 일어나지 않는다. 때문에 scope=spfile로 상태를 변경 할 경우는 서버를 재시작하여야 한다.

 SQL> shutdown immediate  -- shutdown abort는 사용못함.
Database closed.
Database dismounted.
ORACLE instance shut down.


3. 아카이브 로그 모드 변경

 이제 아카이브 모드를 설정할 차례다. 아카이브 모드는 데이터베이스의 상태가 mount 상태에만 가능하다.

 먼저 데이터베이스를 mount 단꼐로 startup한다.

 SQL> startup mount
ORACLE instance started.

Total System Global Area  608174080 bytes
Fixed Size                  1220820 bytes
Variable Size             197136172 bytes
Database Buffers          402653184 bytes
Redo Buffers                7163904 bytes
Database mounted.

 아카이브 로그 로그 상태를 확인하면 아래와 같이 No Archive Mode 상태이다.

 SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u02/arch/
Oldest online log sequence     1
Current log sequence           2

 아카이브 로그 모드를 활성화 시킨 후 아카이브 로그 상태를 확인한다.

SQL> alter database archivelog ;

Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u02/arch/
Oldest online log sequence     1
Next log sequence to archive   2
Current log sequence           2

 데이터베이스가 아카이브 로그로 문제 없이 변경되었음을 확인하였다.
 이제 데이터베이스의 상태를 open 상태로 변경한다.

 SQL> alter database open;

Database altered.

 아래와 같이 강제로 로그 스위칭과 체크포인트를 수차례 시도한다.

SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;
SQL> alter system switch logfile ;
SQL> alter system checkpoint ;

 OS터미널에서 아래와 같이 /u02/arch 디렉토리를 조회한다.

ls -l /u02/arch/
합계 14464
-rw-r-----  1 oracle oinstall 14760960  2월  8 01:08 1_2_774589334.arc
-rw-r-----  1 oracle oinstall     2048  2월  8 01:08 1_3_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_4_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_5_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_6_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_7_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_8_774589334.arc
-rw-r-----  1 oracle oinstall     1024  2월  8 01:08 1_9_774589334.arc

 위와 같이 .arc 파일들이 생성된다면 성공적으로 아카이브 모드가 활성화 된 것이다.




출처: http://larcyuki83.tistory.com/entry/BR-3-Achive-Mode-설정-및-OS카피를-이용한-데이터-파일-유실-복구?category=417422 [나름 공부하는 블로그]

+ Recent posts