류짱:Beyond MySelf

MSSQL Failover Cluster의 TempDB를 로컬 디스크로 변경 하는 방법

서비스중인  SQL Server 2012R2  Failover Cluster의 TempDB를 로컬 디스크로 변경하는 작업을 위한 가이드를 공유해봅니다.
아래 작업을 진행한 배경은 요기(http://ryuchan.kr/525)서 확인 가능합니다.

[사전 작업]
- 각 노드에 SSD 디스크 추가
- 반드시 사전에 양쪽 노드의 동일 한 위치에 Tempdb가 위치할 폴더를 생성 합니다.
 
[ 작업 절차 ]
SSD 추가 작업이 완료 된 후 각 노드의 동일한 위치에 Tempdb폴더가 생성 되었다는 가정하에..

1. 현재 SQL 소유권을 가지고 있는 Node 확인
-> node2


2. SQL 서버의 소유권을 가지고 있는 서버로 로그온 후 sql management 실행  Tempdb 위치 확인

SELECT name, physical_name AS CurrentLocation 
FROM sys.master_files 
WHERE database_id = DB_ID(N'tempdb'); 
GO

현재 Tempdb는 클러스터 공유 디스크(E 드라이브)에 연결 되어 있음을 확인

3. Alter database 명령어를이용해서 Tempdb 위치 변경

USE master; 
GO 
ALTER DATABASE tempdb  
MODIFY FILE (NAME = tempdev, FILENAME = 'c:\sql\temp\tempdb.mdf'); 
GO 
ALTER DATABASE tempdb  
MODIFY FILE (NAME = templog, FILENAME = ' c:\sql\temp \templog.ldf'); 
GO 

위 커멘드를 실행하면 아래 빨간 네모 박스와 같은 경고메시지가 발생합니다.
tempdb가 클러스터 디스크에서 로컬 디스크로 변경 된다는 경고이므로 참고만 합니다.

4. SQL service 재 시작


5. Tempdb 위치 확인


SQL Failover Test
기존 Node 2에서 Node1로 Failover 가 정상적으로 완료 됨을 확인 할 수 있습니다. 물론 Failback도 잘 되었습니다.

[참고 자료]
Local Tempdb with SQL Server 2012R2 Failover Cluster #1
http://ryuchan.kr/525

Local Tempdb with SQL Server 2012R2 Failover Cluster #2
http://ryuchan.kr/526

Move System Databases
https://docs.microsoft.com/en-us/sql/relational-databases/databases/move-system-databases


감사합니다.


저작자 표시 비영리 변경 금지
신고

Comment 0

Local Tempdb with SQL Server 2012R2 Failove Cluster #2

각 노드에 Failover Cluster가 구성 되었기 때문에 이번에는 해당 노드에 TempDB만 로컬 디스크를 이용하는
SQL Server 2012R2 Failover Cluster를 구성 하는 방법을 소개 합니다.

SQL 설치를 위해서는 해당 노드의 OS(Widows Server 2012R2)에 .NetFrameWork3.5가 설치 되어야 하는데 이게 기능 추가에서
잘 되지 않죠?
dism 명령어를 이용해서 추가 해 보았습니다.

Dism 명령어를 이용한 닷넷프레임워크 설치 방법의 자세한 내용은 예전 포스팅을 참고 부탁 드립니다.(여기)

SQL의 Failover Cluster 구성도 몇 번 공유 한적이 있기 때문에 간략하게 설치 과정을 소개하합니다.

아래 클러스터의 디스클 할당 하는 부분은 현재 TempDB만 로컬 디스크로 설정할 것이기 때문에 살펴 보겠습니다.
SQL 클러스터 구성 중 아래 화면에서 데이터의 디렉터리를 설정 하는 부분에서 TempDB의 디렉터리를 로컬 디스크로 설정합니다.

여기서 주의 할점은 TempDB가 위치할 폴더가 반드시 두 노드의 동일한 위치여야 한다는 것입니다.

TempDB가 로컬 디스크이기 때문에 경고 메시지가 발생 합니다.아래 메시지를 보시면 위에서 얘기한 각 노드에 동일한 위치에 Tempdb가
존재 하야 한다는 설명이 있습니다.

 Yes를 클릭 한 후 다음으로 넘어 갑니다.

TempDB가 로컬 디스크로 지정 되었음에도 첫 번째 노드에서 SQL Failover Cluster가 잘 구성 되었습니다.

이제 두번째 노드에서 SQL Failover Cluster를 설치 합니다.

두번째 노드에서도 문제 없이 설치가 완료 되었습니다.

SQL Failover Cluster 의 구성 완료 후 SQL관리 콘솔을 실행하여 다시 한번 TempdDB의 위치를 확인 해 보았습니다.

아래 그림에서 처럼 TempDB가 로컬 디스크에 위치 됨을 확인 할 수 있습니다.


이 상태에서 SQL Server의 Fail over를 테스트 합니다.


문제 없이 Failover가 진행 되었고 Node2에도 TempDB의 파일이 생성 됨을 확인 할 수 있습니다.


위 가이드는 SQL Failover Cluster를 새로 구성하는 과정에서 TempDB를 로컬 디스크로 할당 한 것이지만
실제 Failover Cluster로 운영 중인 서버에서도 로컬 디스크로의 변경이 잘 되며 다음에 그 방법을 포스팅 하겠습니다.

Move System Databases
https://docs.microsoft.com/en-us/sql/relational-databases/databases/move-system-databases

감사합니다.

[참고 자료]


저작자 표시 비영리 변경 금지
신고

Comment 0

Local Tempdb with SQL Server 2012R2 Failove Cluster #1

서비스 중인 PC 온라인 게임 서버의 DB 성능 이슈로 사용자 랙이 발생한다고 하여 오래 전에 해당 서버를 분석한 적이 있는데
해당 게임의 개발사는 그 게임은 TempDB를 많이 쓰는 구조라며 TempDB를 SSD로 변경해 줄것을 줄곧 요청 하고 있었던 상황이었습니다.

그러나 해당 서버가 Failover Cluster로 구성 되어 있어 SSD로 환경으로 DB 서버를 교체 하기가 매우 난감했었고, 다행히도
서버가 SQL 2012R2 버전이라 아래와 같이 TempDB만  클러스터 노드에 SSD를 추가하여 운영 해 볼 것을 제안 하였습니다.

아래 문서를 보시면 아시겠지만 SQL Server 2012부터는 TempDB가 로컬 디스크여도 Failover Cluster의 구성이 가능 합니다.

SQL Server failover cluster installation supports Local Disk only for installing the tempdb files.
https://msdn.microsoft.com/en-us/library/ms143506(v=sql.110).aspx
Storage Types for Data Files
The supported storage types for data files are:
 • Local Disk
 • Shared Storage
 • SMB File Share

TempDB만 로컬 디스크를 사용하는 SQL Server 2012R2 Failover Cluster를  VMware환경에 구성 한 후 문제 없이 Fail over가 진행 되는 것을

확인 하고 해당 방법을 공유해 봅니다.^^

[환 경]
 - SQL Server 2012R2 Failover Cluster on VMware single host

[구성 방법]

먼저 VMware vCenter에 접속해 MSCS 구성을 위한 VM 디스크를 생성합니다.
VMware에서 제공하는 아래 가이드를 참고 하시기 바랍니다.

Setup for Failover Clustering and Microsoft Cluster Service
https://docs.vmware.com/en/VMware-vSphere/6.0/vsphere-esxi-vcenter-server-601-setup-mscs.pdf

추가로 클러스터 구성 방법은 예전에도 많이 포스팅을 하였기 때문에 아래 가이드에는 많은 부분이 생략 되어 있음을
참고 부탁 드립니다.^^

첫번째 노드에 VMDK 디스크를 할당 하고

두번째 노드에는 첫번재 노드에 할 당한 디스크를 추가 합니다.


위 방법으로 2대의 노드에 SQL FCI 를 위한 디스크를 생성 한 후

각 노드의 디스크 관리자에서 디스크를 확인 한 후 디스크 포맷 및 드라이브 문자를 할당 합니다.

그 후 각 노드에 Failover Cluster 기능을 설치 한 후 유효성 검사를 실시합니다.

유효성 검사에서 Disk와 Network 등에 경고 메시지가 있긴 하지만 클러스터 구성엔 문제가 없기 때문에 아래와 같이
cluster20.local.loca이라는 이름으로 클러스터를 구성 하였습니다.

이제 클러스터가 구성이 되었기 때문에 다음에는 해당 클러스터 위에 SQL Server 2012R를 설치 하고 TemdDB만 로컬 디스크로 할당 하는 방법에 대해서
소개를 하겠습니다.

고맙습니다.



저작자 표시 비영리 변경 금지
신고

Comment 0