728x90

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 

 

728x90
728x90

부모 프로세스

다른 프로세스를 생성할 수 있는 프로세스

자식 프로세스

부모 프로세스로부터 만들어지는 프로세스

정상적으로 자식프로세스 종료 후 부모 프로세스 종료

데몬 프로세스

일반적으로 사용자가 실행시키지 않고 커널에 의해 구동, 백그라운드로 동작

특정 서비스를 제공하기 위해 구동

파일 이름 끝에 ‘d’를 붙여서 사용하는 것이 일반적

‘Window’의 서비스와 같은 존재

고아 프로세스

일반적으로 자식 프로세스는 종료되면 부모 프로세스로 되돌아 가는데 부모 프로세스가 먼저 종료된 경우에 자식 프로세스를 고아 프로세스라고 한다.

고아 프로세스는 init 프로세스가 처리해준다.

좀비 프로세스

정상적으로 프로세스를 종료했지만 자원을 반납하지 않은 상태로 계속 남아있는 상태(자원을 점유한 상태에서 동작하지 않는 프로세스)

프로세스 관련 명령어

ps : 윈도우의 작업관리자와 비슷하다.

  • -ef : 좀 더 상세하게 나타내주고 내가 실행하지않은 운영체제가 자동으로 실행해준 프로세스도 나온다.
  • -e : 시스템 상의 모든 프로세스 정보를 출력
  • -f : 상세한 정보를 출력
  • UID : 프로세스 소유자 아이디
  • PID : 프로세스 아이디
  • PPID : 부모 프로세스 아이디
  • C : 스케줄링을 위한 CPU 사용량, 별도 의미 없는 필드
  • STIME : 프로세스 시작 시간
  • TTY : 장치 번호
  • TIME : 프로세스에 대한 누적 실행 시간
  • CMD : 명령 옵션 + 아규먼트

pstree : 프로세스 부모 자식 관계를 트리 형태로 나타난다.

pgrep : PID만 뽑을 수 있다.

프로세스 제어 명령어

시그널 번호 (시그널은 프로세스를 제어하기 위해서 프로세스에게 전달하는 신호값)

1 SIGHUP(Sig Hang Up)
프로세스 종료 없이 프로그램을 새로 초기화
2 SIGINT
Interrupt
Ctrl + c 명령어 실행 중 중단 명령어 
9 SIGKILL
kill 무시할 수 없는 종료(Strongest)
15 SIGTERM
terminate
무시할 수 있는 종료

kill : PID로 프로세스를 제어

pkill : 프로세스 이름으로 제어 :: 이름에 해당하는 프로세스 모두 down가능

아카이브

  • 아카이브는 여러가지 목적이 있지만 전통적으로 사용된 용도는 파일의 저장용도로 사용되었다.
  • 테이프 장치에 파일을 보관하여 백업하거나 여러 파일을 하나의 파일로 묶어서 보관
  • 현재는 파일을 저장할 때뿐 아니라 단순히 여러 파일을 하나의 파일로 묶을 때도 사용
  • 일반적으로 프로그램을 tar 아카이브 후 gzip 압축한 형태로 배포하는 경우가 많다.

아카이브 관련 명령어

tar [기능] [아카이브 파일] [묶을 파일 1] [묶을 파일2] [묶을 파일3] ….

기능

  • c : 새로운 아카이브 파일을 생성
  • x : 아카이브 파일에서 여러 파일을 해제
  • t : 아카이브 파일에서 안의 내용을 조회
  • v : verbose, 명령어 수행과정을 자세히 출력
  • f : 아카이브 장치 지정(파일 또는 백업 장치를 지정)

아카이브 생성

tar cvf fruits.tar banana apple kiwi

아카이브 해제

tar xvf fruits.tar

압축

  압축 해제
zip zip [압축 파일 이름] [압축 파일 이름] … unzip [압축 파일 이름]
gzip gzip [압축 파일 이름] gunzip [압축 파일 이름]
bzip2 bzip2 [압축 파일 이름] bunzip2 [압축 파일 이름]

tar로 묶은 파일을 gzip으로 압축했을 때 한번에 풀려면 tar zxvf [파일 이름]

728x90

+ Recent posts