반응형

데이터베이스 14

[데이터베이스] RAID 정리

RAID RAID란? RAID(Redundant Array of Independent Disk 또는 Redundant Array of Inexpensive Disk) : 여러 개의 디스크를 묶어 하나의 디스크처럼 사용하는 기술 RAID 사용 시 기대 효과 대용량의 단일 볼륨을 사용하는 효과 디스크 I/O 병렬화로 인한 성능 향상(RAID 0, 5, 6 등) 데이터 복제로 인한 안정성 향상(RAID 1 등) RAID는 컴퓨터를 구성하는 여러 부품 중 기계적인 특성 때문에 상대적으로 속도가 많이 느린 하드디스크를 보완하기 위해 만든 기술이다. RAID를 구성하는 디스크의 개수가 같아도 구성 방식에 따라 성능 및 용량이 바뀐다. 이러한 구성 방식을 RAID Level 이라고 부른다. 각각의 RAID Level..

[데이터베이스] LVM(Logical Volume Manager) 정리

LVM(Logical Volume Manager) LVM이란 Logical Volume을 효율적이고 유연하게 관리하기 위한 커널의 한 부분이자 프로그램이다. 기존에는 파일시스템이 블록 장치에 직접 접근해서 읽고/쓰기를 했다면, LVM을 사용하면 파일 시스템이 LVM이 만든 가상의 블록 장치에 읽고/쓰기를 하게 된다. LVM 용어정리 및 설명 PV(Physical Volume) LVM에서 블록 장치를 사용하려면 PV로 초기화 해야 한다. 즉, 블록 장치 전체 또는 그 블록 장치를 이루고 있는 파티션들을 LVM에서 사용할 수 있게 변환한 것이다. 예를 들어, /dev/sda1, /dev/sda2들을 LVM으로 쓰기 위해 PV라는 형식으로 변환한 것이다. PV는 일정한 크기의 PE(Physical Extent..

데이터베이스((데이터베이스(DB) - 트랜잭션(Transaction))

* 트랜잭션(Transaction) * 트랜잭션이란?: 복수 쿼리를 한 단위로 묶은 것. 갱신은 단일 쿼리만으로 구성된 것이 아니고 복수 쿼리를 연속적으로 수행하는 경우가 대부분이다. 또한, 갱신 전의 데이터로 SELECT를 사용할 때 이를 포함해 복수 쿼리를 일관된 형태의 한 덩어리로 다뤄야 한다. * ACID 특성 1) Atomicity(원자성): 원자성이란 데이터의 변경(INSERT/DELETE/UPDATE)을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하는 구조이다. 예를 들어, 서울에서 부산으로 가는 기차를 예매하는 과정이 다음과 같다고 하자.(1) 서울 -> 부산행 좌석을 선택한다.(2) 해당 좌석을 예매한다.(3) 대금을 지급한다. -> 위의 절차가 모두 잘 진행되면 트..

데이터베이스(데이터베이스(DB)의-관계형 데이터베이스의 계층)

* 관계형 데이터베이스의 계층 * 스키마 : 데이터베이스에서 '폴더(디렉터리)'에 해당하는 것이 '스키마'이다. ('틀'이라는 의미이다)테이블은 실제로 몇 개의 스키마 속에 저장되는 형식을 취한다. 스키마도 폴더처럼 사용자가 자유롭게 만들 수 있어서 용도별로 나누거나 사용자의 접근을 제한하는 등의 권한 관리를 수행하는 것도 가능하다. * 데이터베이스: 스키마의 상위에는 또 하나의 계층으로 '데이터베이스'가 있다. '데이터베이스는 데이터를 관리하는 기능의 집합체'라고 생각할 수 있지만실은 데이터베이스에는 '계층'을 표시하는 의미도 있다.(혼동될 소지가 있음) * 인스턴스: 데이터베이스보다 한 층 더 위에 있는 '인스턴스'란 개념이 있다. 물리적 개념으로DBMS가 동작할 때의 단위이다. 그래서 OS 입장에서..

데이터베이스(데이터베이스(DB)의 아키텍처-Shared Disk & Shared Nothing)

* 데이터베이스의 아키텍처(Shared Disk & Shared Nothing) * Shared Disk & Shared Nothing: 앞서 Active-Active 구성의 DB는 저장소 부분의 병목되는 경우가 있다. 이것은 복수의 서버가 1대의 디스크(저장소)를 공유하도록 구성되었기 때문이다.이렇게 복수의 서버가 1대의 디스크를 사용하는 구성을 'Shared Disk'라고 한다. Shared Disk 타입의 Active-Active 구성은 DB 서버를 늘려도 무한으로 처리율이 향상되지 않는다. 이것은 저장소가 공유 자원이라서 쉽게 늘리기 어렵고 DB 서버 대수가 증가할수록 DB 서버 간의 정보공유를 위한 오버헤드가 크기 때문이다. -> 이 단점을 극복하기 위한 아키텍처로 고안된 것이 'Shared N..

데이터베이스(데이버베이스(DB)의 아키텍처-리플리케이션)

* 데이터베이스의 아키텍처(리플리케이션) * 리플리케이션: Active-Active, Active-Standby 클러스터 구성에서는 서버 부분은 다중화할 수 있어도저장소 부분은 다중화할 수 없어서 데이터를 다중화하지 않는 공통적인 단점이 있다.저장소가 부서질 경우에는 데이터를 잃게 된다. 이런 상황에 대응하기 위한 클러스터 구성이 '리플리케이션(Replication)'이다. 이는 DB서버와 저장소 세트를 복수로 준비하는 것을 말한다. -> 리플리케이션은 데이터베이스 서버와 저장소가 동시에 사용 불능일 때,서비스를 계속할 수 있도록 해주는 매우 가용성이 높은 아키텍처이다. 이 견고함 덕택에 재해대책(재난 복구 계획)으로 이용되는 경우도 있다.예를 들어, 서울의 데이터 센터가 파괴되어도 부산의 데이터 센터가..

데이터베이스(데이터베이스(DB)-클러스터링(Clustering))

* DB서버의 다중화(클러스터링) * DB 서버는 다중화 : DB 서버는 다중화에서 특유의 어려운 문제점을 안고 있다. 그 때문에 DB 서버는 오랫동안 클러스터링이 어려운 컴포넌트로 인식됐다. 현재도 다양한 노력으로 방법이 고안되고 있지만, 간단히 병렬화해서 대수를 증가시키는 웹서버나 애플리케이션 서버와 비교하면 다중화에 대해 고민해야 할 부분이 많다. 그 이유는 DB 서버가 데이터를 보존하는 '영속 계층'이기 때문이다. * DB와 다른 서버의 차이: 데이터베이스는 웹 서버나 애플리케이션 서버와 다르게 데이터를 장기간 보존하는 매체가 필요하다. 웹 서버나 애플리케이션 서버는 데이터를 일시적으로 처리하지만 데이터베이스는 대량의 데이터를 영구적으로 보존해야 하고 그에 따른 성능도 요구되기 때문에 데이터를 보..

데이터베이스(데이터베이스(DB)의 아키텍처-가용성과 확장성의 확보)

* 데이터베이스의 아키텍처(가용성과 확장성의 확보) * 가용성 : 서비스 제공시간에 장애 없이 서비스를 계속 지속할 수 있는 비율. (Availability) * 가용성을 높이는 2가지 전략 - 심장전략(고품질-소수전략) : 시스템을 구성하는 각 컴포넌트의 신뢰성을 높여 장애 발생률을 낮게 억제해서 가용성을 높인다.(소수정예노선) - 신장전략(저품질-다수전략) : 시스템을 구성하는 각 컴포넌트의 신뢰성을 계속해서 높이기보다는 '사물은 언젠가 망가진다'란 체념을 전제로 여분을 준비해 둔다. 이를 철저히 대비하는 것을 '물량작전'이라고 부른다. -> 양쪽 노선 모두 추구했지만 현재는 거의 '신장전략' 노선에 손을 든다. * 클러스터: 신장전략처럼 동일한 기능의 컴포넌트를 병렬화하는 것을 '클러스터링(Clus..

데이터베이스(데이터베이스(DB)의 아키텍처-역사와 개요)

* 데이터베이스의 아키텍처(역사와 개요) 1) Stand-alone (~1980년대) 2) Client/Server (1990년대~2000년)3) Web 3계층 (2000년~현재) 1) Stand-alone : Stand-alone은 문자 그대로 데이터베이스가 동작하는 머신(여기서는 DB가 동작하는 머신을 '데이터베이스 서버' 또는 'DB 서버'로 부른다)이 LAN이나 인터넷 등의 네트워크에 접속하지 않고 '독립되어' 동작하는 구성이다. 이 구성에서는 DB의 미들웨어(DBMS)와 애플리케이션의 소프트웨어는 같은 DB 서버에서 동작한다. 따라서 DB를 사용하고 싶은 사용자는 DB서버가 설치된 장소까지 물리적으로 접근하여 서버 앞에 앉아서 DB를 사용해야 했다. 서버가 네트워크에 접속되어 있지 않아서 물리적..

데이터베이스(데이터베이스(DB)의 운영비용)

* 데이터베이스의 운영비용 * 운영비용 : 서비스를 이용하는 기간에 계속해서 지급하는 돈.: 운영비용은 기간이 정해진 비용으로, '월 단위 또는 연 단위 얼마'처럼 반드시 '일정 기간에 OO원'이라는 비용 계산을 한다. 이는 DB의 이용기간이 길면 길수록 비용도 증가한다는 의미이다. Q. 데이터베이스의 운영비용은 어떤 것인가?A. '기술지원 비용'이다. -> DB를 사용하다 보면 버그나 이해할 수 없는 동작이 발생하는 것을 종종 본다. 심한 경우 DB가 크래시되어 시스템 전체가 정지되는 중대한 버그가 발생할 수도 있다. 이런 경우에는 기술적인 Q&A부터 긴급 수정 프로그램(패치) 배포까지 DB 개발자의 지원 없이는 문제를 해결하기 어렵다. 이런 기술지원 서비스에는 일반적으로 다음 항목이 포함된다. - 기..

반응형