MS-SQL Server

MSSQL 2008의 선택 이유와 Enterprise Edition의 사용 이유

안보갑 2009. 6. 25. 22:34

아래는 이번에 빌링 통합 서버 장비를 MSSQL 2008의 싱크 방식 미러링으로 구성하면서
DBMS의 선택과 Edtion 선택을 할때 고려했던 내용 입니다.

[SQL Server 2008
도입의 이점]

1. 성능 모니터링이 좀더 디테일한 부분까지 가능

   - 기존의 2005에서 새롭게 추가된 DMV 자체로도 2000보다 월등히 운영하기 편리해진 부분이 있지만

     세부적인 모니터링에는 역시나 한계가 있어서 이슈 발생시에 정확한 원인을 파악 못할 가능성이 있음

     이를 해결하기 위한 기능이 2008에 추가되어 특정 쿼리에 대한 확인 및 그 이후의 변화를 추적하여 거의 완벽한 모니터링이 가능

   - 성능 데이터에 대한 DW 구축이 가능함.

2. SQL Server에 의한 CPU 및 메모리 등의 서버 리소스를 자동으로 활용 및 관리

   - Resource Governor를 이용하여 특정 작업에 리소스 한정하여 사용 가능

   - 정기점검을 진행 중에 통합된 여러 DB에 영향을 주지 않고 해당 DB에만 작업이 가능함.

3. 자체 데이터 압축 기능을 통해 데이터 저장에 필요한 디스크 공간 절약 및 I/O 발생 감소

4. 백업 압축을 통해 백업에 소요되는 디스크 공간 및 시간을 절약할 수 있음

5. 미러링 사용시에 주 서버의 페이지 손상시에 미러 서버에서 자동으로 데이터를 복사해 와서 오류 수정함

6. 미러링 구성에서 미러 서버로의 로그 전달에 압축 기능을 사용하여 성능 향상

7. Online 상황에서 CPU 및 메모리 증설 가능

8. Change Data Capture 기능을 이용하여 변경 내용 추적 용이함(현재 Trigger 기능을 대신할 수 있을 것 같음)

9. Change Tracking 기능을 활용하여 특정 테이블에 대한 변경이 있음을 확인 가능함.

10. Merge 쿼리를 통한 Insert/Update/Delete를 한번의 쿼리로 트랜잭션 처리 가능함.

11. Filtered Index 지원

   - 오라클과 다르게 MSSQL Null에 대한 부분도 모두 Index 생성이 되어 대용량의 테이블에 인덱스 작업을 진행하면

     인덱스 자체의 사이즈가 커지는 문제가 있는데 null 값이 포함된 컬럼의 경우 Filtered Index를 이용하여 해결 가능.

 

[Enterprise Edition 사용시 장점]

1. 미러링시 로그 데이터 압축하여 동기화 성능 향상 됨.

   - 빌링의 경우 비동기화 방식을 사용하기 어려워(트랜잭션 보장) 로그 데이터 전달의 성능이 중요함.

2. 온라인 인덱스 생성 가능

   - 점검을 하지 않더라도 백단에서 온라인으로 인덱스 재생성이 가능하여 인덱스 생성으로 인한 서비스 다운타임 없어짐.

   - 주기적으로 점검을 통해 인덱스 Rebuild를 진행하고 있음.

3. Online 상황에서 CPU 및 메모리 증설 가능하여 갑자기 생기는 부하처리를 위해 장비 Shutdown 필요하지 않음.

4. 압축 백업의 지원으로 압축 시간 및 복구 시간 절감 가능, 디스크 스토리지 공간의 여유도 가질 수 있음

5. 파티션 테이블 및 인덱스 사용

   - 대량의 데이터를 가지는 DB는 특정일 기준으로 과거 데이터에 대한 조회가 필요 없는 경우가 있는데 이때 파티션 기능을 사용하여 손쉽게 작업 가능

   - 파티션 테이블 사용하지 않고 작업하기 위해서는 점검을 통해 진행해야 하기 때문에 서비스 downtime이 필요함.

   - 데이터가 많아지면서 인덱스 트리의 깊이가 깊어져서 I/O 성능의 저하가 발생하는 것을 해결 가능함.

6. 리소스 관리자

   - 여러 DB의 통합으로 특정 DB의 작업이 다른 서비스에 영향을 줄 수 있는 상황인데 리소스 관리자를 통해 사용 리소스 제한 가능

   - DB 작업에 부하가 가는 작업을 하더라도 해당 서비스를 제외한 다른 서비스에는 영향을 주지 않고 작업 가능함.

7. 데이터베이스 암호화

   - 데이터 파일 및 백업 파일에 대한 암호화 가능

8. 병렬 인덱스 작업

   - 인덱스 생성 작업이 병렬로 가능해서 마이그레이션 작업 시간 단축 가능

   - 현재 통합 DB 구축 테스트에서도 작업 시간 줄이기 위해서 Enterprise Edition을 설치하여 인덱스 생성 작업 진행 중임

   - 평균 3 ~ 4배 이상 시간이 단축됨(정기점검 작업 시간을 줄일 수 있음 - 인덱스 생성 점검은 자주 있는 작업임.)

9. Change Data Capture

   - 데이터 변경 분을 실시간으로 쿼리하여 동기화 프로세스 개선 가능함.

   - 현재 Trigger를 이용한 방법을 수정하면 전체 데이터에 대한 수동 동기화 기능 개발이 가능함.

   - 복제 서비스 유지의 어려움과 Trigger로 인한 관리 어려움을 해결 가능함.