본문 바로가기

DB/Oracle

(52)
[Oracle] Chapter 3. 캐시와 공유메모리 3.1 어쨰서 캐시가 필요한 것인가? 디스크의 I/O 처리에 필요한 동작 1. 데이터가 디스크 안쪽에 있어 헤드를 안쪽으로 이동하고 안정될 때까지 기다림. 물론, 그 사이에도 디스크는 회전하고 있음 2. 디스크가 회전해 데이터가 존재하는 위치가 다가올떄까지 기다림 디스크는 액추에이터(톤암)를 움직여서 데이터를 읽고 쓴다. 오라클은 디스크에게 읽고 쓰는 것을 의뢰한다. 오라클은 여러 개의 프로세스로 구성되어 있고 SQL문을 동시에 처리할 수 있다. 또한 프로세스에는 각자의 역활이 있으며, SQL문을 빠르게 처리하기 위해 전념하는 서버 프로세스와 그것을 지원하는 백그라운드 프로세스가 존재한다. 1장에서 디스크가 동작하는 것은 매우 느리고 I/O 1회에 10~20밀리초 정도 걸린다고 설명했다. 그래서 오라클은..
[Oracle] Oracle Data Pump 와 SQL*Loader 1. Oracle이 제공하는 Oracle Data Pump 기술은 하나의 데이터베이스에서 다른 데이터베이스로의 Data 및 Meta Data의 빠른 이동을 가능하게 한다. 여러분이 Oracle 8i나 9i에서 그 이상의 버전으로 시스템을 Upgrade할 때 기존 데이터베이스의 데이터를 Oracle이 제공하는 Data Pump 기술을 이용하여 이전하실 수 있다. 2. SQL*Loader는 외부 File의 데이터를 데이터베이스의 테이블에 넣기 위해 Oracle이 제공하는 Utility이다. 다양한 파일 형태로 저장되어 있는 문서들을 데이터베이스에 저장한다는 점에서 이 기능은 의미가 있다. -------------------------------------------------------------------..
[Oracle] 원격 데이터베이스 Application Architecture Summary 1. Oracle Client/Server Architecture 환경에서 공유 데이터는 모든 컴퓨터가 아닌 서버에 저장된다. 따라서 Client Application은 SQL 문장을 이용하여 데이터베이스의 요구를 서버에 보낸다. 서버에 전달되면 SQL 문장은 서버에 의해 처리된다. 그리고 결과는 Client Application에 반환된다. 이때 네트워크 부하는 최소한으로 유지되어야 한다. 왜냐하면, 요청과 그 결과가 네트워크를 통해 전송되기 때문이다. 2. Oracle Client/Server Architecture 환경에서 필요하다면 Oracle은 여러분이 시스템이 성장하는 만큼 확장될 수 있다. 여러분은 네트워크를 통해 데이터베이스의 부하를 처리하기 위해 다수의 서버를 추가할 수 있..
[Oracle] Chapter 2. 오라클의 여러 프로세스 2.1 오라클의 역활 이미지 오라클을 '창고 업자'라고 가정하자. 창고 업자란 고객의 짐을 받아서 맡아주고, 짐을 창고에 보관하고, 고객의 요청에 따라 짐을 고객에게 돌려주는 업무를 하는 회사이다. 오라클을 포함한 DBMS(데이터베이스 관리 시스템)도 기본적인 동작은 '데이터를 짐처럼 맡아서 보관하고, 요구에 따라 데이터를 반환한다'라는 점에서 꽤 비슷하다. 칼럼 DBMS를 사용한 애플리케이션에 관해서 "시스템에서 데이트베이스는 어떤 식으로 사용되고 있는 걸까?" - '데이터베이스는 데이터를 보관하는 장소로 사용되고 있으며, 애플리케이션이 데이터를 보관하고(또는 변경하거나 꺼내고) 싶을때 사용한다'. 애플리케이션은 업무 처리나 화면 처리를 수행한다. 애플리케이션은 이러한 작업들을 처리하다가 '이 데이터가..
[Oracle] Chapter 1. I/O와 디스크의 관계 1.1 오라클을 이해하기 위한 필수 키워드 1. 병렬 처리를 가능케 하고 높은 처리량을 실현한다. 2. 응답 시간(response time)을 중시 한다. 3. 커밋(COMMIT)한 데이터는 지킨다. 오라클을 포함한 모든 DBMS(DataBase Management System, 데이터베이스 관리 시스템)의 내부 구조는 매우 복잡하다. DBMS가 복잡해지는 이유는 위에서 이야기한 세 가지 특성을 모두 충족시켜야 하기 떄문이다. 이 세 가지 특성은 상반된 성향이 있어서 동시에 모두 만족시키가 매우 어렵다. 예를 들어, '커밋(COMMIT)한 데이터는 지킨다'를 만족하기 위해 커밋하는 순간 데이터를 디스크에 기록하고 싶지만, 그렇게 하면 응답 시간이 나빠지게 된다. '병렬 처리를 가능케 하고 높은 처리량을 ..
[Oracle] Oracle Server 내부로의 여행_Server Architecture Summary 1. Oracle은 사용자의 요구를 DBMS에 전달하는 기능을 하는 인스턴스(Instance)와 데이터를 저장하고 데이터에 접근하는 대상인 데이터베이스(Database)로 구성되어 있다. 2. Oracle의 Instance는 정적으로(static) 메모리의 일정 공간을 차지하며 데이터베이스 사용자들에게 정보를 제공하는 SGA(System Global Area)와 데이터베이스 시스템의 운영을 담당하는 Oracle 프로세스로 구성된다. 3. Oracle 데이터베이스 서버는 자주 사용하는 데이터를 메모리에 오래 저장하여 I/O 효율을 높이고, 자주 사용하지 않는 데이터는 데이터 파일에 물리적으로 저장하여 한정된 SGA 영역을 효율적으로 관리한다. 이를 LRU(Least Recently Used)..
[Oracle] Oracle 응용 예제(OE) with XML 오늘날 인터넷에서 일어나는 모든 정보 교환의 표준으로서 XML의 역활은 점점 더 커지고 있다. XML은 이미 데이터 교환 양식으로서 애플리케이션 개발에 적용되고 있다. 이는 서로 다른 애플리케이션 간의 데이터 교환이 가능했기 떄문이다. XML을 데이터베이스에서 사용할 수 있고, 기존 애플리케이션에 XML 데이터를 통합할 수 있는 기능은 이제 필수적인 요구사항이다. 일반적으로 XML 문서 또한 하나의 데이터로 생각할 수 있다. 따라서 데이터를 데이터베이스에 저장하고 질의하는 기존의 방법은 XML 문서에도 적용되어야 한다. 또한 인덱싱(Indexing), 무결성(Integrity) 등도 XML 문서에 활용될 수 있어야 한다. Oracle이 지원하는 XML의 새로운 기능으로 XMLType이 있다. XMLTyp..
[ORACLE] DB dump 백업 및 복구 (export / emport ) & Linux 백업(Backup) 관련 tar, cpio, dump, restore, dd 명령어 백업(Backup) 백업은 자료를 보호하는 방법으로 데이터를 잃어버리거나, 사용하지 못하게 되는 경우를 대비해서 사전에 중요한 데이터를 주기적으로 다른 위치에 복사본을 만드는 것을 말한다. 백업의 종류에는 전체백업(Full backup)과 증분 백업(Incremental Backup) 등이 있다. 전체 백업은 말그대로 모든 데이터를 통으로 한 번에 백업하는 방법을 말한다. 모든 것을 백업하기 때문에 시간이 많이 걸리며, 복구시 확실히 복구할 수 있다는 장점이 있다. 증분 백업은 전체 백업한 이 후에 변경된 데이터만 백업하는 방식이다.변경 파일만 백업하기 때문에 빠른 시간 내에 백업이 가능하다. --------------------------------------------------------------..