728x90

SQL Server의 mdf, ndf 파일 구조에 대해서 자료를 정리합니다. 재미없는 이론 교육이지만 기초 이해는
반드시 필요하단 생각이 듭니다. msdn과 관련 서적 및 인터넷 자료를 참고했습니다.
역시, 그림이 많아야 이해하기 쉽습니다.


1. Pages
SQL Server의 기본 저장(I/O) 단위는 Page 이며, 크기는 8KB입니다. 데이터베이스 파일(mdf,ndf)에 할당되는
디스크 공간은 논리적인 page 로 나뉘어지며 효율적으로 관리하기 위해 8개의 연속 페이지로 크기가 고정된
Extent 로 구성합니다. 모든 페이지는 익스텐트로 저장됩니다. 1MB(1024KB/8KB)에는 128 pages 가 존재합니다.

사용자 삽입 이미지





























각 페이지는 96-byte 의 header로 시작하며 시스템 정보를 저장하는 데 사용됩니다.
사용자 삽입 이미지


























페이지 번호, 유형, 해당 페이지 사용 가능 크기, 인덱스에서 할당 단위당 사용하는 익스텐트 정보, 마지막
Backup Log 문 이후에 할당 단위당 대량 작업에 의해 수정된 익스텐트 정보, 마지막 Backup Database 문
이후에 할당 단위당 변경된 익스텐트에 대한 정보가 이에 포함됩니다.

사용자 삽입 이미지























Inserting and deleting rows on a heap table data page.

 
 
2. Extents
Extents 는 공간 관리의 기본 단위입니다. 하나의 Extent는 연속하는 8개의 pages (64kb)입니다.
즉, 1MB에는 1024/64 = 16 개의 Extents가 있음을 의미합니다.
SQL Server는 효율적인 공간 할당을 위해 적은 양의 데이터를 포함하는 테이블에 전체 익스텐트를 할당하지
않습니다.

각 페이지는 한 개체에 속하며 한 가지 유형(데이터, 인덱스 등)이지만 Extent 는 최대 8개의 개체에 속할 수
있습니다. 구체적으로 Mixed(혼합) Extent 와 Uniform(균일) Extent 차이점 이해가 필요합니다.
 
Uniform Extent 는 single object가 소유하며 Extent의 전체 8 pages는 소유하는 개체만 사용할 수 있습니다.
Mixed Extent 는 최대 8개의 object가 공유할 수 있으며 Extent의 8 pages를 다른 개체가 소유할 수 있습니다.
 
일반적으로 새 테이블이나 인덱스에는 Mixed Extent의 페이지가 할당되며 테이블이나 인덱스의 페이지가
8페이지로 증가하면 후속 할당을 위해 Uniform Extent를 사용하도록 전환됩니다. 인덱스에 8개의 페이지를
생성하는 데 충분한 행을 가진 기존 테이블에서 인덱스를 만드는 경우 인덱스에 대한 모든 할당 항목은
Uniform Extent에 있습니다.

사용자 삽입 이미지













[참고자료]
Pages and Extents
http://technet.microsoft.com/ko-kr/library/ms190969.aspx

Oracle 전문가를 위한 Microsoft SQL Server 2005 소개
http://download.microsoft.com/download/6/8/f/68f15f44-e957-4a1a-97b8-b7444e4d0379/SQLServer2005ForOracleProfessionals-kor.pdf

SQL Server 2000 UNLEASHED - SAMS


작성자 : Lai Go / 작성일자 : 2008-06-02

728x90

Windows XP 가 설치된 Laptop 테스트용으로 SQL Server 2005 Developer Edition(x86)을 설치합니다.


고가용성 테스트를 위해 3개의 인스턴스를 설치한 뒤 한꺼번에 SP2 + Cumulative update package 7
누적패치를 적용합니다.
테스트에 필요한 인스턴스를 충분히 설치한 뒤 서비스팩이나 HOTFIX
설치해야 합니다.
그렇지 않으면 인스턴스가 추가될 때마다 Service Pack과 Hotfix를 설치해야 하는
고생을 해야 합니다
.

 

[다운로드]

Microsoft SQL Server 2005 서비스 팩 2

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a#filelist

 

X86 설치 파일을 다운로드 한 뒤 실행하여 설치를 시작합니다.
사용자 삽입 이미지



























기본값으로 MSSQLERVER(Default Instance), SECOND, THIRD Instance 를 한꺼번에 설치할 수 있습니다.

사용자 삽입 이미지


























인증 테스트 한 번 해봅니다.
사용자 삽입 이미지


























설치가 시작됩니다. 녹차 한 잔 마시고 옵니다.
사용자 삽입 이미지


























자, 설치가 완료되었습니다.

그럼, SQL Server Service 를 시작하고 Management Studio 를 실행해서 버전을 확인해 봅니다.

Build 3042 잘 보입니다.


[Query]

SELECT @@VERSION


[실행결과]

Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86)

Feb  9 2007 22:47:07

Copyright (c) 1988-2005 Microsoft Corporation

Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

 


, 이제 SQLSECURITY.COM 에서 쓸만한(?) 누적 hotfix 를 찾아봅니다.

