Blog | Tag | Local | Guest | Login | Write |  RSS
Oracle의 특징
오라클(Oracle)은 Database/ERP와 이에 대한 솔루션을 제공하는 회사의 이름이기도 하면서 Oracle DBMS를 지칭하는 말로도 쓰인다. Oracle은 관계형 데이터베이스 모델에 기초하여 만들어졌으며 이후 객체관계형 모델을 지원하게 되었으며, Unix, Linux, Windows 등의 대부분의 OS를 지원하고 있다.

오라클의 특징
  • 클라이언트 / 서버 환경 (분산 처리)
    • 오라클은 현재 사용하는 컴퓨터 시스템이나 네트워크를 최대한 활용할 수 있도록 데이터베이스 서버와 클라이언트 응용 프로그램에 처리를 분산시킵니다. 즉, 데이터베이스 관리 시스템을 실행하는 컴퓨터는 데이터베이스 서버 역할을 담당하고 데이터베이스 응용 프로그램을 실행하는 워크스테이션은 데이터 해석과 표시를 담당합니다.
  • 대규모 데이터베이스와 영역 관리
    • 오라클은 테라바이트 크기의 데이터를 저장할 수 있는 대규모 데이터베이스를 지원합니다. 고가의 하드웨어 장치를 효율적으로 활용할 수 있도록 영역 사용을 완벽하게 제어합니다.
  • 다중 동시 데이터베이스 사용자
    • 오라클은 여러 사용자가 동일한 데이터에서 작동하는 다양한 데이터베이스 응용 프로그램을 실행하도록 지원하여 데이터 경합을 최소화하고 데이터 동시성을 보장합니다.
    • 데이터 경합 : 데이터 경합은 데이터 경쟁 즉, row level locking을 의미합니다. row level locking이란 어떤 사용자가 실행하고 있는 DML문에 의해 변경이 진행 중인 행에 발생하는 것으로 Row-level lock는 변경이 진행중인 행이 완료될 때까지 보호됩니다. 즉, 한 사용자가 데이터를 변경하고자 하여 그 데이터에 접근해서 변경을 시도를 하게 되면 그 데이터는 lock에 걸리게 됩니다. 그 때, rollback segment라는 객체에 Before image와 after image에 데이터를 기록하고 commit하면 둘 다 프리상태로 만들게 욉니다. commit 전이라면 타 사용자는 before image 영역에 접근하여 사용하고 commit 후라면 after image 영역으로 접근이 되는 것입니다.
    • 데이터 동시성 : 다수의 사용자가 동시에 데이터에 접근할 수 있어야한다는 의미입니다. 그렇다면 여기서 데이터의 일관성이 문제가 되겠죠? 데이터의 일관성이란, 각각의 사용자가 자신의 트랜잭션이나 다른 사람의 트랜잭션에 의해 변경된 내용을 포함하여 일관된 값을 본다라는 의미입니다. 만약 다수의 사용자가 데이터베이스에 동시에 접근하게 될 경우, 각각의 사용자가 다른 데이터에 접근을 한다면 문제가 없겠지만, 같은 데이터에 접근을 한다면 잘못된 데이터의 변경을 막기 위해선 반드시 어떤 제어를 해주어야 합니다. 그것을 병행 제어 (Concurrency control)이라 합니다. 병행제어 알고리즘에 대해서는 다음에 자세히 설명하도록 하겠습니다.
  • 접속성
    • 오라클 소프트웨어는 서로 다른 유형의 컴퓨터와 운영체제가 네트워크를 통해 정보를 공유하도록 합니다.
  • 고성능 트랜잭션 처리
    • 오라클은 전체 시스템의 성능을 높게 유지하면서 고 성능 트랜잭션 처리를 제공하므로 데이터베이스 사용자들은 느린 처리 속도로 고생하지 않아도 됩니다.
    • 트랜잭션 : 논리적 작업 단위로 결합되는 작업 그룹으로 트랜잭션은 시스템에서 발생할 수 있는 오류에 관계없이 트랜잭션의 각 동작에 대해 일관성과 무결성을 제어하고 유지관리하는데 사용됩니다.
      • 로컬 트랜잭션 : 단위 시스템에서 처리되는 트랜잭션으로 트랜잭션에 대한 관리를 DBMS에서 담당한다.
      • 분산 트랜잭션: 여러 개의 시스템에서 처리되는 트랜잭션이다. 여러 DBMS에 걸친 트랜잭션을 담당하는 경우도 많아서 주로 미들웨어에서 트랜잭션 관리를 담당한다.
  • 고 가용성
    • 일부 사이트에서는 데이타베이스 처리 능력을 떨어뜨리는 장애 시간없이 하루 24시간 오라클을 작동시킵니다. 데이터베이스 백업같은 정상적인 시스템 기능이나 부분적인 컴퓨터 시스템 장애는 데이터베이스 사용에 영향을 주지 않습니다.
  • 가용성 제어
    • Oracle만이 가지고 있는 특징으로 데이터베이스 레벨과 하위 데이터베이스 레벨에서 데이터 가용성을 선택적으로 제어할 수 있습니다. 가용성 제어는 RAC(Real Application Clusters)와 관련있는 특징입니다. 잠시 RAC에 대해 알아보도록 하겠습니다.
