Operating System/ORACLE
Oracle 11g 아카이브 로그 모드(archive log mode) 변경
Growing DBA
2023. 7. 14. 15:20
728x90
반응형
* 아카이브 로그 모드
- 오라클DB에 접속하여 DML이나 DDL 등의 명령어로 작업을 수행하면 모든 작업의 기롤이 리두로그파일에 저장된다.
작업의 양이 많아지면 리두로그파일에 기록하는 내용이 많아지므로 리두로그파일을 늘려야 하는 일이 발생한다.
그런데 오라클 리두로그파일은 계속 증가하는 것이 아닌 몇 개의 리두로그파일을 만들어 놓고 번갈아가면서 기록하는 구조이다. 이렇게 번갈아가면서 기록을 하게 되면 새로운 작업의 내용이 예전의 작업내용을 덮어쓰므로 예전의 작업한 내용을 잃게 된다.
이러한 단점을 해결하기 위한 방법으로 리두로그파일의 내용을 다른 디렉토리에 자동으로 복사해서 저장하도록 운영하는 방법을 아카이브 로그 모드라고 한다.
* 아카이브 로그 모드 설정
1. 현재 로그 모드 확인
[oracle@OL7 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 토 4월 8 00:56:41 2023
Copyright (c) 1982, 2011, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> archive log list
데이터베이스 로그 모드 아카이브 모드가 아님
자동 아카이브 사용 안함으로 설정됨
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서 28
현재 로그 순서 30
2. spfile 확인
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
.4/db_1/dbs/spfileDB11G.ora
3. instance 확인
SQL> select status from v$instance;
STATUS
------------
OPEN
4. 아카이브 로그 저장 경로 확인
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
5. 아카이브 모드 활성화
SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup mount
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 826753024 bytes
Fixed Size 2232880 bytes
Variable Size 557845968 bytes
Database Buffers 260046848 bytes
Redo Buffers 6627328 bytes
데이터베이스가 마운트되었습니다.
SQL> alter database archivelog;
데이타베이스가 변경되었습니다.
SQL> alter database open;
데이타베이스가 변경되었습니다.
SQL> archive log list
데이터베이스 로그 모드 아카이브 모드
자동 아카이브 사용으로 설정됨
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서 29
아카이브할 다음 로그 31
현재 로그 순서 31
6. 아카이브 파일 생성 확인
SQL> alter system switch logfile;
시스템이 변경되었습니다.
* archive log 파일의 경우 fullbackup 후 backup 이전의 archive log file은 필요없으므로 삭제
(삭제하지 않고 남겨둘 시 디스크가 full 발생)
7. 아카이브 모드 비활성화
SQL> shutdown immediate
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup mount
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 826753024 bytes
Fixed Size 2232880 bytes
Variable Size 557845968 bytes
Database Buffers 260046848 bytes
Redo Buffers 6627328 bytes
데이터베이스가 마운트되었습니다.
SQL> alter database noarchivelog;
데이타베이스가 변경되었습니다.
SQL> alter database open;
데이타베이스가 변경되었습니다.
SQL> archive log list
데이터베이스 로그 모드 아카이브 모드가 아님
자동 아카이브 사용 안함으로 설정됨
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 로그 순서 30
현재 로그 순서 32
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
728x90
반응형