NOARCHIVELOG 모드

- 데이터베이스를 설치하면은 설정되는 기본모드 입니다.

- 체크포인트가 발생한 후 즉시 리두 로그 파일을 재사용 할 수 있습니다.

- 리두 로그가 겹쳐 쓰여지면서 변경정보가 없어지므로 마지막 전체 백업에 대해서만 복구가 가능합니다.

- 데이터베이스가 종료(NORMAL, IMMEDIATE, TRANSACTIONA옵션만 가능<이 세개의 옵션만 ckpt가 수행된 이후 데이터베이스가 shutdown되므로 모든 데이터파일, control file, Redo Log File이 동기화 되어져 있으므로>)되었을 때만 복구 가능한 백업 본 생성이 가능합니다.

- 백업 할 때마다 전체 데이터파일 및 Controlfile을 백업해야 합니다. NoArchiveLog Mode의 DB는 동기화되어 있으므로(NORMAL, IMMEDIATE, TRANSACTIONAL을 사용할 경우) 반드시 온라인 로그 파일을 백업해야 하는 것은 아닙니다.

- Redo Log 파일이 겹쳐 써지기 때문에 마지막 전체 백업 이후의 모든 데이터가 손실 됩니다.

ARCHIVELOG 모드

- 다 쓰여진 리두 로그 파일은 Log Switch가 일어나기 전 체크포인트가 발생하고 ARCn 프로세스에 의해 리두로그 파일을 백업할 때까지(Archivelog 파일 생성) Redo Log File은 재사용될 수 없습니다.

- Archived Log File은 Media 장애가 발생 했을 때 데이터가 손실되지 않도록 데이터베이스를 보호합니다.

- ARCHIVE Log Mode는 온라인 상태에서 데이터베이스를 백업할 수 있습니다.(Hot Bakup)

◈ 운영 중인 오라클의 로그 모드를 확인합니다.

SQL> ARCHIVE LOG LIST;
데이터베이스 로그 모드 아카이브 모드가 아님
자동 아카이브 사용 안함
아카이브 대상 C:\oracle\ora92\RDBMS
가장 오래된 온라인 로그 순서 17
현재 로그 순서 19


◈ PFILE을 이용하여 ARCHIVE LOG MODE로 변경


1. 파라미터 파일에서 수정한다.(INIT<SID>.ORA파일의 parameter 수정)

# 아카이브 프로세스를 오라클 시작과 함께 실행하도록 설정
# log switch 발생시 자동으로 archive를 수행 합니다
LOG_ARCHIVE_START = TRUE

# 아카이브 로그 파일을 저장할 디렉토리 설정
LOG_ARCHIVE_DEST = "C:\oracle\ora92\database\archive"

# 아카이브 로그 파일의 이름 설정
LOG_ARCHIVE_FORMAT = %S.ARC

2. 데이터베이스를 종료 합니다(NORMAL, IMMEDIATE, TRANSACTIONAL)
SQL> SHUTDOWN IMMEDIATE

3. 데이터베이스를 Mount 상태로 시작합니다.
SQL> STARTUP MOUNT

4. ALTER DATABASE 명령을 사용하여 데이터베이스의 모드를 변경합니다.
SQL> ALTER DATABASE ARCHIVELOG;

5. 데이터베이스를 OPEN합니다.
SQL> ALTER DATABASE OPEN;

6. ARCHIVE LOG MODE가 정상적으로 설정되어 있는지 확인합니다.
SQL> ARCHIVE LOG LIST;
데이터베이스 로그 모드 아카이브 모드
자동 아카이브 사용ㄴ
아카이브 대상 C:\oracle\ora92\database\archive
가장 오래된 온라인 로그 순서 17
아카이브할 다음 로그 19
현재 로그 순서 19

7. 데이터베이스에 대한 전체 백업을 수행합니다.


