본문 바로가기
자격증/SQLP(SQL 전문가)

[SQLP, SQL 전문가] 오늘부터 SQL 전문가 공부 시작! 20221126

by 고기 2022. 11. 26.

이게 대체 어떻게 된거지...?

 

https://1545154.tistory.com/74

 

[SQLP, SQL 전문가] 오늘부터 SQL 전문가 공부 시작!

졸업하자마자 입사한지 반 년, 익숙하지 않은 출퇴근의 반복에 신입이 뭐 대단한거 한다고 녹초가 되는 날의 연속이었다. 그래도 생각보다 여유가 있을 줄 알았는데 딱히 그런것도 아니었다. 게

1545154.tistory.com

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

큰 결심하고나서 2달 지났는데 공부 하나도 안했네

하루 한 문제는 무슨. 이게 회사퇴근하고 프로젝트랑 병행해서 공부할려니까 아예 안되네.

 

4당 5락이라는 말이 있는데 이건 진짜 학생때나 가능한거야;;

내가 진짜로 장난안하고 군대가기전까지만 해도 가능했어...

내가 운동을 안해서 체력이 없어 그런지 몰라도 전에는 가능했는데... 이제 안돼...

퇴근하고 의자에 앉으면 나른하고 졸리면서 딱히 게임을 하는것도 아닌데,

그렇다고 공부를 하는것도 아니고 아무것도 하기싫고 그냥 눕고싶은 기분.

뭐, 직장인들이라면 다들 공감하겠지?

 

원래는 문제풀이와 해설과 개념을 같이 정리하려고 했는데 문제가 생길 것 같아서 말이지.

내가 그런걸 할 수 있는 능력이 있느냐?는 것과 그런걸 정리할 시간이 있는가?

두 개의 문제점을 두고 그냥 책을 풀기만 해도 시간이 부족할텐데 뭐하러 굳이굳이 블로그에 올리려고 하는건지

굉장히 많은 고민을 했으나,,,

 

사실 남에게 설명을 할 수 있다는건 어느정도 내용을 이해한 상태라는 말이고,

그것을 기록으로 남긴다면 나중에 보면 더 잘 기억이 나지 않겠냐는 생각이 들기는 한다...

물론 할수있는지는 둘째치고.

 

아무튼 오늘 공부한 내용을 정리해보자.

 


오라클에서는 디스크에 저장된 데이터 집합(DataFile, Redo Log File, Control File 등)을 "ㅇㅇㅇ"라고 부른다.

답 -> 더보기 클릭

더보기

오라클에서는 물리적인 OS File들의 집합을 데이터베이스(Database)라고 부른다.

(DBMS마다 정의가 다름)

 

알아두면 좋은 내용
1) Datafile : Table의 데이터가 물리적으로 저장되는 공간
  - Datafile 1개의 최대 용량 32GB
  - 하나의 table space는 1개 이상의 datafile로 구성되어 있음
  - (table space는 Database table이 저장되는 논리적인 공간임)
2) Redo Log File : 데이터베이스의 모든 변경사항을 기록하는 파일
  - 장애 발생 시 반드시 필요한 파일 -> 복사본을 가짐
  - 복사본(멤버)의 집합을 Redo Log Group이라고 함
  - 오라클에서는 최소 Redo Log Group을 2개, 최소 멤버 개수를 1개로 정의함
  - 본인 오라클에서 Redo Log Group 확인하기 -> Redo Log Group 조회/생성/삭제 실습 쿼리 확인
3) Control File : 오라클 서버를 운영하는 데 필수적인 정보들이 저장된 파일
  - 데이터베이스의 동기화 정보를 바이너리 형태로 저장
  - 데이터베이스의 물리적 구조 정보를 저장함
  - 인스턴스가 mount 상태일 때 파라미터 파일에 적혀있는 위치대로 control file을 읽음
  - mount 상태부터 control file을 수정할 수 있음
  - control file에 손상이 생기면 mount 이상의 상태로 갈 수 없으며 완전한 복구도 불가능해짐
  - 장애가 발생하더라도 복구가능하도록 복사본 만들어서 분산시켜 저장해야함

 

그림1. Redo Log Group
1. Redo Log Group.sql
0.00MB

 

SGA 공유 메모리 영역과 이를 액세스 하는 프로세스 집합을 합쳐서 "ㅇㅇㅇ" 라고 부른다.

답 -> 더보기 클릭

더보기

SGA 공유 메모리 영역과 이를 액세스 하는 프로세스 집합을 합쳐서 인스턴스(Instance)라고 부른다.

기본적으로 하나의 인스턴스가 하나의 데이터베이스만 액세스하거나 일부 환경에서 여러 인스턴스가 하나의 데이터베이스를 액세스할 수 있지만, 하나의 인스턴스가 여러개의 데이터베이스를 액세스할 수는 없다.

 

알아두면 좋은 내용
System Global Area(SGA, 시스템 공유 영역)
  - 오라클이 시스템으로부터 자원을 할당받아 관리하는 오라클 시스템 영역
  - 데이터베이스 instance가 시작되면 시스템으로부터 자원을 할당받음
  - 데이터베이스 instance가 종료되면 할당받은 자원을 시스템에 반환함
