기억의 DataBase

ORACLE의 기본구조3 본문

DB

ORACLE의 기본구조3

Zester; 2019. 1. 2. 20:04
  • ORACLE과 네트워크




  • 네트워크 7계층
L1(Physical) > port와 같은 실제 하드웨어 차원의 계층 (실제 물리적 라인)

L2(Link) > 인접한 Server간의 연결 >> LAN

L3(Network) > Link간에 라우터(주소 분류)를 해줌 >> IP

L4(Transport) > 도착한 패킷의 이상유무 확인 >> TCP

L5(Session) > 두 통신주체간의 확인

L6(Presentation) > 받은 Data를 OS에 맞게 번역(OS간 문자코드가 다름)

L7(Application) > 변역된 Data를 Application이 사용

※각 계층별 보안과 튜닝문제 존재

  • Lock


  1. Shared Lock(Read Lock) - Table

간략히 말해 Select에서 해당되는 내용으로 다수의 사용자가 동일한 Data를 볼 수 있도록,
읽기(Select) 상태에서는 Insert,Delete, Update를 할 수 없도록 Lock을 거는 것
(다수의 사용자가 접근하여 읽기는 가능)

  1. Exclusive Lock(Write Lock) - Column

Data의 일관성을 위해서Insert,Delete, Update를 하는 경우 Lock을 걸어,
한 사용자에게만 데이터 접근권한을 주고 다른 사용자가 Data 변경을 하지 못하게 하는 것

※DDL문의 경우 Auto Commit을 실행함(Exclusive Lock 상태)

※Exclusive Lock이 일정 비율이 넘어가면 Shared Lock으로 자동전환( 락 확대-Lock Escalation)

DIRTY READS : 하나의 트랜잭션이 또 다른 트랜잭션이 만든 커미트되지 않은
변화를 읽을 때 Dirty Read가 발생

LOST UPDATE : 한 업데이트는 다른 업데이트를 덮어 씀으로서 하나가 없어지도록하는 파괴적 충돌

  • Dead Lock
교착 상태로 인하여 상호 Transaction이 Waiting 상태에 빠짐
해결방법 : 1. 작업 순서를 정해줌
2. ORACLE의 경우 일정시간 DeadLock이 발생시 RollBack을 실행한다.

  • Latch
System Lock이라고 할 수 있는데, DBMS 내의 백서버내의 Process 간의 Lock을 통해 Data 일관성을 유지

  • MultiVersioning / SCN

MultiVersioning : SCN을 기준으로 요청을 순서있게 처리함

SCN( System Change Number) : Commit는 시스템 변화수(SCN)를 증가시킴
SCN을 트랜잭션의 유일한 식별자로 인식

ex ) 1 > 2 > 5 > 3???

★기준은 Commit

1)Commit이 된 경우 : Commit 상태의 Data를 줌
1)Commit이 안된 경우 : RollbackSegment의 Data를 줌

※ SnapShot Too Old 에러 메시지
>> RollbackSegment에 담긴 내용을 불러올 수 없을 만큼 지난 Data라 RollBack할 수 없다는 메시지
>> 해결방법 : RollbackSegment 공간 확장

  • 분산 DataBase >> 보안문제로 현실 사용↓
  1. DB link(URL) : 원격 DB를 Local처럼 사용
  1. DB 복제 : 성능을 위해 원격 DB를 Copy해서 가져옴

 

 

 

 


  • 페러렐 프로세싱 옵션(Oracle Parallel Processing Options)

가) 공유 메모리 시스템



나) 공유 디스크 시스템



※PC H/W + 업무파악(도메인) = 좋은 설계(Modeling) - 고정된 것이 없어서 편차가 큰 영역

'DB' 카테고리의 다른 글

PL(Procedural Language)/SQL  (0) 2019.01.17
SQL  (0) 2019.01.08
DW  (0) 2019.01.08
ORACLE의 기본구조2  (0) 2019.01.02
ORACLE의 기본구조  (0) 2018.12.31
Comments