ARCHIVE란?
아카이브는 오라클 디비의 데이터가 저장되는 스토리지의 물리적인 디스크가 깨지거나 고장 나는 문제가 발생했을 때 디비 전체 백업이 되어있다면 내가 원하는 시간으로 복구할 수 있는 걸 의미한다. 중요 시스템이라면 아카이브 로그가 꼭 필요하다. 리두 로그가 스위치 할 때 아카이브 로그 모드로 운영한다면 아카이브 로그가 파일 형태로 만들어지고 저장된다.
ARCHIVE Mode
ARCHIVELOG Mode
: B2C, OLTP
NOARCHIVELOG Mode
: B2B, OLAP, DW, 개발 DB
아카이브 로그 모드는 대용량의 빠른 스토리지가 필요하고 추가로 백업 서버가 있어야 운영하기 수월하다.
ARCHIVE 관리
1일 | 2일 | 3일 | 4일 | 5일 | 6일 | 7일 |
23G | 21G | 15G | 19G | 80G | 100G | 10G |
평균 약 38G여서 50G로 만들어야지라고 생각하면 큰일난다. 최대 크기의 20 ~ 30%로 설정한다. 약 120G ~ 130G
아카이브 로그 모드에서 생성된 아카이브 로그 파일은 하루가 지나면 백업 서버를 사용해서 아카이브 로그 백업 관리를 하는 게 가장 좋다.
ARCHIVELOG 파라미터
log_archive_dest는 아카이브 로그 파일이 저장되는 위치이고
log_archive_format는 아카이브 로그 파일의 이름을 설정할 수 있다.
fast_start_mttr_target는 데이터베이스의 인스턴스를 복구할 때 소유되는 시간을 제어할 수 있다. Default 값은 0이고 보통 300초로 설정한다.
파라미터 파일(spfile) 백업
cd /opt/oracle/oradata/dbconfig/XE
cp spfileXE.ora spfileXE.ora_20221118
-- 예전에 만들 백업 파라미터는 backup_parameter 폴더(디렉터리)로 이동
mv spfileXE.ora_20221118 backup_parameter
spfileXE.ora 파일은 중요한 파일이므로 작업 전에 꼭 백업을 해놓고 작업을 해야한다.
Archivelog 디렉터리 생성
cd /
mkdir /ARC_STR
chown oracle.dba /ARC_STR
Archive Log 파라미터 변경
ALTER SYSTEM SET log_archive_dest='/ARC_STR' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_format='ARCH_STR_%r_%t_%s.ARC' SCOPE=SPFILE;
ALTER SYSTEM SET FAST_START_MTTR_TARGET=300 SCOPE=SPFILE;
/ARC_STR 경로에 ARCH_STR_%r_%t_%s.ARC으로 파일을 저장한다. 또한 FAST_START_MTTR_TARGET 300으로 변경한다.
Archivelog Mode 변경
-- 현재 Archivelog Mode 확인
archive log list;
shutdown immediate;
startup mount;
select status from v$instance;
alter database archivelog;
alter database open;
select status from v$instance;
archive log list;
show parameter log_archive_dest
show parameter log_archive_format
show parameter FAST_START_MTTR_TARGET
-- Redo(리두) 스위치로 아카이브 로그 파일 생성
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
Linux Shell을 이용한 Archivelog File 자동 삭제 스크립트
cd /home/oracle
mkdir /home/oracle/oraclelog
cd /home/oracle/scripts
vi rman_del_arch.sh
#!/bin/bash
export ORACLE_HOME=/oracle/app/oracle/product/19.0.0.0/db_1
export ORACLE_SID=STR
export PATH=$ORACLE_HOME/bin:$PATH
export DATE=`date +%Y%m%d`
export HOSTNAME=`hostname`
rman log=/home/oracle/oraclelog/${HOSTNAME}_del_arch_${DATE}.log << EOF
connect target /
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'sysdate -1';
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;
exit
EOF
-- shell 스크립트 권한 변경
chmod 755 rman_del_arch.sh
--crontab 추가
crontab -e
00 05 * * * /home/oracle/scripts/rman_del_arch.sh
crontab에 등록한다. 매일매일 새벽 5시가 되면 저 Shell이 실행된다.
NOArchivelog Mode 변경
shutdown immediate;
startup mount;
select status from v$instance;
alter database noarchivelog;
alter database open;
select status from v$instance;
참고
https://www.youtube.com/watch?v=DpjiQhd5kNg&list=PLKaW9UT2TL3Lpqrh_lJ8PHyHpR7NgdrPP&index=6
'Oracle > Oracle DataBase 관리' 카테고리의 다른 글
오라클 Alert Log 분석 (0) | 2022.11.23 |
---|---|
오라클 삭제된 데이터 간단하게 복구하기(UNDO) (0) | 2022.11.22 |
오라클 리스너 Listener 시작과 종료 (0) | 2022.11.19 |
오라클 시작과 종료 (0) | 2022.11.19 |
오라클 REDO(리두) 관리 (0) | 2022.11.18 |