Program Global Area(PGA)
  - 프로세스에 대한 데이터와 제어정보가 포함된 비 공유 메모리 영역
  - 서버 프로세스가 시작될 때 생성
  - 프로세스가 종료될 때 해제
  - 데이터베이스에 접속하는 모든 사용자에게 할당된 각각의 서버 프로세스가 독자적으로 사용
  - SQL들의 작업공간 -> 주로 정렬 작업을 할 때 사용됨
  - PGA 크기 내에서 정렬이 일어나면 메모리 내에서 정렬되는 것이므로 수행속도가 빠름
  - PGA 크기를 초과하면 디스크에서 정렬이 일어나는 것이므로 수행속도가 느려짐

 

오라클 백그라운드 프로세스 중 장애가 발생한 시스템을 재기동할 때 인스턴스 복구를 수행하고, 임시 세그먼트와 익스텐트를 모니터링하는 것은?

답 -> 더보기 클릭

더보기

System Monitor(SMON)

 

오라클 백그라운드 프로세스 중 이상이 생긴 프로세스가 사용하던 리소스를 복구하는 것은?

답 -> 더보기 클릭

더보기

Process Monitor(PMON)

 

오라클 백그라운드 프로세스 중 버퍼캐시에 있는 Dirty 버퍼를 데이터파일에 기록하는 것은?

답 -> 더보기 클릭

더보기

Database Writers(DBWn)

 

오라클 백그라운드 프로세스 중 로그 버퍼 엔트리에 로그를 기록하는 것은?

답 -> 더보기 클릭

더보기

Log Writer(LGWR)

 

오라클 백그라운드 프로세스 중 변경된 데이터베이스 버퍼를 디스크 내의 파일로 저장하는 것은?

답 -> 더보기 클릭

더보기

Check Point(CKPT)

 

알아두면 좋은 내용
오라클 필수 프로세스
  - 아래에서 설명할 5개 프로세스는 오라클 데이터베이스가 시작되기 위해 꼭 필요함
  - 데이터베이스가 종료되면 해당 프로세스들도 모두 종료됨
System Monitor(SMON)
  - 오라클 인스턴스를 관리하는 프로세스
  - 오라클 인스턴스가 실패했을 경우 해당 인스턴스를 복구함
  - 데이터 파일의 빈 공간을 연결하여 하나의 빈 공간으로 만듦
  - 더 이상 사용하지 않는 임시 블록 세그먼트들을 재사용 할 수 있도록 함
Process Monitor(PMON)
  - 서버에서 사용되는 각 프로세스들을 감시하는 프로세스
  - 비정상 종료된 데이터베이스의 접속을 정리함
  - 정상적으로 작동하지 않는 프로세스들을 감시하여 종료시킴
  - 비정상적으로 종료된 프로세스들에게 할당된 SGA 리소스를 재사용가능하게 함
  - 커밋되지 않은 트랜잭션을 롤백시킴
Database Writer(DBWn)
  - Database buffer cache 내의 버퍼가 변경될 때, dirty라고 표시됨
  - DBWn의 주요 업무는 Database buffer cache를 clean하게 유지하는 것
  - buffer cache에 있는 수정된 버퍼의 내용을 데이터 파일에 기록함
    -> Database buffer cache로부터 데이터파일로 dirty buffer를 옮겨 적음
    -> 이것으로 Database buffer cache 내에 충분한 수의 free buffer가 사용할 수 있게 됨
  - DBWn이 발생하는 경우
    ->  dirty buffer 수가 한계치에 도달했을 때
    -> 시간초과, 3초동안 작업이 중단될 때(Time out)
    -> Checkpoint가 발생하면 Log Writer process가 DBWR에 신호를 보냄
    -> Tablespace가 offline이거나 Read only로 변경되었을 때
    -> Table을 제거(drop / truncate)했을 때
    -> Tablespace BEGIN BACKUP 명령을 실행했을 떄
Log Writer process(LGWR)
  - Database buffer cache에서 발생한 모든 변화를 기록함
    -> Redo Log Buffer의 내용을 디스크(Redo Log File)에 기록함
  - LGWR이 Redo Log File에 기록하는 경우
    -> 3초마다
    -> Database commit이 수행되었을 떄, commit된 record를 기록
    -> Redo Log Buffer가 1/3이상 찼을 경우
    -> DBWR process가 변경된 buffer들을 디스크에 기록할 때
Checkpoint Process(CKPT)
  - Datafile header와 Control file 정보 갱신을 보장
  - Database buffer cache와 Redo Log Buffer 내용이 파일에 저장되는 것을 보장
  - 빈번한 checkpoint
    -> 인스턴스 장애로부터 복구하는데 필요한 시간을 단축시킬 수 있음
    -> 성능상의 비용이 증가

 

뭐지... 몇 문제 풀지도 않았는데 이거 시간 너무 녹네;;

푼 문제들은 전부 기록해둘려고 했는데 안되겠다 ㅋㅋㅋ

댓글