http://sqlsecurity.com/FAQs/SQLServerVersionDatabase/tabid/63/Default.aspx

사용자 삽입 이미지














이왕 테스트 머신이니 현재 최신 Cumulative HF7 으로 설치하겠습니다.
다운로드 받아 설치를 진행합니다.
설치 후 엔진 버전 Build 3239가 되는지 확인해 보겠습니다.

 

SQLServer2005-KB949095-x86-ENU.exe 실행

사용자 삽입 이미지
 

























역시 3개의 인스턴스 모두 한 번에 hotfix 를 적용할 수 있습니다.

사용자 삽입 이미지


























녹차 한 잔 더?
사용자 삽입 이미지


























설치가 완료 되었습니다.
사용자 삽입 이미지


























엔진 버전 3239 맞습니다. 완료~!
사용자 삽입 이미지


















[참고자료]

Cumulative update package 7 for SQL Server 2005 Service Pack 2

http://support.microsoft.com/?Kbid=949095

 


작성자 : Lai Go / 작성일자 : 2008.06.03

728x90
SQL Server 2005 Cluster 구현을 위해 각 Node의 Network, Disk 구성 방법을 정리하였습니다.
리소스는 간단하게 SQL, MSDTC 가상 서버만 설치합니다.

[환경]
Windows Server 2003 Enterprise Edition (x86) R2 SP2
SQL Server 2005 Enterprise Edition (x86)


[서버 클러스터 구성 정보]

1. Network 구성 정보
   가. NodeA : 192.168.0.170
   나. NodeB : 192.168.0.171
   다. Cluster : 192.168.0.172
   라. SQL Cluster IP : 192.168.0.173
   마. MSDTC IP : 192.168.0.174
   사. Heartbeat : 10.10.10.1 / 10.10.10.2

2. Disk 구성 정보
   가. Disk 1 - SQL Data (1GB)
   나. Disk 2 - Quorum (512MB)
   다. Disk 3 - MSDTC (512MB)



[Cluster 구현을 위한 Node 설정]

1. 클러스터 서비스 계정 생성
   클러스터 서비스를 위해 각 Node의 Administrator 권한을 가진 SQLCluster 계정을 생성합니다.

사용자 삽입 이미지























2. 컴퓨터 이름 및 Network 구성
   가. 컴퓨터 이름 : NodeA, NodeB
   나. Public Network IP : 192.168.0.170, 192.168.0.171
   다. Private Network IP : 10.10.10.1, 10.10.10.2
   라. 바인딩 순서 변경 (네트워크 연결 - 고급 - 고급설정)
      - Public Network 가 최상위 바인딩 되지 않을 경우 노드가 다른 서버에 접근할 때마다 오류 발생
사용자 삽입 이미지



























   마. Private Network 불필요한 구성 요소 제거
       - 인터넷 프로토콜(TCP/IP)를 제외한 모든 구성 요소를 제거합니다.
       - NetBIOS over TCP/IP 기능 해제
       - DNS 동적 업데이트 기능 해제 (DNS에 이 연결의 주소를 등록 해제)
   바. Private Network 속도는 수동으로 100MB Full Duplex 설정 (환경에 따라 다를 수 있음)
사용자 삽입 이미지




























   사. Public Network 의 DNS는 DC IP를 입력합니다.
   아. NodeA에서 ping 10.10.10.2 (NodeB Private) 테스트를 하여 정상 여부를 확인합니다.
   자. NodeA, NodeB 는 도메인에 참여하고 시스템을 종료합니다.
사용자 삽입 이미지

























3. Disk 구성
   가. 디스크 구성을 위해 NodeA의 전원만 켜고 NodeB의 전원은 Off 합니다.
   나. NodeA 컴퓨터 관리 - 디스크 구성 - 디스크 초기화
사용자 삽입 이미지
























   다. 동적 디스크로 변환하지 않습니다. (기본 설정)
   라. 주파티션으로 포맷하고 드라이브 문자열을 할당합니다.
       - SQL Data - S Drive, Quorum Disk - Q Drive, MSDTC - M Drive 할당
사용자 삽입 이미지































   마.  NodeA 디스크 구성이 완료되었습니다. 이벤트 로그를 확인하여 시스템 이상 여부를 확인한 뒤
         NodeA 전원을 Off 하고 NodeB 전원을 On 합니다.
   바. NodeB 컴퓨터 관리 - 디스크 관리
       이미 NodeA에서 디스크 구성을 완료하였으므로 디스크 1,2,3 에 대해서 "드라이브 문자 및 경로 변경"만
       하면 됩니다.
   사. NodeB 디스크 구성이 완료되었습니다 이벤트 로그를 확인하여 시스템 이상 여부를 확인한 뒤
        NodeB 전원을 Off 하고 다시 NodeA 전원을 On 합니다.


SQL Server 2005 Cluster 구현을 위해 사전 준비 작업 Network, Disk 구성이 완료 되었습니다.
다음 과정은 클러스터 관리자를 통해 클러스터를 설치하도록 하겠습니다.


작성자 : Lai Go / 작성일자 : 2008.06.07

+ Recent posts