============================== RAC ==============================
RAC의 정의
  • Oracle Real Application Clusters는 동일 데이터베이스를 여러 인스턴스에서 동시에 액세스할 수 있다. 
  • 시스템 확장이 가능하기 때문에 결함 허용, 로드 밸런싱 및 향상된 성능을 제공한다. 
  • 모든 노드가 동일한 데이터베이스를 엑세스하기 때문에 한 인스턴스에서 장애가 발생해도 데이터베이스에 대한 엑세스가 손실되지 않는다. 
  • 오라클 RAC의 핵심은 공유 디스크 하위 시스템이다.

RAC의 장점
  • 확장성 (자원(CPU/메모리/디스크 등)이 부족했을 경우에 대처할 수 있는 구조)
    • 새로운 업무가 지속적으로 추가되어 서버의 용량이 부족해지는 경우가 발생된다면 클러스터 상에 새로운 서버를 유연하게 확장할 수 있고, 서버를 확장하더라도 문제가 발생하지 않는다.
  • 고가용성 (장애가 발생해도 시스템 전체가 운용될 수 있는 구조)
    • 하나의 서버로 구성된 데이터베이스일 경우 데이터베이스 장애가 발생할 경우 복구될때까지 서비스 이용이 불가능했으나, RAC의 경우에는 하나의 서버에 장애가 발생하더라도, 나머지 서버에서 지속적인 서비스를 제공할 수 있어 서비스의 중지가 발생하지 않는다.

RAC 구조
  • 물리적인 하나의 데이터베이스를 여러 대의 서버가 공유하여 사용하는 것
  • 모든 서버들은 같은 데이터를 사용하게 되어 논리적으로는 하나의 시스템을 이용하는 것
  •  Cache Fusion 기능을 위해 노드간 high-speed interconnect network는 필수
=================================================================================-
  • 개방성과 산업표준
    • 오라클은 데이터액세스 언어, 운영체제, 사용자 인터페이스 및 네트워크 통신 프로토콜 등에 대한 산업 표준을 준수하여 고객의 투자를 보호하는 열린 시스템이 되도록 합니다. 또한 오라클은 시스템 관리를 위해 SNMP (Simple Network Management Protocol) 표준을 지원하여 관리자가 단일관리 인터페이스로 여러 다른 기종의 시스템을 관리할 수 있도록 합니다.
    • SNMP : 서로 통신할 수 있는 채널로 시스템의 상태를 알 수 있게 해주는 프로토콜
  • 보안관리
    • 인증되지 않은 데이터베이스 액세스와 사용을 방지하기 위해 오라클은 비상 안전 보안 기능을 사용하여 데이터 액세스를 제한하고 모니터합니다. 이 기능으로 가장 복잡한 데이터 액세스 설계까지도 쉽게 관리할 수 있습니다. 오라클에서는 스키마, 업무, 테이블 단위로 privillege가 주어집니다.
  • 데이터베이스 무결성 강제 수행
    • 허용할 수 있는 데이터의 기준이 되는 업무규칙인 데이터 무결성을 강제로 수행합니다. 이것은 많은 데이터베이스 응용 프로그램에서 데이터 확인을 위한 코딩과 관리에 드는 비용을 줄일 수 있습니다.
    • 데이터 무결성 : 데이터의 입력이나 변경 등을 제한하여 데이터의 안전성을 저해하는 요소를 막는 것을 의미한다.
  • 이식성
    • 오라클 소프트웨어는 다른 운영 체제에서도 작동합니다. 오라클로 개발된 응용 프로그램이라도 거의 수정하지 않고 다른 운영 체제에서 사용할 수 있습니다.
  • 호환성
    • 오라클 소프트웨어는 대부분의 산업 표준 운영 체제를 포함하여 산업 표준 시스템과 호환할 수 있습니다. 오라클로 개발된 응용 프로그램은 모든 시스템에서 거의 수정하지 않고도 효과적으로 사용할 수 있습니다.
  •  분산 시스템
    • 분산 네트워크 환경에서 오라클은 물리적으로 서로 다른 컴퓨터에 있는 데이터를 네트워크 상의 모든 사용자가 액세스할 수 있는 하나의 논리적 데이터베이스로 결합합니다. 분산 시스템은 비 분산 시스템과 동일하게 사용자 투명성과 데이터 일관성을 유지하면서 로컬 데이터베이스 관리의 장점을 지닙니다. 또한 오라클은 사용자가 오라클이 아닌 데이터베이스의 데이터를 투명하게 액세스할 수 있도록 다른 기종에 대한 옵션을 제공합니다.


오라클 아키텍처