오라클 겉핥기

싱하·2023년 8월 14일
0

oracle

목록 보기
2/6

기초가 탄탄해야 무너지지않는법.

DBA는 대부분 회사가 경력직을 채용한다.

하지만 나는 찐 뉴비 DBA
처음 들어왔을 때는 DB 조금 공부해본 졸업 한달남은 대학생.
TmaxTibero PoC프로젝트 90% + 전공과목 데이터베이스 10% = 무지성 DBA

아키텍처 기본요소 3가지

  1. User Process : SQL문을 서버에 요청하기 위해 생성되는 프로세스(Tool : Orange, JDBC, SQLDevelper 등)
  2. Oracle Server Process : UserProcess가 Listener를 통하여 접속하면 생기는 프로세스. 즉 User Process와 Oracle Server Process는 1:1로 매핑된다고 보면 됨.
  3. Oracle Backgroud Process : SMON, PMON, DBWR, CKPT, RECO, LGWR 등 매우 많은 프로세스. 업무 중에 가장 많이 치는것은 ps -ef | grep pmon으로 DB가 떠있는지 확인한다.


유저와 서버 커넥션을 보면 될거같다.

메모리 영역

메모리 영역은 크게 PGA와 SGA, 2가지로 나뉜다.

  • PGA(Program Global Area) : 유저가 연결된 Server Process에서 쓰이는 개별적인 메모리 영역
  • SGA(System Global Area) : 모든 Server Process가 접근할 수 있는 공유 메모리

SGA / Background Process / DB files

데이터 베이스 파일

  • DataFile : DB를 구성하는 파일이며, 대부분 사용자(schema)들의 데이터가 저장
  • ControlFile : 오라클 구조의 주요 변경사항들을 기록
  • RedoLogFile : DML과 같은 변경사항들을 실시간으로 기록

실행순서 풀이


1. User Process : PC에서 DB에 접속!
2. Listener : 비밀번호나 사용자 권한 체크 -> 이상있으면 여기서 차단됨
3. Server Process : 리스너에서 이상없었으면 서버와 통신할 서버프로세스 생성
4. User Process : 쿼리 질의
5. Server Process : SGA에 같은 SQL이 있는지 확인 -> 있으면 실행계획 재생성안하고 그대로 사용 -> Buffer Cache에 블록있는지 확인 -> 있으면 Datafile 까지 접근안하고 결과 리턴 / SGA에 없으면 -> DataFile 까지 가서 결과 리턴 -> IO발생


결론

DBA로 일하면서 처음에는 아키텍처를 몰라도 어찌저찌 해결을 할 수는 있었다.
점점 DB 이관, 새로운 DB 구축, 프로젝트 등을 하면서 기본을 모르니 한계점에 부딪히게 되었다.

수학을 할때도 마찬가지로 사칙연산을 잘 해야 미적분으로 넘어가듯,, 기초를 공부하고 넘어가야 나중에 큰 프로젝트할 때도 도움이 많이 되는것같다.

다른 업무에 MariaDB, Postgres도 쓰고 있으니 이것들의 아키텍쳐도 완전 심층적으로는 힘드니깐 요정도는 공부해봐야겠다!

아키텍처를 아는 것만으로도 나중에 큰 강점이 될 수도 있다는 생각을 하며 이만 포스팅 끝~

profile
끄적끄적...

2개의 댓글

comment-user-thumbnail
2023년 8월 14일

잘 봤습니다. 좋은 글 감사합니다.

1개의 답글

관련 채용 정보