본문 바로가기
Database

[DB] SQL Server 2012 - 자동설치 가이드 | 가상머신 템플릿 배포

by 인프라보이 2020. 4. 11.

[My Job]

나는 시스템 관리 운영자입니다. 많은 서버를 만들어서 빠르게 제공을 하는 업무를 하고 있어요.

오늘은 MSSQL 2012 서버를 10대 만들어 제공해야 합니다. 일반적인 방법은 OS를 설치하고 DB ISO를 마운트 하여 데이터베이스 명칭 설정 등등 반복적인 업무를 다음과 같은 방법으로 자동으로 설치될 수 있도록 할 것입니다.     

 

[주의]

가상머신에 MSSQL 설치하고 템플릿 말거나 복제하면 안 됩니다.

SID 중복으로 인한 충돌로 인하여 정상적인 DB가 아니게 됩니다. 물론 이 방법으로 단일 데이터베이스로만 활용이 가능하고, 클러스터 구성을 위해서는 조금 더 Deep 한 설정이 필요합니다.

 

[목적]

온프레미스 환경에 독립 실행형 SQL Server 2012를 자동 설치를 위한 템플릿 구성 방법 

 

 

[사전 준비]

 1. VMware 가상머신으로 Windows Server 2012 R2 설치

 2. OS 내부 C:\ 밑에 SQL Server 2012 설치 ISO 저장

 3. VM에 이중화 구성 시 필요한 Mirror용 디스크 추가 (E:\)

 4. Heartbeat용 Network Adapter 2개 추가 연결 (Adapter 총 3개)

  - Service용, HeartBeat용, Mirror 용 (클러스터 구축 시)

 

[과정 및 방법]

  1. 독립 실행형 SQL Server 인스턴스의 이미지 준비 

      "사전 준비" 완료 후 C드라이브에 저장한 SQL 설치 ISO를 마운트 하여 설치 센터를 실행합니다.

      "독립 실행형 SQL Server 인스턴스의 이미지 준비" 버튼을 클릭합니다.

ISO 마운트 후 설치 센터 화면

  2. 설치 마법사를 통해 대부분 기본 옵션으로 설정하고, "기능 선택"에서 두 가지만 선택합니다. 

      "데이터베이스 엔진 서비스" 

      "관리 도구 - 기본/관리도구 - 전체" 

  3. 이후 모든 준비 작업을 마치고 "준비(P)"를 눌러줍니다.

  4. 독립 실행형 SQL Server 준비 인스턴스의 이미지 완료는 수행하지 않고 스크립트를 작성합니다.

     메모장을 열고 아래 스크립트를 Copy & Paste. 경로와 폴더명만 주의하세요.

powershell.exe -Executionpolicy Bypass -Command Mount-DiskImage 
-ImagePath "C:\SW_DVD9_SQL_Svr_Standard_Edtn_2012w_SP3_64Bit_Korean_MLF_X20-66886.ISO"

# SQL설치 ISO 마운트

F:\setup.exe /q /ACTION=CompleteImage /INSTANCENAME=MSSQLSERVER /INSTANCEID="MSSQLSERVER" 
/SQLSVCACCOUNT="NT Service\MSSQLSERVER" /SQLSYSADMINACCOUNTS="Administrator" 
/AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IACCEPTSQLSERVERLICENSETERMS 
/SECURITYMODE="SQL" /SAPWD="xpavmfflt1!" /SQLBACKUPDIR="E:\Backup" /SQLTEMPDBDIR="E:\TempDB" 
/SQLTEMPDBLOGDIR="E:\TempDBLog" /SQLUSERDBDIR="E:\Data" /SQLUSERDBLOGDIR="E:\DATA"

# SQL Server 이미지 완료 스크립트
# 데이터베이스 저장 폴더를 E:\드라이브로 지정
# SA계정 패스워드 지정

powershell.exe -Executionpolicy Bypass -Command Dismount-DiskImage 
-ImagePath "C:\SW_DVD9_SQL_Svr_Standard_Edtn_2012w_SP3_64Bit_Korean_MLF_X20-66886.ISO"

# SQL설치 ISO 마운트 해제

del c:\SW_DVD9_SQL_Svr_Standard_Edtn_2012w_SP3_64Bit_Korean_MLF_X20-66886.ISO

# SQL설치 ISO 제거

#[Optional] 네트워크 어댑터 명칭 변경 (클러스터 설치용)
powershell.exe -Executionpolicy Bypass -Command netsh interface set interface name="Ethernet0" newname="Public"
powershell.exe -Executionpolicy Bypass -Command netsh interface set interface name="Ethernet1" newname="Heartbeat"
powershell.exe -Executionpolicy Bypass -Command netsh interface set interface name="Ethernet2" newname="Mirror"

#[Optional] 클러스터 설치용 OS 기본값 변경
cmd.exe /c winrm quickconfig -q
cmd.exe /c winrm set winrm/config/winrs @{MaxMemoryPerShellMB="500"}
cmd.exe /c winrm set winrm/config @{MaxTimeoutms="1800000"}
cmd.exe /c winrm set winrm/config/service @{AllowUnencrypted="true"}
cmd.exe /c winrm set winrm/config/service/auth @{Basic="true"}
cmd.exe /c winrm set winrm/config/client/auth @{Basic="true"}

net stop MSSQLSERVER

# MSSQL서비스 중지

  5. 스크립트를 "sqlrun.bat" 파일로 "C:\" 경로 하위에 저장합니다. 

  6. 방금 설정을 마친 가상서버 Windows Power Off 합니다.

  7. VMware 가상머신을 템플릿으로 변환합니다.

  8. 이제 이 템플릿을 배포만 하면 SQL Server 2012가 자동으로 설치된 서버가 생겨나게 됩니다. 

  9. "한번 실행" 항목에서 C:\sqlrun.bat을 넣어줍니다. 서버가 부팅되고 이전에 작성한 스크립트를 수행합니다.

  10. "새 보안 ID(SID) 생성" 체크해야 합니다.

이제 템플릿 배포를 완료하면 SQL Server 2012가 설치된 Windows Server 2012가 생겨납니다.

 

[결론]

기본적인 내용이지만, 스크립트에 SQL Server 완료 이미지를 수행하는 명령문은 여러 시행착오 끝에 완료가 되었습니다.

AWS RDS같이 완성형 데이터베이스를 제공할 경우?를 대비하여 작성하였습니다.

SQL 2016, 2019 등도 생겨났는데 힘내 봅니다.

728x90

'Database' 카테고리의 다른 글

[DB] MySQL8 | MySQL 설치 on CentOS 7  (0) 2021.09.07

댓글