우리가 오라클데이터베이스에 접속을해서 DML이나 DDL등의 명령어로 작업을 수행하면,
모든 작업의 기록이 리두로그 파일에 저장이 됩니다.
작업의 양이 많아지면 리두로그파일에 기록하는 내용도 굉장히 많아지게 되겠죠.
그렇게 되면 데이터를 기록하기 위해서 리두로그파일을 늘려야 하는 일이 발생을 합니다.
그런데 오라클 리두로그파일은 계속 증가하는 것이 아니라 몇 개의 리두로그 파일을 만들어 놓고
번갈아 가면서 기록하는 구조로 되어 있습니다.
이렇게 번갈아 가면서 기록을 하게 되면 새로운작업의 내용이 예전의 작업내용을 덮어쓰므로
예전의 작업한 내용을 잃게 된다는 단점이 있습니다.
그래서 예전의 작업한 내용에 데이터 손실이 발생하면 복구하기 어렵다는 단점이 있습니다.
이런 단점을 해결하기 위한 방법이 리두로그파일의 내용을 다른 디렉토리에 자동으로 복사해서 저장하도록 운영하는 방법입니다.
이렇게 운영하는 방법을 아카이브 로그 모드(Archive Log Mode)라고 합니다.
오라클데이터베이스는 기본적으로 No Archive Log Mode고요.. Archive Log Mode로 운영하기 위해서는 따로 설정을 해주어야 합니다.
|
◈ ARCHIVELOG MODE에서 NO ARCHIVELOG MODE로 전환하기 먼저, 위에서 setting 했던 INIT<SID>.ORA 파일에서 설정했던 부분을 (#)으로 주석처리 합니다. #LOG_ARCHIVE_START = TRUE #LOG_ARCHIVE_DEST = "C:\oracle\ora92\database\archive" #LOG_ARCHIVE_FORMAT = %S.ARC -- 데이터베이스 종료 SQL> SHUTDOWN IMMEDIATE -- 데이터베이스 인스턴스를 mount SQL> STARTUP MOUNT pfile=C:\oracle\ora92\database\INITORA9I.ORA -- 데이터베이스를 no archive log mode로 전환. SQL> ALTER DATABASE NOARCHIVELOG; -- database open SQL> ALTER DATABASE OPEN; -- 아카이브 로그 모드 상태 확인 SQL> ARCHIVE LOG LIST 데이터베이스 로그 모드 아카이브 모드가 아님 자동 아카이브 사용 안함 아카이브 대상 C:\oracle\ora92\RDBMS 가장 오래된 온라인 로그 순서 17 현재 로그 순서 19 |
◈ SPFILE(서버 파라미터 파일)을 수정하여 데이타베이스를 archivelog mode로 설정하기 Oracle9i 이상의 경우 서버 파라미터 파일을 사용 할 경우 아래와 같은 과정을 거쳐서 아카이브 로그모드로 변경해야 합니다. 1) 파라미터 설정 -- sqlplus 실행 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='%S.ARC' SCOPE=SPFILE; 2) DB Shutdown SQL>SHUTDOWN IMMEDIATE 3) Mount 상태로 Startup SQL> startup mount 4) 아카이브 로그 모드 활성화 SQL>ALTER DATABASE ARCHIVELOG; 5) 데이타베이스 오픈 SQL> ALTER DATABASE OPEN; 6) 아카이브 로그 모드가 정상적으로 설정되어 있는지 확인한다. SQL> archive log list; 데이터베이스 로그 모드 아카이브 모드 자동 아카이브 사용 아카이브 대상 C:\oracle\ora92\database\archive 가장 오래된 온라인 로그 순서 17 아카이브할 다음 로그 19 현재 로그 순서 19 |