오라클 아카이브 모드.

1. 먼저, 아카이브 모드로 운영되는지 확인.(sqlplus 로 접속후 확인)

몇가지 방법이 있음…

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     214
Current log sequence           216

SQL> select log_mode from v$database;

LOG_MODE
————
NOARCHIVELOG

2. 위를 보면 아카이브 모드가 아닌것을 알 수 있음.

3. spfile(server parameter file)로 부터 pfile(parameter file)생성.

SQL> create pfile=’$ORACLE_HOME/dbs/initfox.ora’
from spfile=’$ORACLE_HOME/dbs/spfilefox.ora’;

4. 위에서 생성한 pfile에 아래 사항을 추가(ARCHIVE_LOCATE는 다른 파티션에 잡아주는것이 좋다.)

*.log_archive_start=TRUE
*.log_archive_dest_1=’location=ARCHIVE_LOCATE’
*.log_archive_format=’SID_%s_%t_%r.arc’

5. 설정을 적용하기위해 데이타베이스를 재시작한다.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.

Total System Global Area  293601280 bytes
Fixed Size                  1978144 bytes
Variable Size             125833440 bytes
Database Buffers          159383552 bytes
Redo Buffers                6406144 bytes
Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     215
Next log sequence to archive   217
Current log sequence           217

6. 아카이브로그가 생성되는지 확인해본다.

여기에서 문제가 발생했다. 아카이브 로그가 지정한 디렉토리에 생성되지 않고 USE_DB_RECOVERY_FILE_DEST에 생성이 되는 문제다. 여기에서 USE_DB_RECOVERY_FILE_DEST를 내가 원하는 디렉토리로 바꾸는 방법은?

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.

Total System Global Area  293601280 bytes
Fixed Size                  1978144 bytes
Variable Size             113250528 bytes
Database Buffers          171966464 bytes
Redo Buffers                6406144 bytes
Database mounted.
SQL> alter database noarchivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     217
Current log sequence           219
SQL>

일단 No archive mode로 바꾸고 난 후.

SQL> alter system
2 set log_archive_start = true
3 scope=spfile
4 ;
System altered.

SQL> alter system
2  set log_archive_dest_1=’location=/export/home/oracle_archive’
3  scope=spfile;

System altered.

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

System altered.

그 후에 데이타베이스를 재 시작 해 준다.

SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /export/home/oracle_archive
Oldest online log sequence     217
Current log sequence           219

원하는 디렉토리로 바뀌었다.

다시 아카이브 모드로 바꿔준다.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /export/home/oracle_archive
Oldest online log sequence     217
Next log sequence to archive   219
Current log sequence           219

사실 , 처음에는 pfile을 이용하려고 했던 것인데, spfile을 이용해서 설정을 해 버렸다..
;ㅡㅡ

1 comment

    • on 2008년 10월 21일 at 1:10 오후
    • Reply

    포맷의 의미..

    %s: log sequence number
    %S: log sequence number, zero filled
    %t: thread number
    %T: thread number, zero filled
    %a: activation ID
    %d: database ID
    %r: resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database

답글 남기기

Your email address will not be published.