Reco, 아카이버 프로세스

망구씨·2023년 9월 19일
0

오라클 DB 공부하기

목록 보기
6/10

Reco(recovery process)

RECO(Oracle 리커버러 프로세스)는 인스턴스를 시작할 때 생성되는 오라클 백그라운드 프로세스입니다. 분산 데이터베이스에서는 RECO가 분산 트랜잭션의 실패를 자동으로 해결합니다. 노드의 RECO 프로세스는 자동으로 미결된 분산 트랜잭션에 관여하는 다른 데이터베이스에 연결합니다.

RECO는 분산 트랜잭션을 위한 백그라운드 프로세스입니다. RECO 프로세스는 미결된 트랜잭션을 추적하고 해결하기 위해 2차 커밋을 관리합니다.

RECO는 오라클 인스턴스가 분산 트랜잭션 모드로 시작될 때 시작됩니다. 이 프로세스는 분산 데이터베이스 간에 모든 미결된 또는 보류 중인 트랜잭션을 복구하는 역할을 합니다.노드의 RECO 프로세스는 자동으로 미결된 분산 트랜잭션에 관여하는 다른 데이터베이스에 연결합니다. RECO 프로세스가 관련 데이터베이스 서버 간의 연결을 다시 설정하면, 자동으로 모든 미결된 트랜잭션을 해결하여 각 데이터베이스의 보류 중인 트랜잭션 테이블에서 해결된 미결 트랜잭션에 해당하는 행을 제거합니다.

✔️ 분산 데이터베이스 구성에 사용
✔️ In-Doubt 분산 트랜잭션과 관련된 다른 데이터베이스에 자동으로 연결
✔️ 모든 In-Doubt 트랜잭션을 자동으로 해결
✔️ In-Doubt 트랜잭션에 해당하는 모든 행 제거

❓ 분산 데이터베이스 구성이란

여러 개의 데이터베이스나 서비스 간에 수행되는 하나의 트랜잭션입니다. 
분산 트랜잭션은 다중 데이터베이스 시스템 또는 서비스 간에 데이터 일관성을 유지하고, 
트랜잭션의 안전성과 원자성을 보장하기 위해 중요한 역할을 합니다. 
이러한 분산 트랜잭션은 금융 기관, 전자 상거래, 은행 업무 및 다양한 분야에서 사용됩니다.

❓ In-Doubt 분산 트랜잭션이란

"In-doubt" 분산 트랜잭션은 분산 환경에서 실행 중인 트랜잭션 중 일부가 어떤 이유로 인해 
완료되지 않거나 결정되지 않은 상태를 나타냅니다. 
1. 분산 트랜잭션 중단 (비정상적 종료)
2. 2단계 커밋 프로토콜
3. 분산 환경에서의 일관성 유지 (참여자간 동일한 결과 없을때. 한명이 오류났을때)

❓ 2단계 커밋 프로토콜?

2단계 커밋 프로토콜은 분산 환경에서 여러 데이터베이스나 서비스 간에 트랜잭션을 안전하게 완료하기 위한 방법입니다. 투표로 커밋할지 롤백할지 결정.
한명이라도 롤백시 롤백수행
모든 참여자가 트랜잭션을 완료하거나 롤백하는 데 합의해야 하므로 데이터 일관성과 무결성을 보장합니다.

💡 DB링크를 사용해서 원격지의 db 테이블에 update를 하는 세션이 비정상적으로 종료가 되면, 원격지에서 update를 실행하는 서버 프로세서는 고아가 된다. 이 프로세서를 In-Doubt 트랜젝션 이라고 합니다. 이 프로세서를 자동으로 정리해주는 백그라운드 프로세서가 RECO입니다.
그런데 이 RECO가 CPU를 과도하게 사용하면서 시간이 오래 걸리도록 아무 조점이 안보이면 즉, 계속 고아가 된 프로세서가 LOCK을 잡고있으면 그 누구도 그 테이블의 그 행에 update를 할 수 없게됩니다.
: 이럴때는 sid, 시리얼넘버, sqid를 찾아 kill시키기


ARCn 아카이버 프로세스

💡 리두 로그 파일을 백업하는 프로세서
n이 붙는이유는 아카이버 프로세서를 여러개 띄울 수 있기때문!

✔️ 로그 스위치가 발생한 후에 리두 로그 파일을 지정된 기억 장치로 복사합니다.
✔️ 트랜잭션 리두 데이터를 수집하여 대기 대상으로 전송할 수 있습니다.
✔️ ARCn는 Online RedoLog File이 꽉차거나 DBA가 ALTER SYSTEM SWITCH LOGFILE의 명령어로 강제적으로 LOG SWITCH가 발생할 때 리두 로그 파일들을 지정된 저장장치로 저장하는 역할을 합니다.(LOG SWITCH : 리두 로그 그룹 간의 이동)

✔️ 아카이브 저장소는 일반적으로 다른 디스크 저장공간 이거나 테이프 장치 입니다.

ARCn는 데이타베이스의 리두 로그가 ARCHIVELOG 모드일 때 만 수행됩니다


✅ db설치 이후에 기본값은 arch프로세서가 활성화 되어있지 않은 데이터 베이스 모드입니다.
개발 dba가 아카이브 모드로 변경해줍니다.

아카이브 로그 리스트 하면 현재 데이터베이스가 아카이브, 노아카이브 볼수있다.
아카이브 모드로 설정할땐,ㄴ mount단계에서 해야하는데
마운트 모드로 전환하여 아카이브 모드 설정 작업을 수행하면 데이터베이스의 안정성과 일관성을 유지하면서 로그 아카이빙 및 백업 작업을 효율적으로 수행할 수 있습니다. 이것은 데이터베이스 관리 및 복구 작업의 중요한 부분입니다.

profile
Slow and steady wins the race.

0개의 댓글