티스토리 뷰
반응형
오라클의 기동과 정지
오라클의 기동/정지 개요
[창고 회사 오라클의 업무 시작 흐름]
1. 사원 출근
2. 창고에 관한 정보(관리 대장)를 조사
3. 창고를 대충 훑어본 뒤 문제 없을 시 창고를 열어 업무 시작
[창고 회사 오라클의 업무 종료 흐름]
1. 업무(SQL이나 트랜잭션)가 끝나는 것을 기다림 | 급할 때는 업무 처리 중지 가능
2. 작업장의 물건(캐시상의 데이터)을 창고(파일)에 정리 | 급할 때는 작업장의 물건들을 정리하지 않음
3. 사원이 퇴근(프로세스 종료)
오라클 기동 4가지 상태
오라클의 작업 흐름
- 퇴근 : 정지 상태
- 출근 : 백그라운드 프로세스의 생성과 공유메모리의 확보를 의미
- 관리대장 읽음 : 컨트롤 파일(DB의 구성정보가 적혀 있는 파일로서, DB 파일의 경로 확인 가능) 봄
- 업무 중 : SQL 및 데이터 처리 가능
인스턴스와 DB
- 인스턴스 : 백그라운드 프로세스 + 공유 메모리 | NOMOUNT 상태가 인스턴스를 기동한 상태
- 일반적으로 인스턴스와 DB는 1:1로 대응 즉, 인스턴스 기동 시 DB 기동했다는 것과 같은 의미
- RAC(클러스터링 기능)을 사용한 경우 인스턴스와 DB는 1:1로 대응하지 않음
- DB(1) : 인스턴스(N)
기동 처리의 흐름과 내부 동작
1. 기동 정지 상태에서 NOMOUNT로 전환
- 환경 변수 ORACLE_HOME과 ORACLE_SID를 토대로 초기화 파라미터 파일은 찾아서 읽음
- 읽어 온 파라미터를 토대로 공유 메모리를 확보하고 백그라운드 프로세스를 생성
2. NOMOUNT에서 MOUNT로 전환
- 관리대장을 읽는 것으로 초기화 파라미터 파일에 적혀있는 컨트롤 파일 위치를 확인 후 컨트롤 파일을 열어 내용을 읽어 옴.
- 이로 인해, 오라클은 리두 로그 파일이나 데이터 파일의 위치를 파악 할 수 있음.
3. MOUNT에서 OPEN으로 전환
- 데이터 파일을 열어 읽고 기록, 점검
순서로 보게되면, 초기화 파라미터 파일 열음 -> 컨트롤 파일 열음() -> 데이터 파일 열음
업무 종료에 해당하는 오라클의 정지
- 오라클의 정지는 기동 작업의 역순으로 DB를 닫은 후 인스턴스를 종료
- 인스턴스 종료는 공유 메모리를 반환하고 백그라운드 프로세스를 정지하는 것을 말함
- 기동 작업의 역순으로 진행하되 중간에 버퍼 캐시에 분산된 데이터를 정리하는 작업도 포함
shutdown의 옵션과 그 동작
- 옵션 없음 : 접속의 종료를 기다림 | 변경된 데이터를 데이터 파일에 기록함
- transactional : 트랜잭션이 끝나면 접속을 끊음 | 변경된 데이터를 데이터 파일에 기록함
- immediate : 접속 종료를 기다리지 않고, 커밋 안할 시 데이터 없어짐 | 변경된 데이터를 데이터 파일에 기록함
- abort : 접속 종료를 기다리지 않고, 커밋 안할 시 데이터 없어짐 | 변경된 데이터를 데이터 파일에 기록안함
[인스턴스 복구]
- abort는 데이터를 기록하지 않지만 인스턴스 복구가 일어남 | 리두 로그 파일의 데이터를 사용해서 복구
- 오라클이 비정상적으로 종료했을 때도 인스턴스 복구가 일어남
- 단, 파일에 관한 장애가 발생했을 경우에는 본격적인 복구가 일어남
정리
** 컨트롤 파일은 데이터 파일 등의 구성 정보가 들어있으므로, 데이터 파일의 추가/삭제, 리두 로그 파일에 관한 것을 변경했을 경우에는 컨트롤 파일을 백업해 두도록 하는 것이 좋음
[오라클 아키텍처 정리]
반응형
'DataBase' 카테고리의 다른 글
리두와 언두의 동작 (0) | 2019.12.09 |
---|---|
오라클의 대기와 락 (0) | 2019.12.09 |
오라클의 데이터 구조 (0) | 2019.12.09 |
커넥션과 서버 프로세스의 생성 (0) | 2019.12.06 |
SQL문 분석과 공유 풀 (0) | 2019.12.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring
- 빈 순환 참조
- 자바8
- java
- JPA
- java8
- 김영한
- 스프링부트
- 점층적 생성 패턴
- effectivejava
- 인프런
- mustache
- try catch finally
- ifPresent
- 정적팩터리메서드
- @Lazy
- 빌더 패턴
- jdk버전
- try with resources
- 팩토리 메소드 패턴
- springboot
- Effective Java
- 이펙티브 자바
- package-private
- flatMap
- junit
- 연관관계
- 생성자
- 복사 팩토리
- 이펙티브자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함