LOG_ARCHIVE_FORMAT 옵션
- %S : redo 로그 시퀀스 번호를 표시하여 자동으로 왼쪽이 0으로 채워져 파일 이름 길이를 일정하게 만든다.
- %s : redo 로그 시퀀스 번호를 표시하고, 파일 이름 길이를 일정하게 맞추지 않는다.
- %T : redo 스레드 넘버를 표시하며, 자동으로 왼쪽이 0으로 채워져 파일 이름 길이를 일정하게 만든다.
- %t : redo 스레드 넘버를 표시하며, 파일 이름 길이를 일정하게 맞추지 않는다.
※ NOARCHIVELOG 모드에서 ARCHIVELOG 모드로 변경한 후에는 Control file정보가 변경되어 이전의 백업본은 사용할 수 없으므로 반드시 모든 데이터파일 및 Control file을 백업하여야만 합니다.


◈ SPILE을 수정하여 데이터베이스를 ARCHIVE LOG MODE로 변경하기


1. SPFILE설정

-- sqlplus 실행
C:\> sqlplus /nolog
-- SYSDBA 권한으로 접속

SQL> conn / as sysdba

--LOG_ARCHIVE_START 파라미터 변경
SQL> ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;

--LOG_ARCHIVE_DEST 파라미터 변경
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST=’C:\oracle\ora92\database\archive’
SCOPE=SPFILE;

--log_archive_format 파라미터 변경
SQL> ALTER SYSTEM SET log_archive_format = 'name_%t_%s_%r.arc' scope=spfile;

%t = 스레드 넘버, %s = 시퀸스 넘버, %r = reset logs

10g에서는 반드시 %s, %t, %r를 모두 설정

2. 데이터베이스를 종료 합니다(NORMAL, IMMEDIATE, TRANSACTIONAL)
SQL> SHUTDOWN IMMEDIATE


3. 데이터베이스를 Mount 상태로 시작합니다.
SQL> STARTUP MOUNT


4. ALTER DATABASE 명령을 사용하여 데이터베이스의 모드를 변경합니다.
SQL> ALTER DATABASE ARCHIVELOG;


5. 데이터베이스를 OPEN합니다.
SQL> ALTER DATABASE OPEN;


6. ARCHIVE LOG MODE가 정상적으로 설정되어 있는지 확인합니다.
SQL> ARCHIVE LOG LIST;
데이터베이스 로그 모드 아카이브 모드
자동 아카이브 사용ㄴ
아카이브 대상 C:\oracle\ora92\database\archive
가장 오래된 온라인 로그 순서 17
아카이브할 다음 로그 19
현재 로그 순서 19


7. 데이터베이스에 대한 전체 백업을 수행합니다.

아카이브 로그모드 비활성화

> ALTER DATABASE NOARCHIVELOG;

SQL> show parameter db_recovery_file_dest; 아카이브로그 경로확인

SQL> show parameter recovery *db_recovery 관련정보

8. DB startup 후 archive file 이 정상적으로 쌓이는지 확인
SQL> ALTER SYSTEM SWITCH LOGFILE;

9. 설정한 경로에 아카이브 파일이 생성되었는지 확인

운영중 아카이브 경로수정 및 기동


sys@TGDOM>show parameters spfile ;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /app/oracle/product/10.1.0/dbs
/spfileTGDOM.ora
sys@TGDOM>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /a01b/TGDOM/arch
Oldest online log sequence 1487
Next log sequence to archive 1488
Current log sequence 1488
sys@TGDOM>show parameters log_archive_dest

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string LOCATION=/a01b/TGDOM/arch MAND
ATORY REOPEN

sys@TGDOM> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/a01b/TGDOM/arch2' SCOPE=MEMORY;
System altered.

sys@TGDOM>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /a01b/TGDOM/arch2
Oldest online log sequence 1487
Next log sequence to archive 1488
Current log sequence 1488

sys@TGDOM>ALTER SYSTEM SET log_archive_dest_1='LOCATION=/a01b/TGDOM/arch2' SCOPE=both ;
System altered.

sys@TGDOM>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /a01b/TGDOM/arch2
Oldest online log sequence 1487
Next log sequence to archive 1488
Current log sequence 1488

sys@TGDOM>ALTER SYSTEM SET log_archive_dest_1='LOCATION=/a01b/TGDOM/arch' SCOPE=both ;
System altered.

## ARchive Process 수동 시작
sys@TGDOM>ALTER SYSTEM ARCHIVE LOG START;
System altered.