SQL_Server_2005_표준제안서1
Download
Report
Transcript SQL_Server_2005_표준제안서1
SQL Server 2005표준 제안서
*
CONTENTS
Contents
1.
SQL Server 제품 연혁
2.
SQL Server 2005 제품 개요
3.
SQL Server 2005 아키텍처
4.
SQL Server 2005 RDBMS 기능
5.
SQL Server 2005 BI 기능
6.
SQL Server 2005 Mobile
7.
SQL Server 2005 서비스 툴
8.
SQL Server 주요 사례
9.
기술지원 및 교육
10.
*
SQL Server 제품 연혁
1. SQL Server 제품 발전 과정 및 주요 특징
*
1. SQL Server 발전 과정 및 주요 특징
2nd Generation
1st Generation
SQL Server 6.0 / 6.5
Sybase SQL Server와의
차별화
Windows 환경과의 통합
복제 서비스 시작
모든 제품에
공통적인 목표
SQL Server 7.0
SQL Server 2000
관계형 데이터베이스
아키텍처를 새로 디자인
향상된 자동 리소스 관리
OLPA 및 ETL 서비스 시작
•
•
3rd Generation
SQL Server 2005
성능 및 확장성향상
XML 지원
알림 서비스 시작
데이터마이닝 및 리포팅
서비스 시작
신뢰성 및 보안 향상
비즈니스 인텔리전스 통합
•
•
고 가용성 보장
보안 강화
개발 생산성 향상
XML 내장 지원
엔터프라이즈 ETL 및
데이터마이닝 지원 시작
최소의 TCO 보장
자동 튜닝
*
SQL Server 제품 개요
1. 제품 개요
2. 제품 종류
3. 시장 평가 및 점유율
4. 벤치마크 결과
5. TCO 분석
*
1. 제품 개요
1
2
Microsoft SQL Server 2005는 대용량 데이터베이스 (OLTP), 데이터 웨어하우징 및 응용프로그램에
필요한 데이터베이스이며 동시에 데이터 분석 플랫폼 (OLAP) 입니다.
SQL Server 2005에서는 다음과 같은 주요 서비스를 제공합니다.
관계형 데이터베이스
Analysis Services
• 데이터를 저장, 처리하며 대용량 데이터베이스 및 데이터 웨어하우징을 제공합니다.
• 기업 내에서 가장 다루기 어려운 데이터 소비용 응용 프로그램에 대한 요구 사항을 충족하기 위해
액세스 제어 및 빠른 트랜잭션 처리를 제공합니다.
• 강력한 보안, 편리한 관리 및 스케일 업, 스케일 아웃 확장성을 제공합니다.
• 고 가용성을 유지하기 위한 다각적인 솔루션을 제공합니다.
• Service Broker, 전체 텍스트 검색, 복제, 미러링 등의 대표적인 기능을 제공합니다.
• 비즈니스 인텔리전스 응용 프로그램에 대한 OLAP(온라인 분석 처리) 및 데이터 마이닝 기능을
제공합니다.
• 사용자가 관계 형 데이터베이스와 같은 다른 데이터 원본에서 집계된 데이터를 포함하는
다차원 구조 (큐브)를 디자인 생성 및 관리할 수 있도록 OLAP을 지원합니다.
• 데이터 마이닝 응용 프로그램의 경우 다양한 데이터 마이닝 알고리즘을 사용하여
다른 데이터 원본에서 생성된 데이터 마이닝 모델을 디자인, 생성 및 시각화 할 수 있습니다.
*
1. 제품 개요
Integration Services
Reporting Services
Notification Services
SQL Server
Migration Assistant
SQL Server Upgrade Advisor
• 서로 다른 원본에서 데이터를 추출, 변환 및 통합하여 단일 또는 여러 대상으로 이동하는 데
사용할 수 있는 엔터프라이즈 ETL 솔루션 입니다.
• 워크 플로우 디자인이 가능하며 사용자에게 직관적인 인터페이스를 제공하여 개발 생산성을
높여줍니다.
• 관계형 데이터 원본 및 다차원 구조의 큐브 데이터를 이용하여 테이블, 매트릭스, 차트 등
다양한 형태의 보고서를 생성 가능합니다.
• 일반 비즈니스 유저가 신속하게 자신이 원하는 보고서를 생성 및 배포할 수 있는 기능이
새롭게 포함되었습니다.
• 보고서 관리 서버를 통해 생성되어진 보고서를 쉽게 관리 및 배포 가능합니다.
• 이벤트가 발생하였을 때 알림을 생성하고 보내는 응용 프로그램의 개발 및 배포에 사용되는
플랫폼입니다.
• 사용자 정의된 메시지를 이벤트 발생시 혹은 작업 일정에 따라 수천 또는 수백만 명의 구독자와
다양한 장치에 보낼 수 있습니다.
• 이기종 데이터베이스 에서 SQL Server로의 마이그레이션을 쉽고 빠르게 진행하기 위하여
무상으로 제공되는 툴 입니다.
• 데이터베이스 관련 개체 및 스키마, SQL 코드 등에 대한 변환을 최대 99%까지 자동으로
변환해주며, 수동 변환에 필요한 가이드라인을 제공합니다.
• 현재 SQL Server의 설치, 구성 요소 및 관련 파일을 평가하여 SQL Server 2005로 업그레이드 또는
마이그레이션하는 과정 혹은 그 후에 발생할 수 있는 알려진 문제를 분석해주는 도구 입니다.
• 문제의 중요도를 표시해주며 XML 기반의 보고서를 생성합니다.
*
1. 제품 개요
SQL Server 도구 및 유틸리티
• 관계형 데이터베이스, Analysis Services 큐브, 데이터 변환 패키지, 복제 토폴로지, 보고서 서버 및 알림 서버를 디자인, 개발,
배포 및 관리하는데 필요한 도구를 제공합니다.
• 대표적인 도구 및 유틸리티는 아래와 같습니다.
- SQL Server Management Studio
: SQL Server 프로젝트를 액세스, 구성, 관리 및 개발하는데 필요한 통합 개발/관리 환경을 제공합니다
- Business Intelligence Development Studio
: Visual Studio와 통합되어 Analysis Services, Integration Services, Reporting Services 등의 프로젝트를 구성, 관리 및
개발하는데 유용한 환경을 제공합니다.
- SQL Server 프로파일러
: SQL Trace를 사용하여 SQL Server 데이터베이스 엔진이나 Analysis Services의 인스턴스를 모니터링 할 수 있습니다.
- SQL Server 구성 관리자
: SQL Server와 관련된 서비스를 시작, 중지 및 구성하는데 필요한 도구 입니다.
- SQL Server 노출 영역 구성 관리자
: SQL Server의 보안 측면에서 노출 영역을 구성하는 도구 입니다.
- 명령 프롬프트 유틸리티
: 대량 데이터 이동 (BCP 사용), 스크립트 실행, 알림 서비스 관리 작업 등에 필요한 명령 프롬프트 유틸리티를 제공합니다.
- 데이터베이스 엔진 튜닝 어드바이저
: 데이터베이스 엔진 튜닝에 있어서의 가이드라인을 제공합니다.
- SQL Server Books on line
: SQL Server 2005를 구성, 관리 및 개발하는데 있어서의 상세적인 설명 및 가이드를 제공합니다.
*
2. 제품 종류
1
SQL Server 2005 Enterprise Edition (32bit / x64 / IA64)
엔터프라이즈 에디션은 대기업의 OLTP (온라인 트랜잭션 처리), 복잡한 데이터 분석, 데이터 웨어하우징 시스템 및 사이트를
지원하는데 필요한 성능 수준을 갖고 있습니다.
대용량 데이터베이스에 알맞은 뛰어난 성능 및 확장성을 지니고 있습니다.
• 스케일 업 확장 측면에서 64CPU까지 지원하며, 메모리에는 제한이 없습니다.
• 데이터베이스 스냅샷을 지원합니다.
엔터프라이즈 에디션에서는 이기종 데이터베이스와의 연동에 있어서 유연함을 제공합니다.
• 오라클 데이터베이스를 게시자로 복제를 구성할 수 있습니다.
• 그 외에도 링크드 서버, 서비스 브로커 및 통합 서비스를 통해 연결성을 제공합니다.
포괄적인 비즈니스 인텔리전스 및 분석 기능을 갖고 있습니다.
•
•
•
•
•
고급 비즈니스 분석
확장성 및 성능 증대를 위한 자동 관리 캐싱
파티션된 큐브, 병렬 프로세싱, 서버 동기화 등의 고급 데이터 관리
텍스트 마이닝
개인화 된 리포팅, 대규모 리포팅 서비스가 가능하며 비 정형 리포팅을 지원합니다.
SQL Server의 가장 포괄적인 버전이며 대기업 및 가장 복잡한 요구 조건에 이상적인 버전입니다
*
2. 제품 종류
2
SQL Server 2005 Standard Edition (32bit / x64 / IA64)
스탠더드 에디션은 중소 기업용 관리 및 분석 플랫폼으로 관계형 데이터베이스 엔진, 데이터 웨어하우징 및
업무용 솔루션에 필요한 필수 기능을 포함합니다.
4개의 CPU만을 지원하기 때문에 스케일 업 확장에 제한이 있습니다.
•
•
•
•
비즈니스 인텔리전스 업무 지원에 필요한 필수 기능을 제공합니다.
기본적인 ETL 기능을 제공합니다.
기본적 수준의 OLAP 서비스 및 Reporting Services를 제공합니다.
기본 수준의 데이터마이닝을 제공합니다.
중소 기업용 데이터 관리를 위한 적절한 수준의 고 가용성을 제공합니다.
• 데이터베이스 미러링 기능을 제공합니다.
• 하지만 온라인 복원, 온라인 인덱싱, 빠른 복구와 같은 데이터베이스 엔진 수준의 가용성은 제공하지 못합니다.
• 장애 복구 클러스터링의 경우 2개의 노드로 제한됩니다.
오라클 게시자를 통한 복제를 제외하고 트랜잭션, 스냅샷, 병합 복제를 모두 제공합니다
*
2. 제품 종류
3
SQL Server 2005 Express Edition
익스프레스 에디션은 사용 및 관리가 용이한 무료 데이터베이스 입니다.
Visual Studio 2005와 통합되어 풍부한 기능 사용 가능하며, 데이터를 안전하게 보관하고 빠르게 배포할 수 있는
데이터 기반 응용 프로그램을 쉽게 만들 수 있습니다.
무료 제품이며 계약에 따라 재 배포가 가능합니다.
기본 서버 데이터베이스뿐만 아니라 클라이언트 데이터베이스로도 작동합니다.
중소 ISV, 저 사양 서버 사용자, 웹 응용 프로그램을 구축하는 비 전문 개발자 및 일반 사용자에게 적절한 버전입니다.
익스프레스 에디션에서는 다음과 같은 주요 기능을 제공합니다.
•
•
•
•
데이터베이스 엔진
간단한 관리 도구 제공
간단한 리포팅 제공
복제 및 SSB 클라이언트
*
2. 제품 종류
4
SQL Server 2005 Developer Edition
개발자들은 디벨로퍼 에디션을 사용하여 SQL Server위의 어떠한 유형의 응용 프로그램도 구출할 수 있습니다.
디벨로퍼 에디션은 엔터프라이즈 에디션의 기능을 모두 포함하지만, 프로덕션 서버가 아닌 개발 및 테스트 시스템으로 사용하도록
허가되어 있습니다.
주로 응용 프로그램을 구축 및 테스트하는 ISV (개별 소프트웨어 공급업체), 컨설턴트, 시스템 통합 업체, 솔루션 공급자 및
기업 개발자에게 적절한 버전입니다.
디벨로퍼 에디션은 프로덕션 환경에서 사용할 수 있게 엔터프라이즈 에디션으로 쉽게 업그레이드 가능합니다.
5
SQL Server 2005 Workgroup Edition
워크그룹 에디션은 크기 또는 사용자 수에 제한이 없는 데이터베이스를 필요로 하는 소규모 조직을 위한 데이터 관리 솔루션입니다.
SQL Server의 핵심적인 데이터베이스의 엔진 기능을 제공합니다.
스탠더드 에디션 및 엔터프라이즈 에디션으로 쉽게 업그레이드 할 수 있습니다.
안정적이며 강력하고 관리가 용이한 초급 데이터베이스 입니다.
워크그룹 에디션에서 제공하는 주요 기능은 다음과 같습니다.
•
•
•
•
제한된 복제
로그 전달
데이터 가져오기/내보내기
통합 관리도구 SQL Server Management Studio
*
2. 제품 종류
6
각 에디션 별 하드웨어 및 OS 지원 사항 (32bit 기준)
Edition
Benefit
최대 시스템 사양
H/W
사양
Express
Edition
Workgroup
Edition
초보자가
배우기에
부담이
없으며
간단한
Application에
적합
작은 부서단위
혹은 초기
기업 환경에
적합한
데이터베이스
솔루션
CPU : 1 CPU
Memory : 1 GB
DB Size : 4 GB
ㆍ간단한 관리 도구 제공
ㆍ간단한 Reporting 제공
ㆍ복제 및 SSB Client
지원
OS
Windows
Windows
Windows
Windows
H/W
사양
CPU : 2 CPU
Memory : 3 GB
DB Size : 무한대
지원
OS
Server
Server
Server
Server
Features
2003
2003
2003
2003
(SP1)
(SP1)
(SP1)
(SP1)
Web Edition
Standard Edition
Enterprise Edition
Datacenter Edition
Windows Server 2003 (SP1) Standard Edition
Windows Server 2003 (SP1) Enterprise Edition
Windows Server 2003 (SP1) Datacenter Edition
ㆍManagement Studio 제공
ㆍ데이터 들여오기 / 내보내기 제공
ㆍ제한된 복제 배포
ㆍ백업 로그 전달
*
2. 제품 종류
6
각 에디션 별 하드웨어 및 OS 지원 사항 (32bit 기준)
Edition
Standard
Edition
Enterprise
Edition
Benefit
중소규모의 기업
환경이나
혹은 큰 부서에서
데이터
관리, 분석용
데이터베이스로
적합
Business-critical
Application에
대한
데이터 관리,분석
시스템으로 적합
최대 시스템 사양
H/W
사양
CPU : 4 CPU
Memory : 운영 OS 의 최대 지원 메모리
DB Size : 무한대
지원
OS
및
메모리
Windows Server 2003 (SP1) Standard
Edition : 4GB RAM
Windows Server 2003 (SP1) Enterprise
Edition : 32GB RAM
Windows Server 2003 (SP1) Datacenter
Edition : 무한대
H/W
사양
CPU : 운영 OS 의 최대 지원 CPU 수
( 아래 참조 )
Memory : 운영 OS 의 최대 지원 메모리
( 아래 참조 )
DB Size : 무한대
지원
OS
및
메모리
Windows Server 2003 (SP1) Standard
Edition : 4 CPU, 4GB RAM
Windows Server 2003 (SP1) Enterprise
Edition : 8 CPU, 32GB RAM
Windows Server 2003 (SP1) Datacenter
Edition : 64 CPU, 무한대
Features
ㆍ데이터베이스 미러링
ㆍ기본적 ETL
ㆍ기본적인 OLAP Server (분석 서비스)
ㆍ기본적인 Reporting (리포팅 서비스)
ㆍ데이터마이닝
ㆍ완전한 복제 기능 및 SSB 배포
ㆍ내장 32- and 64-bit 에디션 가능
ㆍItanium2 와 x64 지원
ㆍ향상된 데이터베이스 미러링,
데이터베이스 스냅샷 및
온라인 & 병렬 기능 완전 제공
ㆍ향상된 분석 도구 제공
(Full OLAP & Data Mining)
ㆍ개인화된 리포팅, 대규모 리포팅
서비스가 가능하며 Ad-hoc 리포팅을
지원하는 등 향상된 리포팅
ㆍ복잡한 데이터 라우팅 과 변환이 가능한
향상된 ETL 제공
ㆍ내장 32- and 64-bit 에디션 가능
ㆍItanium2 와 x64 지원
*
3. 시장평가 및 점유율
1
RDBMS 시장 현황 및 점유율 (가트너 데이터퀘스트 시장 조사 결과)
세계 2004년 RDBMS시장이 10.3%성장을 한 가운데 Windows 플랫폼 기반이 약 10% 성장세로 시장을 이끌고 있으며,
이 가운데 Microsoft SQL Server는 전체 플랫폼 기반 신규 라이센스에서 18% 성장으로 시장을 주도하였습니다.
*
3. 시장평가 및 점유율
국내 및 아시아 지역에서 에서 SQL Server는 현재 꾸준히 시장 점유율을 높여 오고 있으며 성장률 면에서도 뛰어납니다
2004년 RDBMS APAC 시장 현황 (메인프레임 제외 전체 플랫폼)
2004년 RDBMS 국내 시장 현황 (메인프레임 포함 전체 플랫폼)
[출처] 가트너 데이터퀘스트, Asia/Pacific (2005)
[출처] 가트너 데이터퀘스트, South Korea (2005)
*
3. 시장평가 및 점유율
1
RDBMS 시장 현황 및 점유율
국내 유명 시장 조사 기관의 발표 결과에 따르면 현재 SQL Server의 시장 점유율은 Oracle에 이어 2위를 달리고 있으며,
성장률은 최고를 기록하고 있습니다.
FY
SQL Server
2002
2003
2004
2005
2006(E)
Oracle
기타
IBM
17%
57%
15%
11%
23%
55%
15%
7%
24%
57%
13%
5%
29%
47%
10%
14%
32%
46%
8%
14%
[출처] KRG (Korea Research Group), 2005
*
3. 시장평가 및 점유율
2
BI 시장 현황 및 점유율
2002년 이후로 BI 시장에서 부동의 1위를 고수하고 있으며 2004년에는 2위와의 격차가 더 벌어진 것을 확인할 수 있습니다.
[출처] 2005년 OLAP Report (http://www.olapreport.com/Market.htm)
*
3. 시장평가 및 점유율
여기에 더해 신규 라이센스 매출을 통한 성장세도 시장에서 1위를 차지하고 있습니다.
2004년 BI 소프트웨어 신규 라이센스 매출 : SQL Server 53% 매출 상승
[출처] 가트너 데이터퀘스트 (2005. 8)
*
4. 벤치마크 결과
1
TPC 벤치마크 테스트 결과
TPC는 비영리 기관으로서 트랜잭션 프로세싱 및 TPC-C, TPC-H, TPC-W 벤치마크와 같은 데이터베이스 성능 벤치마크를 정의하고,
이러한 벤치마크 결과를 기초로 한 객관적인 성능 자료를 배포하기 위해 설립됨.
TPC 벤치마크는 신뢰성 및 내구성 테스트 등 매우 엄격한 조건을 요구하고 있으며 독립 기관의 감사를 거쳐야 합니다.
TPC에는 주요 데이터베이스 공급업체와 서버 하드웨어 시스템 공급업체 등이 위원으로 참여합니다.
기업들은 규정된 환경에서 객관적인 성능 및 성능 대비 가격 평가를 위해 TPC 벤치마킹에 참여하며 테스트 과정에 사용된 기술을
적용하여 더욱 견고하고 확장성이 큰 소프트웨어와 하드웨어 제품을 만들기 위해 노력하고 있습니다.
독립 감사 기관이 벤치마크 결과를 인증하며 전체 결과 보고서는 TPC에 보관됩니다.
전체 결과 보고서는 TPC Web page 에서 확인 가능합니다.
*
4. 벤치마크 결과
2
SQL Server 2005 TPC-C 테스트 결과 비교
TPC-C는 분당 처리 가능한 트랜잭션 수로 OLTP 환경에서의 성능을 확인할 수 있는 지표입니다.
HP Superdome (64way)에서 테스트 결과 SQL Server 2005 100만 tpmC 이상을 처리할 수 있는 성능을 나타내고 있습니다.
기존의 SQL Server 2000에 비해서는 37%의 성능 향상 효과 및 17%의 비용 절감 효과를 나타냈습니다.
Oracle 데이터베이스에 비해서는 7% 성능 향상 효과 및 37%의 비용 절감 효과를 나타냈습니다.
1,231,433
1,231,433
1,008,144
786,646
$ 8.33
$ 6.49
$4.82
$ 4.82
*
4. 벤치마크 결과
TPC-C 벤치마크 테스트 결과
*
4. 벤치마크 결과
3
SQL Server 2005 TPC-H 테스트 결과 비교
TPC-H는 대량의 데이터 시험, 고도의 복잡한 질의 실행, 중대한 비즈니스 질의 응답 등의 시스템 성능을 측정하기 위한
의사 결정지원 테스트입니다.
TPC-H 벤치마크는 통제된 조건 하에서 표준 데이터베이스를 상대로 여러 세트의 질의를 실행함으로써
다양한 결정지원 시스템들의 성능을 측정하는 복합 성능 메트릭 및 가격 대비 성능 메트릭을 평가합니다.
아래 결과는 1TB의 데이터를 바탕으로 의사 결정지원 능력을 테스트 한 결과 입니다.
SQL Server 2005는 이와 같은 TPC-H 벤치마크 테스트에서 기존의 SQL Server 2000에 비해 162%의 성능 향상 및
54%의 가격 절감 효과를 가져왔습니다.
또한 Oracle과 비교해 볼 때, 30% 성능 향상 및 7% 비용 절감 효과를 가져올 수 있습니다.
*
4. 벤치마크 결과
SQL Server 2005는 TPC-H 벤치마크 테스트 결과 price/QphH에서 1위를 고수하고 있습니다.
[출처] TPC.org, 2006. 5월 현재)
*
5. TCO 분석
1
TCO?
총 구매 유지비 (Total Cost of Ownership)란 단순한 소프트웨어 라이센스 비용을 의미하는 것이 아니라,
시스템을 구축 및 운영하기 위한 총 소요 비용 즉, 소프트웨어 라이센스, 하드웨어, 유지/관리 비용 (기술 지원 등),
총 사용자 교육에 소요되는 전체 비용을 의미합니다.
표본 기업 10개사의 3년간 TCO를 분석해본 결과, SQL Server는 타 경쟁 RDBMS 업체에 비해 $807,000 (47%) 이상의
비용을 절감할 수 있는 것으로 밝혀졌습니다.
SQL Server는 TCO 분석 항목들 중에서도 지속적인 DB 관리 작업을 위해 소요되는 비용이 타 경쟁 RDBMS업체에 비해
TCO를 월등히 절감할 수 있다는 결과가 나왔습니다. (NerveWire and Meta Group Study)
2
소프트웨어 라이센스 측면 비용 절감 효과
SQL Server는 고 가용성, 비즈니스 인텔리전스, 관리 도구 등이
모두 포함된 All-in-one 제품으로 멀티 코어의 경우에도
라이센스 상에서 추가 비용이 발생하지 않습니다.
하지만 타 경쟁업체의 경우 각각의 기능을 위해 별도의 추가 비용이
발생하고 있는 현실입니다.
결과적으로 타 경쟁업체와 비교해 볼 때 소프트웨어 라이센스 측면에서
매우 낮은 TCO를 제공하고 있습니다.
*
5. TCO 분석
3
경쟁 제품과의 전체 TCO비교
타 경쟁업체와 비교해 볼 때 SQL Server는 소프트웨어 라이센스 및 기술 지원 등에 있어서 매우 낮은 TCO를 제공하고 있으며,
특히 Oracle에 비해선 평균 60%의 TCO 절감 효과를 가져올 수 있습니다.
뿐만 아니라 하드웨어 구입 비용, 교육, 유지 및 관리 비용 등 다양한 요소들에 대해서도 비용 절감 효과가 있습니다.
Oracle과의 TCO 비교
Oracle
SQL Server
*
5. TCO 분석
3
경쟁 제품과의 전체 TCO비교
Can be 50-80% of overall TCO
Oracle
SQL Server
라이센스 및 기술지원 비용
60% 이상 절감
유지보수 및 관리 비용
33-60% 절감
평균 하드웨어 비용
$250K 이상 절감
*
SQL Server 아키텍처
1. 내부구조 및 작동 원리
2. 네트워크 서비스
3.
*
1. 내부구조 및 작동 원리
1
SQL Server 2005 아키텍처
시스템 아키텍처
• ADO.NET : 연결되지 않은 데이터베이스 접근 (Disconnected Database Access) 모델을 구현하는 방법입니다.
데이터베이스에 접근하는 API를 제공합니다.
• TDS : SQL Server 데이터베이스 엔진 에서 응용 프로그램과 통신할 때는 TDS (Tabular Data Stream) 패킷을 통해 이루어집니다.
서버 컴퓨터와 클라이언트 컴퓨터의 Net-Library는 TCP/IP 또는 명명된 파이프 같은 표준 통신 프로토콜 안에 TDS 패킷을 캡슐화합니다.
• CLR : Common Language Runtime. CLR 통합을 통해 T-SQL 언어 뿐만 아니라 .NET Framework 기반의 C#, VB.NET 등의 언어를 사용하여
다양한 언어의 사용이 가능합니다. 이를 통해 Managed code의 구현이 가능합니다.
• MDAC : Microsoft Data Access Components. SQL Server로의 데이터 접근을 제공하며 OLE DB, ODBC, and ActiveX Data Objects (ADO)
등을 사용하는 컴포넌트를 포함하고 있습니다.
• sp_OA : OLE 개체와의 통신을 위해 사용되는 저장 프로시저입니다.
ADO.Net 2.0
SNAC
MDAC/ADO .Net 1.X
SQL Network Interface (SNI)
DBNETLIB
Windows Networking
TDS
Windows Networking
SQL Network Interface (SNI)
SQLOS
CLR
SQL Server Engine
Linked
Servers
sp_OA
xproc
Windows OS
*
1. 내부구조 및 작동 원리
SQL OS 및 Engine 아키텍처
• SQLOS : SQL Server와 관련된 운영 체제 리소스를 관리합니다.
• Lock Manager
- 데이터베이스 잠금을 관리합니다.
- 쿼리 프로세서는 액세스 유형과 트랜잭션 격리 수준 설정에 따라 각 리소스를 보호하는 데 필요한 잠금 유형을 결정 후,
잠금 관리자에게 적절한 잠금을 요청합니다.
잠금 관리자는 다른 트랜잭션에서 지속되는 잠금과 충돌되지 않는 잠금을 허용합니다.
• Memory manager : SQL Server 에서 사용할 수 있는 메모리를 자동으로 관리해줍니다.
• Buffer Pool : SQL Server의 Memory manager에서 관리 가능한 메모리를 모아 놓은 버퍼 풀 입니다.
Deadlock monitor
SQL Server 데이터베이스 엔진 은 SQL Server 에서
교착 상태 순환을 자동으로 검색합니다.
그런 다음 데이터베이스 엔진에서 교착 상태에 있는 세션 중
처리하지 않을 세션을 하나 선택하면 현재 트랜잭션이
오류와 함께 종료되면서 교착 상태가 해제됩니다.
Lazy Writer
Cache는 각각 고유의 Lazy writer 스레드를 지니고 습니다.
Lazy writer는 dirty sector를 찾아서 커밋 시키는 역할을 합니다.
Resource monitor
SQL Server 데이터베이스의 자원 사용에 대한 모니터링을 제공합니다.
*
1. 내부구조 및 작동 원리
2
물리적 데이터베이스 아키텍처
페이지
• SQL Server의 기본 데이터 저장 단위이며, 디스크 I/O 작업은 페이지 수준에서 수행됩니다.
• 데이터베이스에서 데이터 파일에 할당되는 디스크 공간은 논리적으로 페이지로 나뉘어지며
0에서 n사이의 숫자가 연속으로 페이지에 매겨집니다.
• SQL Server의 페이지의 크기는 8KB입니다. SQL Server 2005에서는 행(row)들이 여러 페이지에 걸쳐 있을 수 없습니다.
• 8KB 이상의 대용량 행(row)에 대해서는 Text, Image와 varchar(max), nvarchar(max),
varbinary(max) 또는 sql_variant와 같은 데이터 타입을 사용하여 8KB 제한에서 벗어날 수 있습니다.
익스텐트
• 공간 관리의 기본 단위이며, 하나의 익스텐트는 실제로 연속하는 8페이지 즉, 64KB입니다.
• 균일 익스텐트 : 단일 개체에 의해 소유되고, 익스텐트 전체 8페이지는 소유하는 개체만 사용 가능합니다.
• 혼합 익스텐트 : 최대 8개의 개체가 공유할 수 있으며, 익스텐트에 있는 8페이지를 각각 다른 개체가 소유할 수 있습니다.
데이터베이스 파일
파일그룹
SQL Server 2005의 데이터베이스에는 다음과 같은 세가지 유형의 파일이 있습니다
• 주 데이터 파일 : 데이터베이스의 시작 지점이며 나머지 파일을 가리킵니다.
모든 데이터베이스에는 하나의 주 데이터 파일이 있습니다. (.mdf)
• 보조 데이터 파일 : 주 데이터 파일이 아닌 모든 데이터 파일을 구성합니다. (.ndf)
• 로그 파일 : 데이터베이스를 복구하는 데 사용되는 모든 로그 정보가 들어 있습니다. (.ldf)
• 할당 및 관리를 위해 파일 그룹을 통해 데이터베이스 개체와 파일을 함께 그룹화 할 수 있습니다.
• 주 파일그룹 : 주 데이터 파일과 다른 파일 그룹에 특별히 할당되지 않은 기타 파일을 포함합니다.
시스템 테이블의 모든 페이지는 주 파일 그룹에 할당됩니다.
• 사용자 정의 파일그룹 : 사용자가 만든 파일 그룹입니다.
• 로그 파일은 파일 그룹에 포함되지 않습니다.
• 한 파일이 두 개 이상의 파일 그룹에 속할 수 없으며, 테이블, 인덱스 및 큰 개체 데이터를 특정 파일그룹에 연결할 수 있습니다.
*
1. 내부구조 및 작동 원리
테이블 및 인덱스 아키텍처
테이블 및 인덱스 구성
• 테이블에는 하나 이상의 파티션에 포함되어 있으며, 각 파티션에는 데이터 행(row)이 힙 또는 클러스터형
인덱스 구조로 포함되어 있습니다.
• 파티션
- 사용자 정의된 데이터 구성 단위로서, 기본적으로 테이블이나 인덱스는 하나 이상의 파티션으로 구성되어 있습니다.
- 파티션은 단일 파일그룹에 포함되어 있습니다.
- 테이블 또는 인덱스에 파티셔닝 여러 개 사용되면
지정된 열을 기준으로 행 그룹이 개별 파티션에
매핑되도록 데이터가 행 분할됩니다.
이러한 파티션은 데이터베이스에 있는 하나 이상의
파티션에 포함 가능합니다.
• 힙 구조
- 클러스터형 인덱스가 없는 테이블로서, 기본적으로
단일 파티션을 사용합니다.
- IAM 페이지에서 파티션의 힙에 할당된 공간을 관리하며
IAM 페이지를 사용하여 힙 간을 이동합니다.
- IAM 데이터 페이지와 내부의 행은 특정 순서로 정렬되어
있지 않으며 연결되어 있지도 않습니다.
데이터 페이지 간의 유일한 논리적 연결은 IAM 페이지에
기록된 정보입니다.
<< 힙 및 인덱스 >>
• 인덱스
- 클러스터형 인덱스 : B-트리 인덱스 구조를 가지며, 클러스터형 인덱스의 리프 노드에는 기본 테이블의 데이터 페이지들이 있습니다.
- 비 클러스터형 인덱스 : 클러스터형 인덱스의 구조와 유사한 B-트리 인덱스 구조를 갖고 있으며,
리프 노드에는 데이터 페이지들에 대한 포인터가 저장되어 있습니다.
- XML 인덱스 : 테이블의 각 XML 열에는 기본 XML 인덱스 하나와 보조 XML 인덱스 여러 개를 만들 수 있습니다.
*
1. 내부구조 및 작동 원리
3
관계형 데이터베이스 아키텍처
퀴리 프로세스 아키텍처
단일 SQL문 처리
• 비용 기반의 쿼리 최적화 프로그램을 통해 가장 효율적인 실행 계획을 선택합니다.
• 쿼리 최적화 프로그램은 리소스 비용이 낮으면서도 사용자에게 가장 빠른 결과를 반환하는 계획을 선택합니다.
• 이와 같이 실행 계획의 비용을 예상할 때는 저장되어 있는 열 및 인덱스에 대한 배포 통계를 이용합니다.
저장 프로시저 및
트리거 실행
•
•
•
•
실행 계획 캐싱 및
재사용
SQL_____
Server 2005 는 저장 프로시저와 트리거의 원본만 저장합니다.
저장 프로시저나 트리거가 먼저 실행될 때 원본은 실행 계획으로 컴파일됩니다.
실행 계획이 메모리에서 에이징되기 전에 저장 프로시저나 트리거가
다시 실행되는 경우 관계형 엔진은 기존 계획을 검색하고 다시 사용합니다.
계획이 메모리에서 에이징되면 새 계획이 작성됩니다.
• 저장 프로시저와 트리거의 주요 이점은 SQL 문이 항상 동일하기 때문에
관계형 엔진이 기존 실행 계획과 SQL 문을 쉽게 대응시킬 수 있고
재 사용이 쉽다는 점 입니다.
• SQL Server 2005에서는 실행 계획을 프로시저 캐시라는 메모리 풀에 저장합니다.
• SQL문이 실행될 때 관계형 엔진은 먼저 프로시저 캐시를 조사하여 동일한 SQL 문에 대한 기존 실행 계획이 있는지를 확인합니다.
이를 통해 기존의 실행 계획을 재 사용하여 SQL 문을 다시 컴파일하는 오버헤드를 줄일 수 있습니다.
• 이와 같이 기존의 실행 계획을 찾는 알고리즘을 적용하기 위해선 모든 개체 참조가 정규화 되어야 합니다.
• 만약 SQL Server 2005에서 메모리 공간이 더 필요한 경우에만 프로시저 캐시에서 오래되고 사용되지 않은 실행 계획을 에이징합니다.
• 데이터베이스가 변경되면 SQL Server는 계획을 무효화하는 변경 내용을 검색하고 해당 계획을 유효하지 않은 것으로 표시합니다.
이와 같이 실행계획이 무효화되면 해당 계획을 다시 컴파일 해야 하는데, SQL Server 2005는 필요한 일괄처리 부분만 다시 컴파일하기
때문에 컴파일 횟수를 줄일 수 있습니다.
실행 컨텍스트 : 쿼리를 현재 실행하고 있는 각 사용자에 의해 사용되는
매개 변수 값 등의 해당 실행 관련 데이터를 보유합니다.
쿼리 계획 : 여러 사용자가 사용하는 재진입용 읽기 전용 구조입니다.
쿼리 계획에는 사용자 컨텍스트가 저장되지 않으며, 메모리에는
쿼리 계획의 복사본이 두 개까지만 존재할 수 있습니다.
*
1. 내부구조 및 작동 원리
병렬쿼리 처리
• SQL Server 2005에서는 프로세서(CPU)를 두 개 이상 사용하는 컴퓨터에서 쿼리 실행과 인덱스 작업을 최적화하는 병렬 쿼리 기능을 제공합니다.
• 여러 개의 운영체제 스레드로 쿼리나 인덱스 작업을 병렬 수행하여 작업을 빠르고 효율적으로 완료합니다.
• 병렬처리 과정
- 쿼리를 최적화하는 동안 SQL Server는 병렬 실행에 적합한 쿼리나 인덱스 작업을 찾습니다.
- 이러한 쿼리에 대해 SQL Server는 쿼리 실행 계획에 교환 연산자를 삽입하여 병렬실행할 쿼리를 준비합니다.
- 교환 연산자는 프로세스 관리, 데이터 재배포 및 흐름 제어를 제공하는 쿼리 실행 계획의 연산자입니다.
(스트림 파티션 변경, 스트림 집계, 스트림 분산, 스트림 수집 등의 논리 연산자 포함)
- 병렬 쿼리에서 사용하는 실제 스레드 수는 쿼리 계획 실행 초기화 시 결정되며 계획의 복잡성과 병렬 처리 수준에 따라 다릅니다.
• 병렬 쿼리에 사용될 최대 CPU 수도 병렬처리 수준에 의해 결정됩니다.
- SMP(대칭적 다중 프로세싱 컴퓨터)와 같이 둘 이상의 프로세서가 있는 컴퓨터에서
SQL Server가 실행 중인지 여부
- 사용할 수 있는 스레드 수가 충분한지 여부
: 각 쿼리 또는 인덱스 작업을 실행하려면 일정 수의 스레드가 필요합니다.
- 실행한 쿼리 또는 인덱스 작업의 유형
: 병렬 계획은 인덱스를 새로 작성 또는 다시 작성하거나 클러스터형 인덱스 및
CPU 주기 사용량이 큰 쿼리를 삭제하는 등의 인덱스 작업에 적합합니다.
데이터베이스 엔진은 병렬 처리에 적합한 쿼리와 그렇지 않은 쿼리를 구분하기 위해
인덱스 작업 실행시 예상되는 비용을 “병렬처리 임계 비용”과 비교한 후 결정합니다.
- 처리할 행 수가 충분한지 여부
: 쿼리 최적화 프로그램에서 행 수가 부족하다고 판단하는 경우 병렬 처리가 되지 않습니다.
- 최신 배포 통계를 사용할 수 있는지 여부
: 이전 버전과 달리 가장 높은 병렬 처리 수준을 제공할 수 없는 경우에도 더 낮은 수준의
병렬 처리 수준이 가능한지 확인합니다.
<< 병렬 쿼리 아키텍처 >>
*
1. 내부구조 및 작동 원리
메모리 관리 아키텍처
• 모든 32비트 응용 프로그램에는 4GB의 프로세스 주소 공간이 있으며
• Windows 운영 체제에서는 기본적으로 응용 프로그램에 사용자 모드 가상 주소 공간 2GB와 운영체제를 위한
커널 모드 주소 공간 2GB로 구성되어 있습니다.
• 필요에 따라 boot.ini 스위치를 이용하여 커널 모드 주소 공간을 1GB로 제한하고 응용 프로그램에
3GB의 프로세스 주소 공간에 대한 액세스를 제공할 수도 있습니다. ( /3gb 매개변수 이용)
• AWE(Address Windowing Extensions)는 운영 체제가 지원하는 최대 실제 메모리에 대한 액세스를 허용하여
32비트 응용 프로그램의 기능을 확장합니다.
• AWE는 최대 64GB의 하위 집합을 사용자 주소 공간에 매핑하여 이 작업을 수행합니다.
응용 프로그램 버퍼 풀과 AWE로 매핑된 메모리 사이의 매핑은 Windows 가상 메모리 테이블 조작을 통해 처리됩니다.
• 동적 AWE (Dynamic Address Windows Extensions)
- SQL Server 인스턴스는 가용한 메모리 공간에 따라 메모리 소비를 조정합니다.
- 다른 응용프로그램이 메모리를 차지하고 있는 경우에는 메모리 사용을 줄이고,
응용 프로그램들이 중지되고 메모리를 더 사용할 수 있게 되면
SQL Server 에서 메모리 할당 크기를 늘립니다.
- SQL Server 는 매 초마다 몇 메가바이트의 메모리를 해제하고 확보하므로
변경된 메모리 할당에 맞도록 신속하게 조정할 수 있습니다.
동적 AWE
가용한 메모리 공간에 따라 SQL Server 인스턴스의 메모리 소비를 조정
• 버퍼 풀에서 사용할 해당 프로세스 가상 주소 공간 크기를 계산하여 예약
• 로드에 필요한 실제 메모리 양만 확보 (커밋).
Memory
Buffer Pool
• 버퍼 풀에서 메모리를 확보하는 경우?
- 인스턴스가 작업을 지원하는 데 메모리가 필요한 경우
(필요하다면 max server memory 할당 목표량에 도달하거나 Windows에서
더 이상 여유 메모리가 없다고 표시할 때까지 실제 메모리를 계속 확보)
SQL Server 2005
• 메모리를 해제하는 경우?
- min server memory 설정보다 메모리가 많거나 Windows에서 사용 가능한
메모리가 부족하다고 표시될 경우
*
1. 내부구조 및 작동 원리
스레드 및 작업 아키텍처
NUMA (Non-Uniform Memory Architecture)
• NUMA ?
- NUMA 구조에서 프로세서는 해당 NUMA 노드 내부의 메모리 뿐 아니라 고속의 상호 연결 버스를 통하여 다른 NUMA 노드의 메모리에 접속할 수
있습니다 각. 또한 모든 프로세서는 일정한 전역 메모리를 공유하는데, 접속하는 데 소요되는 시간은 메모리의 물리적 위치에 따라 달라지게 됩니다.
가까운 곳에 위치한 메모리에 빨리 접속하여 우수한 시스템 성능을 발휘하도록 해주는 기술이 NUMA 아키텍처라 할 수 있습니다.
• SQL Server 2005의 NUMA 지원
- Windows에 표시되는 일반적인 NUMA 경계를 기준으로 CPU를 그룹화 하여 작업을 할당 가능합니다.
이를 통해 NUMA 노드 내에서 작업이 처리될 수 있습니다.
- TCP / IP 포트 매핑을 제어함으로써 클라이언트가 특정 NUMA 노드에 연결할 수 있도록 제어가 가능합니다.
I/O 아키텍처
• SQL Server 2005 는 기본적인 성능 최적화 작업을 통해 메모리 크기를 조절하여 논리적 읽기 비율이 최대가
되도록 버퍼 캐시를 충분히 크게 만들어줍니다.
• 또한 과도한 메모리 스와핑이 페이지 파일에 대한 실제 I/O 생성을 유발하는 것을 방지합니다.
• 향상된 I/O 기능
- 분산 수집 I/O : 인접하지 않은 메모리 영역과의 읽기 또는 쓰기 전송을 수행할 수 있습니다.
- 비동기 I/O
비동기 I/O에서 응용 프로그램은 운영체제에 읽기 또는 쓰기 작업을 요청합니다.
해당 운영 체제는 제어를 즉시 응용 프로그램으로 반환합니다. 그런 다음 응용 프로그램은
추가 작업을 수행하고 나중에 읽기 또는 쓰기가 완료되었는지 확인합니다.
SQL Server 인스턴스가 일괄 처리하는 동안 개별 스레드에서 수행하는 작업을 최대화할 수 있습니다.
분산 쿼리 아키텍처
• SQL Server에서는 연결된 서버 혹은 OPENROWSET, OPENDATASOURCE 함수를 통해
분산 쿼리를 이용하여 다른 유형의 OLE DB 데이터 원본을 참조할 수 있습니다.
• 연결된 서버를 사용하여 다른 유형의 OLE DB 데이터 원본을 참조하는 방법: 연동방안 참조.
<< 분산 쿼리 아키텍처 >>
*
2. 네트워크 서비스
1
네트워크 서비스 개요
SQL Server 데이터베이스 엔진에 연결하기 위해서는 5가지 요소가 포함되어야 합니다.
•
•
•
•
•
2
서버 및 클라이언트 컴퓨터에 네트워크 프로토콜이 설치되어야 합니다.
데이터베이스 엔진에서 하나 이상의 네트워크 프로토콜을 수신하도록 설정 및 구성합니다.
각 클라이언트 컴퓨터에 SQL Native Client를 설치합니다.
원하는 프로토콜을 사용하여 연결하도록 각 클라이언트 컴퓨터를 설정 및 구성합니다.
방화벽에서 포트를 열어 데이터베이스 통신을 허용합니다.
SQL Server 2005에서는 SQL Native Client Net-Library라는 기존의 MDAC과는 분리된 새로운 고유의 네트워크 라이브러리를 제공합니다.
SQL Server는 다수 사용자를 지원하며 User Connection 옵션을 사용하여 최대 32,767개 까지 사용자 연결을 허용할 수 있습니다.
인터넷을 통해서도 데이터베이스 엔진에 접근할 수 있으며, 방화벽 및 프록시 서버를 통해서도 데이터베이스에 접근 가능합니다.
SQL Server의 네트워크 구성 및 SQL Native Client 설정에 대해서는 SQL Server 구성 관리자를 통해 쉽게 설정 가능합니다.
인터넷을 통한 데이터베이스 엔진 연결
클라이언트 및 서버가 인터넷에 연결되어 있는 경우 SQL Server Management Studio를 사용하거나 OLE DB 또는 ODBC 기반의
클라이언트 응용 프로그램을 사용하여 인터넷으로 SQL Server 데이터베이스 엔진 인스턴스에 연결할 수 있습니다.
인터넷을 통해 데이터를 공유하려면 TCP/IP 네트워크 라이브러리를 사용해야 하며, SQL Server의 네트워크 구성에서도
TCP/IP 지원이 가능해야 합니다. 서버를 DNS로 등록하면 등록한 이름을 사용하여 연결할 수 있습니다.
방화벽이나 암호화된 연결을 사용하여 중요 데이터에 대한 접근을 제한할 수 있습니다.
*
2. 네트워크 서비스
3
프록시 서버를 통해 데이터베이스 엔진 연결
안전한 데이터 액세스를 제공하는 독립 실행형 프로그램인 Microsoft ISA Server를 이용하여 SQL Server로의 연결을
조정하면 권한이 없는 사용자가 사설 네트워크에 연결하는 것을 방지할 수 있습니다.
ISA Server는 모든 사용 권한과 수신 포트로의 액세스를 제어하여 사용자의 중요한 데이터를 안전하게 지켜줍니다
<< SQL Server 구성 관리자 >>
*
2. 네트워크 서비스
4
SQL Native Client Net-Library (SQLNCLI)
SQL Server 2005의 새로운 데이터베이스 접근 기술로 SQL OLE DB 공급자와 ODBC 드라이버를 하나의 Native DLL로 조합한 것이며
MDAC과는 분리된 고유한 새 기능을 제공합니다.
서버 컴퓨터와 클라이언트 컴퓨터의 Net-Library는 TCP/IP, 명명된 파이프 같은 표준 통신 프로토콜 안에 TDS 패킷을 캡슐화 합니다.
Net-Library는 서버 측에서는 데이터베이스 엔진의 일부가 되며, 클라이언트 측에서는 SQL Native Client의 일부가 됩니다.
서버 측에서는 네트워크 프로토콜 마다 TDS 엔드 포인트라는 SQL Server 개체를 통해 통신을 하게 됩니다.
SQL Server에서는 다음과 같이 지원 가능한 4개의 Net-Library 프로토콜 및 DAC(관리자 전용 연결)에 대해 기본으로 TDS 엔드 포인트를 제공합니다.
용도 (프로토콜)
TDS 엔드 포인트 이름
상세 내용
공유 메모리
TSQL LocalMachine
• 공유 메모리 프로토콜을 사용하기 위해선 클라이언트 응용 프로그램이 접근하려는 SQL Server
인스턴스와 동일한 컴퓨터에서 실행될 경우에만 가능합니다.
• MDAC 2.8 또는 이전 버전에서는 사용할 수 없으며 자동으로 명명된 파이프 프로토콜로 변환됩니다.
명명된 파이프
TSQL 명명된 파이프
• 지정된 명명된 파이프를 통해 SQL Server에 접근할 수 있습니다.
• 기본적으로SQL Server 데이터베이스 엔진의 기본 인스턴스의 경우 파이프 \\.\pipe\sql\query에서,
명명된 인스턴스의 경우 \\.\pipe\MSSQL$<instance_name>\sql\query에서 수신합니다.
TCP / IP
TSQL 기본 TCP
• TCP/IP 프로토콜에서 설정된 특정 IP 주소 및 지정된 포트를 통해 SQL Server 데이터베이스 엔진에
접근할 수 있습니다.
• 기본 인스턴스는 TCP 포트 1433을 사용합니다
VIA
TSQL 기본 VIA
• VIA (Virtual Interface Adapter) 프로토콜은 클라이언트의 VIA 하드웨어와 함께 작동합니다.
DAC
관리자 전용 연결
• 관리자 전용 연결을 제공합니다. (상세 내용 SQL Server 2005 RDBMS 기능 3.4 관리자 전용 연결)
시스템 엔드 포인트에 대해서는 소유자와 상태만 변경 가능합니다.
TCP / IP 및 VIA 엔드 포인트의 경우 위와 같은 기본 엔드 포인트에 사용자가 추가로 엔드 포인트를 만들어 통신 채널을 추가할 수 있습니다
*
SQL Server 2005 RDBMS 기능
1. 가용성
2. 확장성
3. 관리성
4. 보안
5. 개발 생산성
6. 장애복구 방안
7. 연동방안 (이기종, 동일기종)
8. 성능 향상 및 대용량 데이터베이스 지원
*
1. 가용성
1
장애 복구 클러스터링
Windows Server의 클러스터링 서비스(MSCS)를 기반으로 하고 있습니다.
Windows Server 2003 및 SQL Server 2005 에디션에 따라 최소 2노드, 최대 8노드까지 구성 가능 합니다.
서버 수준의 고 가용성을 제공하는 솔루션 입니다.
장애 복구 방식 : 실시간 자동 장애 복구 (Hot Standby)
클라이언트는 가상 서버에 접근하여 서비스를 받기 때문에 장애 복구 시 자동으로 리다이렉션 되는 효과가 있습니다.
Shared Nothing 방식 – 한 서비스가 데이터를 사용할 때 다른 서비스는 사용하지 않음 – 이기 때문에 장애 복구 시
서비스가 전환 될 때에도 잠금(Lock)의 확률이 적어 전환 속도가 매우 빠르고 안전합니다.
디스크 저장소 제약사항
• 마이크로소프트에서 인정한 SAN (Storage Area Network)이 필요합니다.
(외장형 SCSI, DAS : 2노드 클러스터링 까지만 가능합니다.)
두 대의 서버가 있을 때 다음과 같은 구성이 가능합니다.
• Active / Passive 구성
- 한 서버에서는 활성 서비스를, 다른 서버에서는 대기 서비스를 구성합니다.
• Active / Active 구성
- 교차 구성을 통해 양쪽에 활성 서비스와 대기 서비스를 구성합니다.
- Active / Active 구성 시 하드웨어는 필요 시 2개의 서비스가 가능할 정도의 사양을 가져야 합니다.
*
1. 가용성
2
로그 전달
데이터베이스 수준의 고 가용성을 보장하는 솔루션입니다.
일정한 간격으로 원본 데이터베이스의 트랜잭션 로그를 백업한 후, 이를 보조 데이터베이스에서 복사, 복원하여
원본 데이터베이스와의 동기화를 이루는 방법입니다.
비 동기식 솔루션이기 때문에 데이터 유실의 가능성이 있습니다.
장애 복구시 수동으로 진행해야 하며 원본 데이터베이스의
로그의 마지막 부분을 수동으로 백업하여 보조 데이터베이스에서
복원시키는 작업을 거쳐야 데이터 손실 최소화 할 수 있습니다.
*
1. 가용성
3
데이터베이스 미러링
SQL Server 2005에서 새롭게 소개된 고 가용성을 위한 솔루션 입니다.
데이터베이스 수준의 고 가용성을 보장하며, 3초 이내의 빠른 자동 장애복구를 제공합니다. (Hot Standby)
클라이언트 애플리케이션이 ADO.NET 2.0 혹은 SQL Native Client를 사용한다면 클라이언트 투명하고 그 결과 장애복구시
자동으로 리다이렉션 됩니다.
미러링을 구성하는 각각의 서버는 다음과 같습니다.
• 주 서버 : 실제적인 데이터베이스 서비스를 제공하는 서버입니다.
• 미러 서버 : 주 서버의 데이터를 백업 저장하는 서버로 Hot Standby 형태로 대기하고 있습니다.
• 감시자 서버 : 동기식 미러링에서만 사용되는 서버로 미러링 상태 정보를 저장하며, 자동 장애복구를 위한 요소입니다.
미러링을 구성하는 세가지 방법은 다음과 같습니다.
• 동기식 미러링 :
- 주 서버와 미러 서버가 완벽하게 동기화를 유지하기 때문에
데이터 유실이 발생하지 않습니다.
- 3초 이내의 빠른 자동 장애복구를 제공하며, 감시자 서버를
필수 구성요소로 하고 있습니다.
- Select의 성능에는 영향을 주지 않지만, Insert, delete, update와
같은 트랜잭션 처리는 약간의 성능 저하가 발생할 수 있습니다.
• 비 동기식 미러링
- 주 서버와 미러 서버간에 시간 차이를 두고 동기화가 이루어집니다.
- 수동 장애복구가 필요하며 감시자 서버를 필요로 하지 않습니다.
- 복구 방법에 따라 데이터 손실이 발생할 수도 있습니다.
- 동기식 미러링과 달리 성능에 아무런 영향을 주지 않습니다.
• 높은 수준의 보호를 제공하는 미러링
- 동기식 미러링과 같은 구성이지만 감시자 서버를 필요로 하지 않습니다.
- 감시자 서버가 없기 때문에 자동 장애복구를 제공하지 않습니다.
<< 동기식 미러링 >>
미러 서버에 데이터베이스 스냅샷을 생성하여 읽기 전용 작업에 같이 사용할 경우 부하 분산 효과를 가져올 수 있습니다.
*
1. 가용성
4
복제
게시자
• 원본 데이터베이스 및 복제 대상이 되는 게시물을 관리합니다.
• 게시물 : 저장 프로시저, 뷰, 테이블, 데이터베이스 전체 혹은 필터링 된 파티션으로 구성 가능합니다.
분배자
• 구독 데이터베이스를 포함합니다.
• 메타데이터, 복제 히스토리, 트랜잭션을 저장하고 있습니다.
• 게시자와 분배자를 동일한 서버에서 구성 가능하지만, 규모가 크거나 활동적인 사이트에서는 분배자에 의해 게시자에 오버헤드가 발생 할 수
있습니다.
구독자
• 데이터의 복사본을 보유하고 수정된 게시에 대한 변경 내용을 전달 받습니다.
• 복제 구성 방법에 따라 데이터를 업데이트 하여 다른 구독자에게 게시할 수도 있습니다.
구성방법
• 스냅샷 복제 :
- 전체 데이터를 복제 일정에 따라 정기적 혹은 요청 시에 구독자에게 보내는 방식
- 데이터가 자주 변경되지 않거나, 소량의 데이터를 복제할 경우 유용한 방식입니다.
• 트랜잭션 복제
- 트랜잭션이 발생하면 변경된 데이터만 구독자에게 보내지는 방식.
트랜잭션 시퀀스가 유지됩니다.
- 변경 내용을 실시간 구독자에게 전파 가능하며, 데이터가 자주
변경되는 경우 유용한 방식입니다.
- SQL Server 뿐 아니라 Oracle Database를 게시자 및 구독자로 설정 가능합니다.
( 7. 연동방안 참조 )
• 병합 복제
- 여러 구독자가 다양한 시간에 동일한 데이터를 업데이트 하고
그 변경 내용을 게시자 및 다른 구독자에 전파 가능합니다.
- 충돌이 발생할 수 있으며 충돌 발생시 충돌을 감지, 해결해야 합니다.
- Https를 통해 병합 복제도 가능합니다. (SQL Server Mobile 참조)
<< 복제 아키텍처 >>
*
2. 확장성
1
Peer-to-Peer 복제
일반적인 복제의 계층적인 구조가 아닌 수평적인 구조를 가지고 있습니다.
트랜잭션 복제를 기반으로 하며, Peer-to-Peer 복제에 참여하는 모든 노드가 피어로서 동일한 스키마와 데이터를 게시하고 구독하며
지속적으로 실시간에 가까운 동기화를 유지합니다.
모든 노드에서 데이터 변경 (삽입, 업데이트 및 삭제) 작업이 수행되며, 변경 내용이 두 번 이상 노드 전체에서 순환되는 것을 방지하기 위해
변경 내용이 지정된 노드에 적용되면 복제 프로세스에서 이를 인식합니다.
Peer-to-Peer 복제의 장점
• 각 피어가 격리되지 않더라도 독립적으로 운영될 수 있습니다.
• 새로운 서버를 Peer-to-Peer 복제 토폴로지에 추가하거나 혹은 기존의 서버를 제거하는 것이 매우 용이하기 때문에 뛰어난 확장성을 제공합니다.
• 확장성을 통해 가용성 향상 및 로드 밸런싱을 구현하는 것이 가능합니다.
참여하는 데이터베이스 중 하나에 오류가 발생하거나 유지 관리가 필요한 경우에 가용성을 보장할 수 있습니다.
단일 데이터베이스에서 가능한 것 이상의 작업 부하를 확장할 수 있습니다.
D노드를 추가
<< Peer-to-Peer 복제 토폴로지 >>
<< Peer-to-Peer 복제를 통한 확장성 >>
*
2. 확장성
2
SODA (Service Oriented Database Architecture)
SODA?
• SOA (서비스 기반 아키텍처)에서 데이터베이스는 서비스와 상호 연동하여 데이터를 다뤄야 하며 동적인 데이터 관리가 필요합니다.
이를 지원하기 위해 SODA (서비스 기반 데이터베이스 아키텍처)의 필요성이 대두되었습니다.
• 서비스 기반 데이터베이스 아키텍처에서
- 서비스 로직은 서비스, 이벤트 및 쿼리 알림과 묶여 있으며
- 데이터가 변하거나, 메시지를 받았을 경우 또는 타이머에 의해 서비스 로직이 실행됩니다.
- 이를 통해 동적인 데이터 관리가 가능해집니다.
• SODA를 위해 데이터베이스 및 애플리케이션은 다음과 같은 요구사항을 만족시켜야 합니다.
데이터베이스
•
•
•
•
애플리케이션 서버
이벤트 발생시 서비스 기반으로 작동하기 위한 통신 채널 (엔드 포인트)
서비스 기반 로직 호스팅 가능 : 비동기식 메시징 지원 DB 프로세스 안/밖에서 로직 지원
서비스 중심의 프로그래밍 모델 지원
참조 및 동적인 데이터 관리
•
•
•
•
메시지 브로커 역할 수행 가능 여부
복잡한 로직을 호스팅 가능해야 함
웹 서비스를 호스팅 하는 것이 가능해야 함
캐쉬를 지원해야 함
SQL Server 2005에서는 SODA를 위해 데이터베이스 및 애플리케이션 서버의 기능을 제공합니다.
• 서비스 브로커
- 메시지 큐를 통해 비 동기식으로 메시지를 전달합니다.
- 서비스 브로커를 통해 다른 SQL Server와 통신도 가능하며,
이를 통해 각각 분리된 트랜잭션으로 원격 SQL Server의
모듈을 실행하는 것도 가능합니다.
- 또한 확장 가능한 분산 멀티 데이터베이스 애플리케이션을
만드는 것도 가능합니다.
<< 서비스 브로커를 이용한 비동기식 메시징 >>
*
2. 확장성
SQL Server 2005에서 SODA를 위해 지원하는 기능
웹 서비스 내장 지원
• SOAP (Simple Object Access Protocol) 을 내장
– 표준 웹 서비스를 통해 SQL Server에 접근 가능합니다.
– 클라이언트 의존성이 없으며 뛰어난 상호 운용성을 제공합니다.
• HTTP 엔드 포인트 개체 지원
– 이벤트 발생시 서비스 기반으로 작동하기 위한 통신 채널입니다.
– 엔드 포인트를 통해 연결 정보 및 인증을 설정 가능합니다
– 엔드 포인트를 통해 T-SQL 문이나, 저장 프로시저, 함수 등을 실행할 수 있습니다.
쿼리 알림 기능
• SQL Server 2005는 쿼리 결과가 변경될 때 응용 프로그램이 SQL Server로부터 알림을 요청할 수 있습니다.
• 이를 통해 응용 프로그램에서 검색한 정보를 우선 캐시에 저장한 후, 나중에 다시 쿼리를 했을 때 정보가 변경될 경우에만 데이터베이스를
직접적으로 쿼리하는 응용 프로그램을 디자인 할 수 있습니다.
• 쿼리 알림 기능을 통해 데이터베이스에 대한 잦은 요청 및 이에 따른 네트워크 부하를 줄일 수 있습니다.
서비스 로직 호스팅 : 5.1 .NET Framework 호스팅 (SQLCLR) 참조
• SQL Server 2005는 .NET Framework을 기반으로 CLR (공용 언어 런타임) 과 연동되어 있습니다.
• 이를 통해 호스팅 레이어에서 스레드 및 메모리 관리, 가비지 컬렉션 등의 기능을 제공합니다.
• 또한 .NET 언어를 통해서 서비스 로직이나 복잡한 로직을 처리하는 것이 가능합니다.
• 뿐만 아니라 .NET 언어를 통해 프로시저, 데이터 접근, 트리거, 사용자 정의 함수 등을 작성하는 것이 가능해지면서 시스템 확장이 용이합니다.
다수의 말단 서버에 변경된
사항을 쿼리 알림을 통해 알려줌
마스터 데이터베이스
<< 쿼리 알림 기능 >>
*
2. 확장성
3
SSD (Scalable Shared Database)
확장 가능한 공유 데이터베이스를 통해 SAN으로 연결된 다수의 SQL Server 인스턴스에 읽기 전용의 리포팅 전용 데이터베이스를
붙일 수 있습니다.
리포팅을 위한 읽기 전용 데이터베이스는 별도의 서버 (리포팅 전용 프로덕션 데이터베이스)에서 생성되며, 업데이트 사이클에 맞춰
업데이트 됩니다.
리포팅 전용 데이터베이스는 반드시 읽기 전용 디스크 볼륨에 저장되어야 하며 SAN을 통해 연결되어야 합니다.
장점?
• 저사양의 일반 서버들을 사용하여 리포팅 데이터베이스 서버 시스템을 스케일 아웃 확장할 수 있습니다.
• Select 쿼리를 실행하거나 혹은 SQL Server 2005의 리포팅 서비스를 사용하는 서버들과 같은 리포팅 및 읽기 작업용 서버들이
이용하는 읽기 전용 데이터 마트 혹은 데이터 웨어하우스를 구축하는데 비용 측면에서 효율적입니다.
• 각 서버들이 각자의 메모리, CPU, tempdb 데이터베이스를 사용하기 때문에, 작업 부하를 고립시키는 효과를 가져옵니다.
• 모든 리포팅 데이터베이스 서버들이 같은 읽기 전용 리포팅 데이터베이스를 공유하기 때문에, 항상 같은 리포팅 데이터를 보여줍니다.
저 사양 리포팅 및
읽기 작업 전용 서버
업데이트를 위한 서버
Fiber 채널 연결
SAN 내부연결
주 데이터 볼륨
읽기/쓰기 가능
리포팅 전용
데이터베이스
읽기 전용
ETL 혹은
다른 프로세스를 통해
데이터 이동
<< Scalable Shared Database 아키텍처 >>
Build Phase : 리포팅 전용 프로덕션 데이터베이스
서버에서 생성 / 업데이트 합니다.
생성 / 업데이트 시에는 디스크 볼륨을
읽기 및 쓰기가 가능하게 해줘야 합니다.
생성이 끝나면 다시 읽기 전용으로 디스크
볼륨을 바꿔줍니다.
Detach Phase :
리포팅 서비스 및 읽기 전용 작업을
담당하는 모든 SQL Server
인스턴스에서 리포팅 전용
데이터베이스를 Detach 합니다.
Attach Phase :
생성된 리포팅 전용 데이터베이스
리포팅 서비스 및 읽기 전용 작업을 담당하는
모든 SQL Server 인스턴스에 Attach 합니다.
<< 리포팅 전용 데이터베이스 업데이트 사이클 >>
*
2. 확장성
4
DDR (Data Dependent Routing)
단일 시스템에 프로세서, 메모리, 디스크 및 네트워크 카드와 같은 자원을 추가시키는 스케일-업 확장의 경우 한계가 존재하며,
결과적으로는 병목 현상의 원인을 제공할 수 있습니다.
이 문제를 해결하기 위한 방법이 스케일-아웃 확장입니다. 스케일 아웃 확장은 다음과 같은 특징을 가집니다.
• 데이터베이스 및 작업 부하가 여러 개의 단일 시스템 (노드) 으로 구성된 서버 그룹 안에서 나누어집니다.
• 그룹에 단일 시스템(노드)을 추가함으로써 쉽게 전체 시스템 확장이 가능합니다.
• 클라이언트 및 애플리케이션에서는 그룹 전체를 마치 단일 시스템처럼 접근하기 때문에, 그룹 내에서의 데이터베이스 및 작업 부하에 대한
분할은 투명성을 가지고 있습니다.
Data Dependent Routing
• 데이터는 서버 그룹 내에서 적절한 기준에 의하여 각 단일 시스템(노드)들로 분산되어 있습니다.
• 미들 티어에 있는 클라이언트 애플리케이션에서 데이터베이스에 대한 요청을 서버 그룹내의 적절한 노드로 전달합니다.
• DDR에서는 모든 노드에 있는 데이터를 볼 수 있는 뷰가 필요 없으며, 각각의 노드는 데이터베이스 스키마만 공유할 뿐 데이터 측면에서는
서로 독립되어 있습니다.
• 미들 티어에서는 데이터를 적절한 노드로 전달하기 위해 노드들에 데이터들이 어떻게 분산되어 있으며, 어떤 노드가 어떤 데이터를 가지고
있는지에 대한 매핑 자료를 가지고 있습니다.
• 고려사항
–
–
–
–
관리 : 서버 그룹에 노드가 추가될 경우 관리 작업에 오버헤드를 초래할 수 있습니다.
데이터 분할 : 시스템에 적합한 최선의 데이터 분할 방법을 찾아야 합니다
애플리케이션 개발 및 개정 : 비즈니스 요구사항 및 데이터 접근관련 요구사항이 바뀔 경우 신속한 대처가 어려울 수 있습니다.
가용성 측면 : 서버 그룹내의 각각의 노드가 서로 독립된 데이터를 가지고 있기 때문에, 하나의 노드에 문제가 생길 경우 해당
데이터를 가져올 수 없게 됩니다. 이와 같이 시스템 전체의 가용성에 문제가 될 수 있습니다.
클라이언트
미들 티어 웹 서버
요청
서버 그룹
매핑 테이블에 따라
필요한 데이터를
가지고 있는 서버로 연결
<< Data Dependent Routing >>
*
2. 확장성
4
64bit 지원 (x64, IA64)
32bit VS 64bit?
32bit
64bit
• 가상 주소 공간이 4GB로 제한되어 있음
• 그 중에 실제로 애플리케이션이 사용할 수 있는 가상 메모리는 /3gb 옵션을 주었을 경우 3GB까지.
• AWE를 이용하는 애플리케이션의 경우에만 실제로 시스템의 메모리 자원을 모두 활용 가능함
• 매우 큰 가상 메모리 공간을 가질 수 있음
• 32bit 처럼 실제로 시스템이 가지고 있는 메모리 자원을
활용하기 위해 AWE와 같은 매핑 모듈이 필요 없음
SQL Server 2005 64bit (x64, IA64)
• 플랫 메모리 어드레싱을 제공합니다.
• 32bit SQL Server와 데이터 파일을 공유할 수 있기 때문에 32bit에서 64bit로의 마이그레이션 및 통합이 용이합니다.
• 64Way, 백만 TPC 이상의 최대 스케일 업 확장을 지원합니다.
SQL Server 2005 64bit이 가지는 이점?
• 매우 큰 플랫 가상 메모리 공간을 지원하기 때문에 32bit처럼 AWE를 통한 메모리 매핑이 필요 없습니다.
• 이처럼 큰 가상 메모리를 통해 OLTP 환경 및 관계형 데이터 웨어하우스에서 성능 향상 효과를 볼 수 있습니다.
- 계획 캐시 : 많은 수의 저장 프로시저 및 동적 SQL 배치를 실행할 수 있습니다. (OLTP)
- 워크 스페이스 메모리 : 많은 수의 동시 해쉬 조인 및 집계, 소팅 및 인덱스 생성이 가능합니다. (데이터 웨어하우스)
- 커넥션 메모리 : 다수의 커넥션을 지원합니다
- 스레드 메모리 : OLTP 환경에서의 동시성을 높여줍니다.
- 잠금 메모리 : OLTP 환경의 성능 향상 효과를 가져다 줍니다.
• 메모리 및 CPU 측면에서 스케일 업 확장에 용이합니다.
SQL Server 2005 x64, IA64 비교
제품
IA64
x64
엔진
지원
지원
메모리
제한 없음
제한 없음
Management Studio
지원
지원
BI Development Studio
지원 안 함
지원
지원 Edition
Enterprise Edition
Standard Edition
Enterprise Edition / Standard Edition
Developer Edition (32bit on WOW)
Express Edition (32bit on WOW)
*
3. 관리성
1
SQL Server Agent
SQL Server Agent를 통하여 관리 작업을 자동화 할 수 있습니다. 자동화된 관리를 사용하여 일상적인 작업과 이벤트를 처리하면
시간이 절약 효과 및 동시에 다른 관리 기능을 수행할 수 있다는 장점을 가져올 수 있습니다.
2
SQL Server Management Studio
기존의 쿼리 분석기, 프로필러 등을 모두 통합한 툴로 RDBMS, OLAP 구축, 쿼리 작성, 성능 모니터링, 복제 등을
하나의 단일 관리툴에서 모두 사용 가능합니다.
동적 관리 뷰를 바탕으로 가장 많이 사용되는 쿼리, 디스크 사용량 등과 같은 데이터베이스 서버의 상태를 그래픽한 사용자 인터페이스로
보여줍니다.
관리툴에서 작업한 모든 작업을 스크립트로 작성 가능하기 때문에 배치 작업 등에도 유용합니다.
관리 작업에 소요되는 시간과 노력을 줄여주는 효과를 가져올 수 있습니다.
*
3. 관리성
3
동적관리뷰(DMV)
동적 관리 뷰 및 함수를 통해 데이터베이스 내부 구현과 관련된 상태를 확인할 수 있습니다.
기존 SQL Server 2000과 달리 데이터베이스 관리자도 시스템 테이블에 직접적으로 접근하는 것이 불가능하며,
동적 관리 뷰 및 함수를 통해 다각적으로 분석된 데이터베이스 상태를 파악할 수 있습니다.
<< SQL Server Management Studio 쿼리 작성 창 >>
<< DMV를 통해 나온 서버 관련 통계 UI >>
*
3. 관리성
4
관리자 전용 연결
SQL Server 2005에서는 관리자 전용 연결 (DAC)를 제공합니다.
DAC를 이용하면 서버가 잠겨 있거나 비정상적인 상태로 작동 중이어서 데이터베이스 엔진 연결에 응답하지 않는 경우에도 관리자가
실행 중인 서버에 엑세스하여 진단 기능 또는 Transact-SQL 문을 실행하거나 서버의 문제를 해결할 수 있습니다.
기본적으로 관리자 전용 연결은 서버의 클라이언트에서만 사용할 수 있지만, 설정 변경을 통해 원격 컴퓨터의 클라이언트 응용
프로그램에서도 연결이 가능합니다.
5
SMO (SQL Management Objects)
에러 및 무결성 향상을 위해 관리 작업을 자동화하거나 혹은 여러 개의 SQL Server 인스턴스를 효율적으로 관리하기 위해서
SQL Server 관리 개체 API를 제공하고 있습니다.
NET 어셈블리 형태로 구현되기 때문에 계층적인 개체 구조를 지니고 있으며 고유의 개체 모델을 가지고 있습니다.
SMO를 통해 SQL Server를 관리하기 위한 프로그램이나 스크립트를 작성할 수 있습니다.
*
3. 관리성
6
SQL CMD
기존에 도스 커맨드에서 사용하던 SQL Server 관련 명령어들을 SQL Server Management Studio 상에서 일상적인 쿼리와 동일하게
사용 가능합니다.
쿼리 편집기에서 SQL CMD 스크립트를 작성할 때 Transact-SQL 스크립트와 동일하게 소스 제어, 실행 계획, 스크립트 구문 분석 등의
기능을 이용할 수 있습니다.
SQL CMD에 해당하는 부분은 회색 라인으로 표시됩니다.
<< Visual Studio에서 SMO의 사용 >>
<< SQL CMD >>
*
3. 관리성
7
테이블 및 인덱스 분할
특정 컬럼을 기준으로 큰 테이블 및 인덱스를 여러 개의 파티션으로 분할 하는 것이 가능합니다.
이를 통해 파티션 파일 그룹별로 백업 및 복구하는 것이 가능합니다.
뿐만 아니라 파티션 별로 인덱스를 생성 및 관리할 수 있으며,
파티션 테이블은 인덱스의 조각화를 최소화 하여 인덱스를 재 생성하는 빈도를 최소화 하는데 도움을 줍니다.
위와 같은 관리성 뿐만 아니라 성능 향상에도 도움을 줍니다. : 8. 성능 향상 및 대용량 데이터베이스 지원 참조
8
테이블 및 인덱스 분할
기존 SQL Server 2000부터 지원되어져 온 온라인 백업 뿐 아니라 새로이 온라인 복구가 가능해졌습니다.
이를 통해 데이터베이스 서버 관리 측면에서 다운 타임을 줄일 수 있을 뿐 아니라 좀 더 유연한 백업 및 복구 계획을 수립할 수 있도록
도움을 주고 있습니다.
세부 내용 : 6. 장애복구 방안 참조
*
3. 관리성
9
온라인 인덱스 작업
기존 SQL Server 2000과 달리 인덱스를 새로 작성하는 등의 인덱스 관리 작업을 온라인 상태에서 진행하는 것이 가능해졌습니다.
인덱스를 새롭게 만드는 과정에서 새로운 인덱스가 완성되기 전 까지는 기존의 인덱스를 통해 테이블에 접근하고,
인덱스가 완성된 후에는 새로운 인덱스를 통해 테이블에 접근하는 원리로 되어 있습니다.
<< 날짜를 기준으로 한 테이블 및 인덱스 분할 >>
*
4. 보안
1
보안 주체 및 개체
보안 주체
•
•
•
•
•
SQL Server 리소스를 요청할 수 있는 개인, 그룹 및 프로세스를 말합니다.
권한 부여 모델의 다른 구성 요소들과 동일하게 보안 주체도 또한 계층으로 정렬될 수 있습니다.
Windows 수준의 보안 주체 : Windows 도메인 로그인 및 로컬 로그인
SQL Server 수준의 보안 주체 : SQL Server 로그인, 서버 역할(Role)
데이터베이스 수준의 보안 주체 : 데이터베이스 사용자, 데이터베이스 역할(Role), 응용 프로그램 역할
보안 개체
• SQL Server 데이터베이스의 모든 리소스를 의미합니다.
• 보안 개체의 범위(scope)는 서버, 데이터베이스 및 스키마로 구분할 수 있습니다.
• 서버 범위 보안 개체 : 엔드 포인트, 로그인, 데이터베이스
• 데이터베이스 범위 보안 개체 : 사용자, 역할(Role), 응용 프로그램 역할, 어셈블리, 메시지 유형, 경로, 서비스, 원격 서비스 바인딩, 전체 텍스트 카탈로그, 인증서,
대칭/비대칭 키, 스키마 등
• 스키마 수준의 보안 개체 : 유형, 개체, XML 스키마 컬렉션
보안 개체
보안 주체
Windows 그룹
도메인 로그인
로컬 로그인
파일
레지스트리
키
서버 범위
SQL Server 로그인
서버 역할
데이터베이스 사용자
데이터베이스 역할
응용프로그램 역할
데이터베이스 범위
스키마 범위
Database
*
4. 보안
2
사용 권한 관리 및 역할
사용 권한 관리 및 역할
• SQL Server 2005에서는 모든 보안 개체에 대해 보안 주체에 부여될 수 있는 사용 권한이 있습니다.
• 데이터베이스 관리자는 역할을 기반으로 사용자 및 로그인에 대한 권한 부여를 쉽게 관리할 수 있으며, 필요에 따라 각 보안 개체에
특정 권한만 부여할 수 있습니다.
• 데이터베이스 서버의 효율적 관리 및 데이터 보안 등을 위해 권한 역할을 사용하면 권한 남용 등의 부작용을 막을 수 있습니다.
역할
• SQL Server에는 서버 수준 혹은 데이터베이스 수준에 고정된 역할이 존재합니다.
• 서버 수준 고정 역할 : SQL Server 로그인에 해당 역할을 줄 수 있습니다. sysadmin, serveradmin 등이 있으며, 각 로그인에게 필요한 권한에 해당하는 서버
수준 역할을 주어 관리할 수 있습니다.
• 데이터베이스 수준 고정 역할 : 각 데이터베이스 사용자에게 해당 역할을 줄 수 있습니다. db_owner, db_datawriter 등이 있으며,
각 사용자에게 필요한 권한에 해당하는 역할을 주어 관리할 수 있습니다.
보안 주체
보안 개체
권한 부여
Windows 그룹
도메인 로그인
로컬 로그인
파일
레지스트리 키
ACL
승인 / 취소 / 거부
SQL Server 로그인
서버 역할
Database
데이터베이스 사용자
데이터베이스 역할
응용프로그램 역할
CREATE
ALTER
DROP
CONTROL
CONNECT
SELECT
EXECUTE
UPDATE
DELETE
INSERT
BACKUP
VIEW DEFINITION
TAKE OWNERSHIP
서버 범위
데이터베이스 범위
스키마 범위
*
4. 보안
3
사용 자와 스키마 분리
SQL Server 2005에서는 데이터베이스 사용자와 스키마를 분리하였습니다.
즉, 기존 SQL Server 2000과 달리 테이블과 같은 개체가 사용자에 종속되지 않기 때문에 보안 및 관리 측면에서 여러 장점을 갖습니다.
• 역할이나 Windows 사용자 그룹 멤버 자격을 통해 여러 사용자가 스키마 하나를 공유할 수 있기 때문에 역할과 그룹이 개체를 소유하도록 해 줍니다.
• 데이터베이스 사용자를 쉽게 삭제 하는 것이 가능합니다.
• 데이터베이스 사용자를 삭제할 때 해당 사용자의 스키마에 포함된 개체의 이름에 영향을 주지 않습니다. 따라서 해당 스키마에 포함된 개체를 명시적으로 참조하는
응용 프로그램을 수정하거나 테스트 하지 않아도 됩니다.
• 여러 사용자가 통일된 이름 확인을 위해 하나의 기본 스키마를 공유하는 것이 가능합니다.
• 공유 기본 스키마를 사용하면 개발 시에 DBO 스키마 대신 특정 응용 프로그램에 대해 특별히 만든 스키마에 공유 개체를 저장할 수 있습니다.
• Server.Database.Schema.Object 로 정규화된 개체 이름을 4부분으로 구성할 수 있습니다.
4
패스워드 정책강화
강화된 패스워드 정책을 통해 패스워드의
복잡도를 강화했습니다.
7자 이상, 문자, 숫자 및 기호의 조합,
이전의 암호와의 유사성 검사 등
다양한 규칙을 유연하게 적용할 수 있습니다.
<< 테이블, 저장 프로시저 등의 개체가 사용자에게 종속 >>
<< 데이터베이스 개체들과 사용자가 스키마로 분리 >>
*
4. 보안
5
SQL Server 노출 영역 구성
SQL Server 2005에서는 SQL Server 노출 영역 구성 도구를 통해 시스템의 외부 노출 정도를 조절할 수 있습니다.
기본적으로 SQL Server 2005에서는 외부 노출과 관련된 옵션이 기본적으로 OFF로 설정되어 있습니다.
일부 사용하지 않는 구성 요소를 중지하거나 혹은 비 활성화하여 노출 영역을 줄임으로써 시스템의 보안을 유지할 수 있습니다
외부로 노출된 기능들은
기본적으로 OFF 상태로 설정
*
4. 보안
6
암호화 계층
SQL Server 2005는 계층적 암호화 및 키 관리 인프라를 통해 데이터를 암호화 합니다.
각 계층은 인증서, 비대칭 키 및 대칭 키 조합을 사용하여 해당 계층의 하위 계층을 암호화합니다.
자세한 암호화 아키텍처는 다음과 같습니다.
운영체제 레벨
Windows DPAPI 사용
(SQL Server 2005의 서비스 마스터 키를 암호화 )
SQL Server 2005 인스턴스 레벨
서비스 마스터 키 사용
(데이터베이스 마스터 키를 암호화 )
SQL Server 2005 데이터베이스 레벨
데이터베이스 마스터 키 사용
• 사용자, 서비스, 디바이스 등이
지니는 개인 키와 공용 키를
묶어주기 위한 보안 개체
• 비대칭식 암호화를 사용하기
위한 방법
비대칭 키
• 개인 키와 공용 키로 구분
• 보통 데이터베이스 저장소의 대칭 키를
암호화 하기 위해 사용
인증서
대칭 키
대칭 키
대칭 키
데이터
데이터
데이터
• 암호화, 복호화를 동시에 하는 단일 키
• 보통 대칭 키는 데이터베이스에
저장되지 않고 암호화 된 값만 저장됨
• 복호화 할 때는 암호화 계층에 맞춰야 함
<< SQL Server 2005 암호화 아키텍처 >>
*
4. 보안
7
컨텍스트 전화
실행 컨텍스트
• 해당하는 프로시저 혹은 명령을 실행하거나 작업을 수행할 수 있는 권한을 확인하는 ID를 설정합니다.
• 보통 세션에 연결된 사용자나 로그인에 의해 결정되거나 모듈을 호출하여 결정됩니다.
컨텍스트 전환
• SQL Server 2005에서는 Execute AS 를 사용하여 실행 컨텍스트를 다른 사용자 또는 로그인으로 전환할 수 있습니다.
• 컨텍스트가 전환된 후에는 Execute AS를 실행하는 사용자가 아닌 전환된 이후의 사용자의 권한을 확인합니다.
• 컨텍스트 전환을 통하여 일반 사용자가 저장 프로시저와 같은 모듈을 사용하기 위해 지나친 권한을 갖는 것을 방지할 수 있습니다.
8
소유권 체인
여러 데이터베이스 개체가 서로를 순차적으로 액세스하는 경우 이러한 시퀀스를 체인이라 합니다.
SQL Server 2005에서는 이러한 체인에 있는 링크를 통과할 때에는 개별적으로 개체를 엑세스할 때와는 다른 방법으로 사용 권한을 평가합니다.
체인을 통해 개체를 액세스 할 때 SQL Server는 먼저 개체의 소유자와 호출 중인 개체의 소유자를 비교합니다. 이것이 체인에서의
이전 링크 입니다. 두 개체의 소유자가 동일하면 참조되는 개체의 사용 권한이 평가되지 않습니다.
*
4. 보안
9
감사기능
DML 트리거 뿐만 아니라 DDL 트리거도 가능합니다. (개체 생성, 삭제, 변경에 대한 감사 가능)
다양한 Event에 대한 감사 및 알림 기능을 지원합니다.
컨텍스트 전환
호출
Select *
From Sales.orders
저장 프로시저를 실제
호출하는 사용자 또는 로그인
저장 프로시저
실행 컨텍스트의 주가 되는
사용자 또는 로그인
Sales.orders 테이블
<< Execute AS를 사용한 컨텍스트 전환 >>
*
5. 개발 생산성
1
NET Framework 호스팅 (SQLCLR)
SQL Server 2005 데이터베이스 엔진에서는 Microsoft .NET Framework CLR (공용 언어 런타임)이 제공됩니다.
이와 같은 CLR 통합 환경의 장점은 다음과 같습니다.
• CLR 통합 환경에서는 C# 및 Visual Basic .NET 과 같은 .NET 언어로 작성된 함수, 저장 프로시저 및 트리거를 비롯한 절차적
데이터베이스 개체가 지원됩니다.
• 로직이 실행되는 곳을 분리할 수 있으며 이를 통한 부하 분산 효과를 가져올 수 있습니다.
- 데이터베이스 작업을 많이 필요로 하는 함수나 프로시저는 T-SQL 문을 사용하여 프로그래밍하면 효과적이며,
- 논리적으로 복잡한 연산과 같이 CPU 집약적인 함수, 프로시저의 경우 CLR 언어를 사용하여 프로그래밍하면 로직이 애플리케이션
서버에서 수행이 되면서 데이터베이스 서버의 작업 부하를 줄일 수 있습니다.
• T-SQL에 익숙하지 않은 개발자도 쉽게 데이터베이스관련 개발을 할 수가 있습니다.
*
5. 개발 생산성
2
Visual Studio와의 연동
SQL Server 2005는 .NET Framework를 바탕으로 Visual Studio와 밀접하게 연동되고 있습니다.
Visual Studio와의 연동을 통해
•
•
•
Visual Studio의 뛰어난 개발 환경을 이용할 수 있습니다.
개발자에게 익숙한 환경을 제공하여 개발 생산성을 높일 수 있습니다.
통합된 디버깅 환경을 제공하며, Breakpoint를 이용하여 코드 상에서 원하는 곳을 쉽게 검사할 수 있습니다.
*
5. 개발 생산성
3
향상된 T-SQL
Transact-SQL 일괄 처리, 저장 프로시저, 트리거 및 사용자 정의 함수를 작성할 때 TRY-CATCH 문을 사용하여 보다 명시적으로 오류 처리 루틴을
만들 수 있습니다.
varchar(max), varbinary(max), nvarchar(max) 등과 같이 큰 데이터를 위한 MAX 지원
• MAX를 지정하면 text, ntext 및 image와 동일하게 문자열을 최대 2GB까지 저장 가능합니다.
• 비 클러스터형 인덱스에 포함될 수 있는 등 처리되는 방식은 짧은 문자열을 저장할 때와 동일합니다.
CTE (공통 테이블 식)
• SELECT, INSERT, UPDATE 또는 DELETE 문 실행 중에 임시적으로 저장되는 결과 집합입니다.
• CTE를 사용하면 임시 테이블 또는 뷰를 사용할 필요가 없으며, 재귀 쿼리가 가능합니다.
<< CTE를 이용한 재귀쿼리의 코드 감소 효과 >>
*
5. 개발 생산성
새로운 함수 추가 및 성능 향상
• OUTPUT : 테이블 변수를 생성한 후에 SELECT 쿼리의 결과 값을 해당 변수에 저장합니다.
DECLARE @InsertDetails TABLE
(ProductID int)
INSERT INTO Stock.ProductList
OUTPUT INSERTED.ProductID INTO @InsertDetails
VALUES
('Racing Bike', 412.99)
Select ProductID from Stock.ProductList where ProductName=‘Racing
Bike’ and Price=412.99
SELECT ProductID FROM @InsertDetails
TOP(n) : 기존에는 TOP함수에 대해서 TOP(3)과 같이 상수만 사용 가능하였으나, SQL Server 2005에서는 변수도 사용 가능합니다.
DECLARE @a int, @b int
-- set @a and @b
-- then, use expression
SELECT TOP (@a/@b) * FROM license
GO
UPDATE TOP (3) license
SET status = 'E'
WHERE expire_date = getdate()
GO
*
5. 개발 생산성
새로운 함수 추가 및 성능 향상
• APPLY : 다른 외부 테이블 참조에 의해 반환된 각 행에 대해 테이블 값 식(테이블 값 함수 또는 하위 쿼리)을 호출합니다
- CROSS APPLY : 함수 결과 값과 매치되는 데이터 행만 리턴합니다
- OUTER APPLY : 함수 결과 값과 매치되지 않는 모든 데이터 행을 리턴합니다
CustID
Name
1
A Bike Store
2
Progressive Sports
SELECT Name AS Customer, MR.*
FROM Store
CROSS APPLY MostRecentOrders(CustID) AS MR
Customer
SalesOrderID
OrderDate
A Bike Store
101
11/2003
A Bike Store
205
12/2003
A Bike Store
356
01/2004
CREATE FUNCTION MostRecentOrders
(@CustID AS int) RETURNS TABLE AS
RETURN
SELECT TOP(3) SalesOrderID, OrderDate
FROM SalesOrderHeader
WHERE CustID = @CustID
ORDER BY OrderDate DESC
*
5. 개발 생산성
새로운 함수 추가 및 성능 향상
• PIVOT, UNPIVOT : 엑셀의 PIVOT, UNPIVOT과 동일하게 열 값을 행으로 변환합니다.
PIVOT – converts values to columns
Cust
Prod
Qty
Mike
Bike
3
Mike
Chain
2
Mike
Bike
5
Lisa
Bike
3
Lisa
Chain
3
Lisa
Chain
4
SELECT * FROM Order
PIVOT (SUM(Qty) FOR Prod IN
([Bike],[Chain])) PVT
Cust
Bike
Chain
Mike
8
2
Lisa
3
7
UNPIVOT – converts columns to values
Cust
Bike
Chain
Mike
8
2
Lisa
3
7
SELECT Cust, Prod, Qty
FROM PivotedOrder
UNPIVOT (Qty FOR Prod IN
([Bike],[Chain])) UnPVT
Cust
Prod
Qty
Mike
Bike
8
Mike
Chain
2
Lisa
Bike
3
Lisa
Chain
7
*
5. 개발 생산성
새로운 함수 추가 및 성능 향상
• Ranking 및 Windowing 함수 : 특정 기준에 따른 순위 결과를 결과 셋에 컬럼 형태로 추가해줍니다.
- ROW_NUMBER : 결과 셋의 정렬된 순서에 따라 1부터 오름차순으로 고유의 수를 부여합니다.
- RANK : 결과 셋의 정렬된 순서에 따라 1부터 오름차순으로 수를 부여하되, 중복되는 값 및 동일 순위 처리를 해 줍니다.
- DENSERANK : 결과 셋의 정렬된 순서에 따라 1부터 오름차순으로 수를 부여하되, 중복되는 값은 처리하고
동일 순위 처리는 하지않습니다.
- NTILE(N) : 결과 셋의 총 Row수를 N 등분하여 그룹 짓고, 각 그룹에 대해 1부터 N까지 부여합니다.
SELECT orderid, customerid,
ROW_NUMBER() OVER(ORDER BY
RANK()
OVER(ORDER BY
DENSE_RANK() OVER(ORDER BY
NTILE(5)
OVER(ORDER BY
FROM orders
WHERE orderid < 10400
AND
customerid <= 'BN'
customerid)
customerid)
customerid)
customerid)
AS
AS
AS
AS
num,
[rank],
[denserank],
ntile5
orderid
----------10308
10365
10355
10383
10278
10280
10384
10265
10297
10360
customerid
---------ANATR
ANTON
AROUT
AROUT
BERGS
BERGS
BERGS
BLONP
BLONP
BLONP
num
-----1
2
3
4
5
6
7
8
9
10
rank
-----1
2
3
3
5
5
5
8
8
8
denserank
--------1
2
3
3
4
4
4
5
5
5
tile5
-----1
1
2
2
3
3
4
4
5
5
*
5. 개발 생산성
4
XML 지원 기술
고유의 XML 데이터 형식을 지원 합니다.
• XML을 TEXT로 저장할 필요 없이 노드 별로 저장 가능합니다.
• 파일시스템에 존재하는 XML과 통합 하기 위해 불필요한 작업 없이 필요 없습니다.
• 문서중심적 또는 데이터 중심적 XML로서 문서 관리 등에 있어서 새로운 시나리오의 기반이 됩니다.
XML 스키마 지원
• Input과 Update시 유효성 확인 프로세스를 거치게 됩니다.
• 스키마 collections은 스키마 버전을 지원합니다.
XML 인덱스를 지원합니다.
XQUERY 지원
• XML 데이터 형식을 사용하여 저장된 XML 데이터를 쿼리할 수 있습니다.
• 뿐만 아니라 XML DML이 지원되기 때문에, 손쉽게 XML 데이터(노드 값 등)를 변경 가능합니다.
5
XML 지원 기술
Service Broker : 2.2 SODA 참조
•
•
•
•
데이터베이스 기반 신뢰성 있는 메시지 송수신 프로그래밍 환경을 제공합니다. (비 동기식, 분산, 독립적 프로그래밍 환경)
QUEUE, CONVERSATION, MESSAGE를 기반으로 하고 있습니다.
다중 메시징 구성이 가능하며 빠른 성능을 제공합니다.
비동기 및 동기 트랜잭션을 제공합니다.
*
6. 장애복구 방안
1
백업
백업 개요
• 백업을 만드는 목적은 손상된 데이터베이스를 복구할 수 있게 하는 데 있습니다.
• 백업을 할 때 중요한 점은 시스템 및 사용자의 특정 비즈니스 요구를 만족시키는 전략을 세워야 한다는 점 입니다.
• 백업 전략에서 고려해야 할 사항은 다음과 같습니다.
-
백업 유형 및 빈도
백업에 필요한 하드웨어의 특성 및 속도
백업 테스트 방법
백업 미디어 보관 위치 및 방법(보안 고려 사항 포함)
• SQL Server 2005에서는 온라인 백업을 지원하기 때문에, 백업 작업이 트랜잭션에 영향을 주지 않습니다.
백업 종류 및 방법
• 데이터베이스 백업 및 차등 백업
종류
세부 내용
데이터베이스
전체 백업
• 전체 백업은 전체 백업을 복구할 수 있도록 트랜잭션 로그의 일부를 포함하는 전체 데이터베이스를 백업합니다.
• 전체 백업은 백업 완료 시점의 해당 데이터베이스를 나타내며, 복원 시 백업이 완료된 시점으로 복구할 수 있습니다.
• 전체 백업은 데이터베이스에 있는 모든 데이터를 포함하며 전체 차등 백업의 기반이 되는 기준 백업으로 사용할 수 있습니다.
데이터베이스
전체 차등 백업
• 전체 차등 백업은 마지막 전체 백업 이후에 변경된 데이터만 기록합니다.
• 전체 차등 백업은 잦은 백업을 단순화하고 데이터 손실 위험을 줄일 수 있으며 전체 백업보다 크기가 작고 빠릅니다.
데이터베이스
부분 백업
•
•
•
•
데이터베이스
부분 차등 백업
• SQL Server 2005의 새롭게 추가된 기능으로 사용하기가 쉽고 단순 복구 모델에서 백업하는 데 많은 유연성을 제공합니다
• 부분 차등 백업은 백업 시 주 파일 그룹 및 읽기/쓰기 파일 그룹의 변경된 익스텐트만 포함합니다.
• 부분 백업에 의해 캡처된 데이터 일부가 변경된 경우 데이터베이스 관리자는 부분 차등 백업을 통해 더 작은 백업을 빠르게
만들 수 있습니다.
전체 파일 및
파일그룹 백업
• 하나 이상의 완전한 파일/파일 그룹을 백업합니다.
• 손상된 파일만 빨리 복원 가능하고, 유연성이 뛰어난 장점을 가집니다.
파일 차등 백업
• 파일 차등 백업은 기반으로 전체 파일 백업을 요구합니다
• 같은 데이터베이스에서 데이터베이스 차등 백업과 파일 차등 백업을 함께 사용하면 안됩니다.
SQL Server 2005의 새롭게 추가된 기능으로 사용하기가 쉽고 단순 복구 모델에서 백업하는 데 많은 유연성을 제공합니다.
부분 백업은 전체 백업과 비슷하지만 부분 백업에는 모든 파일 그룹이 포함되지는 않습니다.
부분 백업에는 주 파일 그룹, 모든 읽기/쓰기 파일 그룹 및 지정한 모든 읽기 전용 파일의 모든 데이터가 포함됩니다.
읽기 전용 데이터베이스의 부분 백업에는 주 파일 그룹만 포함됩니다.
*
6. 장애복구 방안
• 트랜잭션 로그 백업
- 전체 및 대량 로그 복원 모델에서는 트랜잭션 로그의 정기적 백업이 데이터 복구에 필수적입니다. 트랜잭션 로그 백업을 사용하여 오류
지점이나 특정 지정 시간의 상태로 데이터베이스를 복구할 수 있습니다.
- 트랜잭션 로그 백업은 일반적으로 전체 백업보다 적은 리소스를 사용합니다. 따라서 전체 백업보다 자주 트랜잭션 로그 백업을 할 수 있으므로
데이터를 손실할 위험성이 감소합니다.
- 기본 로그 백업, 대량 로그 백업, 비상 로그 백업 이상의 세 가지 백업 유형이 있습니다.
백업 관리
• 필요할 때 시스템을 복원할 수 있도록 하려면 백업을 신중히 관리해야 합니다.
• 각 백업에는 백업이 생성될 때 제공된 설명 텍스트와 백업의 만료 정보가 포함되어 있습니다. 이를 통해 다음과 같은 작업이 가능합니다.
- 백업 식별
- 백업을 안전하게 덮어쓸 수 있는 시기 결정
- 테이프 또는 디스크와 같은 백업 미디어에서 모든 백업을 식별하여 복원할 백업 결정
• 서버에서 이루어지는 모든 백업 및 복원 작업에 대한 전체 기록은 msdb 데이터베이스에 저장됩니다.
File 1
File 2
File 3
Log 1
Log 2
파일/파일그룹
단위 백업
Log 3
Log 4
데이터베이스
전체 백업
데이터베이스
부분 백업
트랜잭션 로그 백업
<< 백업 방법 모델 >>
*
6. 장애복구 방안
2
복원
복원 및 백업 복구 개요
• 복원 시나리오는 하나 이상의 백업으로부터 데이터를 복원하고 마지막 백업이 복원되었을 때 데이터베이스를 복구합니다.
• 복원 또한 백업과 마찬가지로 사용자의 비즈니스 요구를 충족시키는 전략을 세워야 합니다.
• 복원 전략에서 고려해야 할 사항은 다음과 같습니다.
- 누가 복원을 담당할 것인가
- 어떻게 데이터베이스 가용성 목표를 충족시키고 데이터 손실을 최소화할 것
• SQL Server 2005에서는 온라인 복원을 지원하기 때문에, 복원을 위해 시스템을 중지시키지 않아도 되며 시스템의 가용성을 높일 수 있습니다.
• 복원 시나리오 구현
종류
완전 데이터베이스 복원
증분 복원
파일/파일그룹별 복원
세부 내용
• 백업이 완료되었을 때 데이터베이스에 있던 모든 파일과 데이터베이스가 다시 만들어집니다..
• SQL Server 2005에서 여러 개의 파일 그룹으로 구성된 데이터베이스는 증분 복원이라는 프로세스를 통해
단계별로 복원할 수 있습니다.
• 증분 복원을 사용하면 주 파일 그룹 및 일부 보조 파일 그룹을 초기에 부분적으로 복원한 다음 파일
그룹을 복원할 수 있습니다..
• 복원되지 않은 파일 그룹은 오프라인으로 표시되고 액세스할 수 없지만 오프라인 파일 그룹은 나중에
파일 복원으로 복원할 수 있습니다.
• 이처럼 서로 다른 시간에 단계별로 전체 데이터베이스를 복원할 수 있도록 증분 복원에서는 각 단계가
끝날 때마다 계속 데이터베이스의 일관성을 확인하고 그 정보를 유지합니다.
• 파일 혹은 파일 그룹별로 복원이 가능합니다.
페이지 복원
• 페이지 복원은 손상된 개별 페이지를 복구하는 데 사용됩니다
• 체크섬 또는 조각난 쓰기에 의해 손상되었을 때 검색한 페이지만 수정할 수 있습니다
온라인 복원
• 데이터베이스가 온라인 상태일 때 오프라인 상태의 파일/파일 그룹을 복원합니다.
• 데이터베이스에 대한 부분 가용성을 높여주는 효과를 가져옵니다.
복원 시퀀스 작업
• 트랜잭션 로그의 로그 시퀀스 번호를 통하여 로그 체인을 따라 복원 작업을 수행할 수 있습니다.
• 복원 시퀀스를 구성하는 데 필요한 필수 정보들은 카탈로그 뷰, msdb 데이터베이스 및 백업에 저장되어 있습니다.
*
6. 장애복구 방안
3
재해복구
재해 복구 계획
• 자연 재해를 입었을 때 모든 시스템과 데이터가 정상적으로 작동하도록 신속하게 복원하려면 재해 복구 계획을 만들어야 합니다.
• 이상적인 재해 복구 계획은 복구 작업의 소요 시간과 사용자가 예상할 수 있는 데이터베이스의 최종 상태를 밝히는 것입니다.
• 재해 복구 계획의 유형은 다음과 같습니다.
–
–
–
–
하드웨어를 확보하는 방법
통신 계획
재해 처리 관련자 정보
각 복구 시나리오에 필요한 작업 검사 목록
재해 복구 절차
• 운영체제 등에 대한 일반적인 시스템 환경 구성을 수행합니다.
• SQL Server 2005를 설치한 후 master, msdb, model 데이터베이스 백업에 대한 복원 작업을 수행합니다.
• 사용자 데이터베이스 백업에 대한 복원 작업을 수행합니다.
재해 복구 솔루션
SQL Server 2005에서는 다양한 재해 복구 솔루션을 제공하고 있습니다.
• 로그 전달
– 일정 간격을 두고 변경 로그 백업을 백업 서버로 복사하여 동기화시키는 기술입니다.
– 데이터베이스 수준의 가용성을 제공합니다.
– 상세 내용 : 1.2 로그 전달 참조
• 복제
– 지정한 시나리오에 따라 원격의 데이터베이스를 동기화 시키는 기술입니다.
– 데이터베이스 수준의 가용성을 제공합니다.
– 상세 내용 : 1.4 복제 참조
• 장애 복구 클러스터링
– Windows Server의 MSCS를 바탕으로 하고 있습니다.
– 서버 수준의 가용성을 제공합니다.
– 상세 내용 : 1.1 장애 복구 클러스터링 참조
*
7. 연동방안 (이기종, 동일기종)
1
Service Broker의 비 동기 식 메시징을 통한 데이터 이동
독립 실행 형 대기 인프라를 구축하지 않고 SQL Server 2005를 사용해 대기 열 방식 통신을 제공합니다.
고성능 트랜잭션 메시징, 통합된 백업 및 복구 메커니즘 등 제공
다음과 같은 경우에 Service Broker 사용이 적절합니다.
• 하나 이상의 별도 SQL Server 2005 instant를 사용해 저장 프로시저로 구축된 논리를 연결할 때
• 같은 또는 다른 SQL Server 2005 instant에서 저장 프로시저를 갖춘 SQL Server 2005를
• 사용해 .NET Framework 어플리케이션으로 구축된 논리를 연결할 때
*
7. 연동방안 (이기종, 동일기종)
2
연결 서버 (Linked Server)를 통한 분산 쿼리
연결 서버 (Linked Server)를 통한 분산 쿼리
데이터베이스 서버 단에서 연결이 이루어지기 때문에 Application Server나 Web Server에 대해서 투명합니다.
OLE DB Provider나 ODBC Driver를 통해서 연결합니다.
연결 후 원격 서버에 접근하는 방법으로는 아래와 같은 세가지 방법을 사용합니다.
• 4-Part-Name 사용
– Server.database.owner.table과 같은 방법으로 접근합니다.
• OPENQUERY를 통한 방법
– 4-Part-Name과 달리 쿼리문의 파싱이 원격 서버에서 이루어집니다. 그 결과 타 DB의 고유한 함수, 데이터 타입 처리가 가능합니다.
– Select * from OPENQUERY( Linked Server 이름, ‘쿼리 문’) 의 형식으로 접근합니다.
• Execute AT을 통한 방법
– Execute문을 통하여 원격 서버로 통과 명령(pass-through command)을 보낼 수 있습니다.
– 동적 쿼리 및 컨텍스트 스위칭이 가능합니다.
– EXEC ( ‘쿼리 문') AT [Linked Server 이름] 의 형식으로 접근합니다.
4-Part-Name
OPENQUERY
EXECUTE AT
쿼리문 파싱 위치
로컬 서버
원격 서버
원격 서버
동적 쿼리 사용
불가
불가
가능
컨텍스트 스위칭
불가
불가
가능
*
7. 연동방안 ( 이기종, 동일기종 )
3
Integration Services를 통한 데이터 이동 및 변환
데이터를 추출, 변환, 가공하는 Enterprise ETL 솔루션으로서 데이터 흐름 제어도 가능합니다.
SQL Server Agent의 스케쥴링을 통해 일정 주기로 데이터를 이동 / 변환이 가능합니다.
데이터베이스의 데이터 뿐만 아니라, 텍스트, 이미지 등 다양한 데이터 소스에서 데이터를 가져올 수 있습니다.
사용자가 자신이 원하는 작업, 계산식, 변환 등을 정의할 수 있습니다.
*
7. 연동방안 ( 이기종, 동일기종 )
4
복제를 이용한 연동방안 (Oracle 게시자 복제)
Oracle 데이터베이스를 복제 서비스의 게시자로 이용하고, SQL Server 2005가 배포자 및 구독자의 역할을 수행하는 구조입니다.
Oracle Ver 8.x 이상에서 OS와 무관하게 가능합니다.
Oracle에 추가적인 소프트웨어를 설치할 필요가 없으며 Oracle 서버를 SQL Server에서 마치 SQL Server처럼 쉽게 관리 가능합니다.
트랜잭션 복제, 스냅샷 복제의 두 가지 복제 모델을 지원합니다.
SQL Server 2005 배포자에는 Oracle 데이터베이스 서버와 통신을 위한 Oracle 클라이언트 소프트웨어 및 Oracle OLE DB 공급자를 설치 및
구성해야 합니다.
복제 가능한
Oracle Database object
테이블, 인덱스로 구성된 테이블, 인덱스
구체화된 뷰 (테이블로 복제됨)
게시된 테이블에 표시할 수는 있지만
복제는 불가능한 Oracle Database object
도메인 기반 인덱스, 함수 기반 인덱스
기본값, CHECK 제약 조건, 외래 키
스토리지 옵션 (테이블스페이스, 클러스터 등)
복제 불가능한
Oracle Database object
중첩 테이블, 뷰패키지, 패키지 본문,
프로시저 및 트리거, 큐, 시퀀스, 동의어
(Synonym)
*
8. 성능 향상 및 대용량 데이터베이스 지원
1
스냅샷 격리 수준
SQL Server 2005에서는 행 버전 관리와 관련하여 다음과 같은 2가지 스냅샷 격리 수준 옵션을 추가로 제공합니다.
속성
문에서 읽는
데이터의 버전
2
커밋된 읽기 스냅숏 격리 수준
스냅숏 격리 수준
• 각 문이 시작되기 전에 커밋된 모든 데이터
• 각 트랜잭션이 시작되기 전에 커밋된 모든 데이터
업데이트
처리 방법
• 행 버전을 실제 데이터로 변환하여 업데이트할 행을
선택하고 선택한 데이터 행에 업데이트 잠금을 사용합니다.
• 수정할 실제 데이터 행에 대해 베타적 잠금을 획득합니다.
• 업데이트 충돌 검색은 사용되지 않습니다.
• 행 버전을 사용하여 업데이트할 행을 선택합니다.
• 수정할 실제 데이터 행에 대해 배타적 잠금을 획득하려
시도합니다.
• 데이터가 다른 트랜잭션에 의해 이미 수정된 경우에는
업데이트 충돌이 발생하며 스냅숏 트랜잭션이 종료됩니다.
업데이트
충돌 검색
• 없음
• 통합 지원되며 해제할 수 없습니다.
비동기 통계 업데이트
오래된 통계의 업데이트를 시작하는 쿼리는 통계 업데이트가 끝난 후에야 결과 집합을 컴파일하여 반환할 수 있기 때문에,
쿼리 응답 시간을 예상할 수가 없습니다.
비동기 통계 업데이트는 다음과 같은 과정으로 진행됩니다.
• 데이트가 필요한 오래된 통계는 큐에 위치되어 작업자 스레드에 의해 백그라운드 프로세스로 업데이트 됩니다.
• 통계 업데이트를 시작하는 쿼리 및 기타 다른 쿼리들은 통계가 업데이트 될 때 까지 기다리는 것이 아니라 기존의 오래된 통계를
사용하여 컴파일 됩니다.
비동기 통계 업데이트를 이용할 경우 통계 업데이트에 따른 지연이 없으므로 쿼리 응답 시간은 예상 가능하지만,
통계가 새로 업데이트되는 동안 오래된 통계를 이용하기 때문에 쿼리 최적화 프로그램에서 덜 효율적인 쿼리 계획을 선택할 수도 있습니다
*
8. 성능 향상 및 대용량 데이터베이스 지원
3
메모리 관리 성능 향상
SQL Server 인스턴스는 동적 AWE를 사용하여 가용한 메모리 공간에 따라 메모리 소비를 조정합니다.
이에 따라 메모리 자원을 효율적으로 사용할 수 있습니다.
세부사항 : SQL Server 2005 아키텍처 1.2의 메모리 아키텍처 부분 참고
4
데이터베이스 스냅샷
데이터베이스 스냅샷은 원본 데이터베이스에 대한 읽기 전용 정적 뷰 입니다.
각 데이터베이스 스냅샷은 스냅샷을 만든 시점의 원본 데이터베이스와
트랜잭션이 일치하며, 읽기 작업 및 백업 용도로 사용될 수 있습니다.
데이터베이스 스냅샷 아키텍처
• 데이터베이스 스냅샷은 원본 데이터베이스에 대한 특정 시점의 논리적인
복사본입니다. 그렇기 때문에 실제 물리적으로 큰 공간을 차지하지 않으며
저장 공간을 효과적으로 사용할 수 있습니다.
• Copy-on-Write 메커니즘 : 만약 원본 데이터베이스에 업데이트가 일어나면,
과거의 정보가 데이터베이스 스냅샷에 물리적으로 저장됩니다.
이를 통해 특정 시점의 데이터를 계속 보여줄 수 있습니다.
데이터베이스 스냅샷을 통해 얻는 이점은 다음과 같습니다.
• 읽기 작업에 대한 작업 부하 분산을 통해 성능 향상을 이룰 수 있습니다.
• 데이터베이스 미러링과 같이 쓰여 확장성을 제공할 수 있습니다.
• 보고서 생성을 위해 기록 데이터를 유지 / 관리할 수 있습니다
• 효율적인 백업 방법을 제공합니다.
원본 DB
스냅샷 DB
SELECT
…
UPDATE
…
Copy-On-Write
업데이트가 일어날
경우에만 과거의
정보가 스냅샷 DB에
물리적으로 저장됨
SELECT
…
<< 데이터베이스 스냅샷 아키텍처 >>
*
8. 성능 향상 및 대용량 데이터베이스 지원
5
쿼리 계획 성능 향상
힌트
RECOMPILE
OPTIMIZE FOR
USE PLAN
PARAMITERIZATION
6
세부 내용
• SQL Server가 쿼리에 대해 생성된 계획이 실행된 후 이를 삭제하도록 강제하여 동일 또는 유사 쿼리 계획이 실행될 때 새로운
계획이 생성되도록 합니다.
• 컴파일 및 실행될 때마다 변수 값이 크게 달라지는 쿼리에 유용합니다
• SQL Server에서 쿼리가 컴파일 및 최적화될 때 알 수 없는 값이 포함된 로컬 변수에 대해 특정 값을 사용하도록 합니다.
• SQL Server에서 쿼리에 대해 기존 쿼리 계획을 사용하도록 합니다.
• 쿼리 계획을 컴파일 할 때 쿼리가 매개 변수화되는지 여부를 지정합니다
• PARAMITERIZATION 옵션을 FORCED로 설정하면 데이터베이스에서 실행되는 모든 쿼리에 매개 변수화 되도록 지정할 수
있습니다. 이를 통하여 쿼리 재 컴파일 횟수를 줄여서 특정 데이터베이스의 성능 향상 효과를 가져올 수 있습니다.
MARS (Multiple Active Result Set)
기존의 SQL Server 2000 에서는 각 연결에 대해 한 번에 하나의 문만 결과 집합을 반환할 수 있었으며, 결과 집합이 모두 검색되기 전에는
새로운 문을 실행할 수 없었습니다.
SQL Server 2005에서는 여러 문이 단일 연결을 통해 결과 집합을 동시에 반환할 수 있습니다.
MARS
<< SQL Server 2000 >>
<< SQL Server 2005 MARS의 사용 >>
*
8. 성능 향상 및 대용량 데이터베이스 지원
7
향상된 인덱싱 뷰
SQL Server 2005 쿼리 최적화 프로그램은 인덱싱된 뷰에 대해 다음과 같은 요소가 있을 경우 쿼리를 처리할 때 이전 버전보다
더 효율적으로 인덱싱된 뷰를 사용합니다.
•
•
•
8
스칼라 식,스칼라 집계
사용자 정의 함수
범위 및 동등 조건
비클러스터형 인덱스 향상
비클러스터형 인덱스에 키가 아닌 열을 포함시킬 수 있습니다
•
•
•
키가 아닌 열을 포함시키면 데이터 행에 액세스할 필요 없이 인덱스로부터
필요한 데이터를 가져올 수 있어 쿼리 속도를 높일 수 있습니다.
인덱스 크기 제한인 최대 16개의 키 열 및 최대 900바이트의 인덱스 키 크기가
초과되는 것을 피할 수 있습니다.
(인덱스 키 열의 수 또는 인덱스 키 크기를 계산할 때 데이터베이스 엔진은
키가 아닌 열은 제외하기 때문입니다.)
varchar(max), varbinary(max), nvarchar(max) 같은 큰 문자열을 위한 데이터 타입도
비클러스터형 인덱스에 포함시킬 수 있습니다.
*
8. 성능 향상 및 대용량 데이터베이스 지원
9
테이블 및 인덱스 분할
SQL Server 2005에서는 테이블 및 인덱스 분할을 통해 대용량 데이터 저장 및 처리 기능이 향상되었습니다.
•
•
•
•
•
10
데이터 컬럼의 값을 기준으로 다수의 저장공간에 데이터와 인덱스를 분리해서 저장 가능합니다.
단일 컬럼 값의 범위를 기준으로 분할할 수 있습니다.
관계형 엔진에 의해서는 테이블 및 인덱스가 분할되었어도 전체를 단일 개체로 인식합니다.
저장 엔진에 의해서는 분할된 각각의 파티션을 하나의 개체로 인식합니다.
개체당 1000개까지 분할 가능합니다.
관리성 측면의 향상 : 3.7 테이블 및 인덱스 분할 참고
병렬 처리 향상
병렬쿼리 및 병렬 처리 수준 : SQL Server 2005 아키텍처 1.1의 쿼리 프로세서 아키텍처 부분 참고
인덱스 작업, 내부 무결성 관리 (DBCC), 데이터 로드 작업, 데이터 변환 작업 등의 병렬 처리도 병렬 처리 수준에 따라 결정되며 성능 면에서
향상되었습니다.
*
© 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this material.