- 인쇄
- PDF
Cloud DB for MSSQL 시작
- 인쇄
- PDF
Cloud DB for MSSQL 시작에서는 Cloud DB for MSSQL 사용 환경과 지원 사양을 확인하고 전체 사용 시나리오와 용어를 숙지한 후 Cloud DB for MSSQL을 정상적으로 사용하기 위해 사용자가 해야 할 일을 설명합니다. Cloud DB for MSSQL 시작에서 설명하는 내용은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 애플리케이션 서버 생성 방법
- 애플리케이션 서버 접속 테스트 방법
- 네이버 클라우드 플랫폼 콘솔에서 MSSQL Server 생성 방법
- MSSQL Server 접속 테스트 방법
여기까지 완료했다면 Cloud DB for MSSQL 사용을 위한 기본 과정을 완료한 것입니다. 이후에 좀 더 효율적인 서버 관리와 운영을 위해 다음과 같은 작업을 진행할 수도 있습니다.
- 네이버 클라우드 플랫폼의 Cloud Insight를 활용한 이벤트 및 통보(알람) 설정
- 네이버 클라우드 플랫폼의 Sub Account를 활용한 운영 권한 관리
위 작업은 Cloud DB for MSSQL이 아닌 Cloud Insight, Sub Account에서 이용 신청 후 진행할 수 있으며 이 가이드에서는 자세하게 설명하지 않습니다. 자세한 사용 방법은 Cloud Insight 사용 가이드와 Sub Account 사용 가이드를 참조해 주십시오.
애플리케이션 서버 생성
네이버 클라우드 플랫폼의 콘솔에서 애플리케이션 서버를 생성하는 방법은 다음과 같습니다.
여기에서는 애플리케이션 서버 생성 방법을 간단하게 소개합니다. 전체 생성 방법에 대한 자세한 내용은 Server 사용 가이드를 참조해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
- [서버 생성] 버튼을 클릭해 주십시오.
- Windows 서버 이미지를 클릭하여 선택하고 [다음] 버튼을 클릭해 주십시오.
- 필요한 정보를 입력하고 [다음] 버튼을 클릭해 주십시오.
- 보유하고 있는 인증키가 없는 경우 새로운 인증키를 생성하고 [다음] 버튼을 클릭해 주십시오.
- 보유하고 있는 ACG가 없는 경우 신규 ACG를 생성해 주십시오.
- 최종 확인 후 [서버 생성] 버튼을 클릭해 주십시오.
- 원격 데스크톱 연결을 위해 3.에서 Windows 타입의 서버 이미지를 선택해 주십시오.
- 6.에서 애플리케이션 서버의 ACG 이름은 추후 MSSQL Server에 ACG 추가 시 사용됩니다.
접속 환경 설정
네이버 클라우드 플랫폼의 콘솔에서 애플리케이션 서버 접속 환경은 공인 IP를 설정하는 방법과 SSL VPN을 설정하는 방법이 있습니다.
여기에서는 접속 환경 설정 방법을 간단하게 소개합니다. 접속 환경 설정 방법에 대한 자세한 내용은 공인 IP 사용 가이드와 SSL VPN 사용 가이드를 참조해 주십시오.
공인 IP 설정
공인 IP를 설정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
- Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
- Public IP 메뉴를 클릭해 주십시오.
- [공인 IP 신청] 버튼을 클릭해 주십시오.
- 적용 서버를 선택하고 메모를 입력한 후 [다음] 버튼을 클릭해 주십시오.
- [생성] 버튼을 클릭해 주십시오.
관리자 비밀번호 확인
공인 IP를 설정한 후 애플리케이션 서버 접속에 필요한 관리자(root) 비밀번호를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
- Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
- 서버 목록에서, 관리자 비밀번호를 확인할 서버를 선택한 후 [서버 관리 및 설정 변경] 버튼을 클릭한 다음 관리자 비밀번호 확인 메뉴를 클릭해 주십시오.
- 서버 생성 시 만든 인증키를 입력해 주십시오.
- [비밀번호 확인] 버튼을 클릭해 주십시오.
- 비밀번호를 확인해 주십시오.
SSL VPN 설정
생성할 MSSQL 서버에 외부에서 접근이 가능하도록 SSL VPN를 사용하여 설정하는 방법은 다음과 같습니다.
1. SSL VPN 생성
2. Subnet의 Route Table에 VPN 대역 추가
3. MSSQL Server의 ACG 설정
4. MSSQL Server의 DB USER 설정
5. MSSQL Server의 접속 정보 확인
1. SSL VPN 생성
SSL VPN을 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Security > SSL VPN 메뉴를 차례대로 클릭해 주십시오.
- [SSL VPN 신청] 버튼을 클릭해 주십시오.
- SSL VPN 생성 팝업 창이 나타나면 필요한 정보를 입력하고 [생성] 버튼을 클릭해 주십시오.
- 생성 후 발송된 메일이나 콘솔의 SSL VPN 화면에서 SSL VPN IP 주소 대역을 확인해 주십시오.
2. Subnet의 Route Table에 VPN 대역 추가
Subnet의 Route Table에 VPN 대역을 추가하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Networking > VPC 메뉴를 차례대로 클릭해 주십시오.
- Route Table 메뉴를 클릭해 주십시오.
- 사용할 Subnet의 Route Table에 SSL VPN의 대역을 각각 등록해 주십시오.
- 설정할 Route Table를 클릭하여 선택한 다음 [Routes 설정] 버튼을 클릭해 주십시오.
- Route Table 설정 팝업 창이 나타나면 필요한 정보를 입력해 주십시오.
- Destination: SSL VPN의 IP Pool
- Target Type: SSL VPN
- Target Name: 생성한 SSL VPN 이름
- [확인] 버튼을 클릭해 주십시오.
3. MSSQL Server의 ACG 설정
MSSQL Server의 ACG를 설정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
- DB Server 메뉴를 클릭해 주십시오.
- 설정할 서버의 상세 정보 화면에서 ACG의 버튼을 클릭해 주십시오.
- [ACG 설정] 버튼을 클릭해 주십시오.
- SSL VPN이 접속할 수 있도록 설정을 추가해 주십시오.
- 접근 소스: SSL VPN의 IP 주소 대역
- 허용 포트: DB 서버 포트
- [적용] 버튼을 클릭해 주십시오.
4. MSSQL Server의 DB USER 설정
MSSQL Server의 DB USER를 설정하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
- DB Server 메뉴를 클릭해 주십시오.
- 설정할 서버를 클릭하여 선택한 다음 DB 관리 > DB User 관리 버튼을 차례대로 클릭해 주십시오.
- VPN 대역에서 접속할 수 있도록 DB User를 추가해 주십시오.
- [저장] 버튼을 클릭해 주십시오.
5. MSSQL Server의 접속 정보 확인
SSL VPN을 사용한 외부 접근 설정을 완료했다면 MSSQL Server의 접속 정보를 확인합니다. 확인 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
- DB Server 메뉴를 클릭해 주십시오.
- 확인할 서버을 클릭하여 선택한 다음 상세 정보 보기 화면에서 필요한 정보를 확인해 주십시오.
- Private 도메인: 네이버 클라우드 플랫폼의 서버에서만 접속 가능한 도메인으로, DB 서버 호스트명과 유사하게 사용
- DB 접속 포트
애플리케이션 서버 접속 테스트
원격 데스크톱 연결을 이용하여 애플리케이션 서버에 정상 접속되는지 테스트하는 방법은 다음과 같습니다.
- 시작 > 모든 프로그램 > 보조프로그램 > 원격 데스크톱 연결 메뉴를 차례대로 클릭해 주십시오.
- 컴퓨터에 서버 접속용 공인 IP를 입력해 주십시오.
- [연결] 버튼을 클릭해 주십시오.
- 사용자 자격 증명 입력 팝업 창이 나타나면 관리자 비밀번호 확인으로 얻은 아이디와 암호를 입력해 주십시오.
- [확인] 버튼을 클릭해 주십시오.
- 원격 데스크톱 연결 경고 창이 나타나면 [예(Y)] 버튼을 클릭해 주십시오.
Ctrl + Alt + End
> 암호 변경을 통해 비밀번호를 변경할 수 있습니다.
MSSQL Server 생성
네이버 클라우드 플랫폼에서 제공하는 서비스 중 일부는 콘솔에서 이용 신청 절차를 거친 후 실제 사용을 시작합니다. 하지만 Cloud DB for MSSQL은 별도의 이용 신청 단계 없이 MSSQL Server 생성과 함께 사용을 시작하게 됩니다. 네이버 클라우드 플랫폼의 콘솔에서 MSSQL Server를 생성하는 방법은 다음과 같습니다.
- 여기에서는 DB Server 생성 방법을 간단하게 소개합니다. 전체 생성 방법에 대한 자세한 내용은 MSSQL Server 생성를 참고해 주십시오.
- Cloud DB for MSSQL은 별도의 이용 신청 단계가 없기 때문에 이용 신청 해지 절차도 별도로 존재하지 않습니다. Cloud DB for MSSQL 사용을 중지하여 과금이 되지 않도록 하려면 생성하여 운영 중이던 MSSQL Server를 삭제해 주십시오. MSSQL Server를 삭제하는 방법은 MSSQL Server 삭제를 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
- DB Server 메뉴를 클릭해 주십시오.
- [DB Server 생성] 버튼을 클릭해 주십시오.
- 서비스 신청 화면이 나타나면 필요한 정보를 입력한 후 [다음] 버튼을 클릭해 주십시오.
- [생성] 버튼을 클릭해 주십시오.
ACG 설정
네이버 클라우드 플랫폼의 콘솔에서 MSSQL Server의 ACG(Access Control Group)를 설정하는 방법은 다음과 같습니다.
여기에서는 ACG 설정 방법을 간단하게 소개합니다. ACG 설정 방법에 대한 자세한 내용은 ACG 사용 가이드를 참고해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
- ACG 메뉴를 클릭해 주십시오.
- 설정할 ACG를 클릭하여 선택한 다음 [ACG 설정] 버튼을 클릭해 주십시오.
- 자동으로 생성된 MSSQL 서버의 ACG 선택
- 접근 소스에 애플리케이션 서버의 ACG 이름을 입력해 주십시오.
- 허용 포트에 포트 번호를 입력해 주십시오.
- [추가] 버튼을 클릭해 주십시오.
- [적용] 버튼을 클릭해 주십시오.
MSSQL Server 접속 테스트
MSSQL Client를 설치하여 생성한 MSSQL Server에 정상 접속되는지 테스트하는 방법은 다음과 같습니다.
- MSSQL Server에 접속하기 위한 DNS명, DB 접속 포트, 계정 아이디 및 비밀번호 정보를 확인해 주십시오.
- Services > Database > Cloud DB for MSSQL > DB Server 메뉴를 클릭해 주십시오.
- 접속할 MSSQL Server의 서비스 이름을 클릭한 후 다음을 확인해 주십시오.
- DNS명: Private 도메인 확인
- DB 접속 포트: DB 접속 포트 확인
- [DB 관리] > DB User 관리 에서 계정 아이디와 비밀번호를 확인해 주십시오.
- 애플리케이션 서버에 접속한 후 SSMS 다운로드하여 설치해 주십시오.
- SSMS에 접속해 주십시오.
- 서버 연결 팝업 창에 DB 서버 정보를 입력해 주십시오.
- 서버 유형: 데이터베이스 엔진
- 서버 이름: DNS명, DB 접속 포트(쉼표로 구분하여 입력)
- DNS명: 접속할 MSSQL Server의 Private 도메인
- DB 접속 포트: 접속할 MSSQL Server의 접속 포트
- 인증: SQL Server 인증
- 로그인: 접속할 MSSQL Server의 사용자 계정 이름
- 암호: 접속할 MSSQL Server의 사용자 계정 비밀번호
- [연결] 버튼을 클릭해 주십시오.
데이터 마이그레이션(백업 복구)
온프레미스에서 운영 중이던 데이터베이스를 Cloud DB for MSSQL(CDB-MSSQL)으로 마이그레이션 하거나 CDB-MSSQL에서 온프레미스로 이동을 위해서는 윈도우 애플리케이션 서버 생성이 필요합니다. 데이터 마이그레이션은 SQL Server의 백업과 복구를 이용해 수행하며, 애플리케이션 서버에 온프레미스에서 운영 중이던 데이터베이스 백업을 업로드한 후 수행하거나, CDB-MSSQL의 백업을 해당 애플리케이션 서버를 대상으로 수행할 수 있습니다.
- 애플리케이션 서버는 CDB-MSSQL과 같은 VPC 네트워크 환경이여야 합니다.
- 애플리케이션 서버를 이용한 백업 복구를 위해 애플리케이션 서버의 네트워크 및 공유 센터에서 "암호 보호 공유 끄기" 설정이 필요합니다.
- 애플리케이션 서버 데이터 보호를 위해 적절한 ACG 설정이 필요합니다. ( 애플리케이션 서버 TCP 445 Port 필수 오픈 )
- 애플리케이션 서버 생성
CDB-MSSQL의 VPC 및 Subnet 확인
애플리케이션 서버의 VPC 및 Subnet 확인
생성된 애플리케이션 서버에서 backup 폴더 생성 후 공유 설정 ( Everyone, Read/Write )
암호 보호 공유 끄기
- Control Panel > Network and Internet > Network and Sharing Center > Advanced sharing settings
- Password protected sharing 옵션 > Turn off password protected sharing 선택 > 적용
애플리케이션 Server의 ACG 설정
- 애플리케이션 Server 인 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
- 애플리케이션 Server 인 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
MSSQL Server의 ACG 설정
- MSSQL Server 아웃 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
- MSSQL Server 아웃 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
- 백업 (샘플)
backup database testdb to disk ='\\10.0.1.9\backup\testdb.bak'
- 복구 (샘플)
- 데이터베이스를 복구 시 반드시 d:\data 폴더에 복구해야 합니다. 이 외 경로로 복구된 데이터베이스는 안정성을 보장하지 않습니다.
restore database testdb2 from disk ='\\10.0.1.9\backup\testdb.bak'
with
move 'testdb' to 'd:\data\testdb2.mdf',
move 'testdb-log' to 'd:\data\testdb2_log.ldf'
- ON-PREMISE 복구 대상 데이터베이스에 CDB-MSSQL 관리자 계정이 데이터베이스 소유자인 상태에서 백업해야 정상적으로 사용할 수 있습니다.
- ON-PREMISE와 CDB-MSSQL 사용자 계정이 같더라도 SID가 다르면 복구 후 데이터베이스를 사용할 수 없습니다.
- 아래 스크립트를 참고해 SID를 동일하게 설정 후 ON-PREMISE에서 백업 후 CDB-MSSQL에 복원합니다.
SID 문제 해결
데이터 마이그레이션(백업 복구)에서 SID가 일치하지 않아 발생한 이슈에 대한 해결 가이드입니다.
- 원본 서버에 db_owner를 변경해 복원하는 방법 (ON-PREMISE → CDB-MSSQL)
작업 서버 | 실행 스크립트 설명 및 참조 T-SQL Query |
---|---|
CDB-MSSQL | SELECT SID FROM master.sys.sql_logins WHERE name='dbuserid' 0xDBB5F4FE1DBC594FBF806E807AFE72D6 |
ON-PREMISE | CREATE LOGIN [dbuserid] WITH PASSWORD = 'P@ssw0rd', SID =0xDBB5F4FE1DBC594FBF806E807AFE72D6, DEFAULT_DATABASE=[master], CHECK_POLICY=OFF, CHECK_EXPIRATION=OFF USE [userdatabase] GO EXEC sp_changedbowner 'dbuserid' GO
BACKUP DATABASE [userdatabase] TO disk = 'C:\temp\userdatabase.full' |
CDB-MSSQL | RESTORE filelistonly FROM dist='\\10.0.0.7\backup\userdatabase.full' RESTORE DATABASE userdatabase FROM disk='\\\10.0.0.7\backup\userdatabase.full' with MOVE 'userdatabase' TO 'd:\data\userdatabase.mdf', MOVE 'userdatabase_log' TO 'd:\data\userdatabase.log.ldf' |
- 복구 대상 서버에 db_owner를 추가해 사용하는 방법 (CDB-MSSQL → CDB-MSSQL)
작업 내용, 서버, 사용자 | 실행 스크립트 설명 및 참조 T-SQL Query |
---|---|
SELECT SID FROM master.sys.sql_logins WHERE name='AServerAdmin' 0xB1CFFCE0AEF0234FB49273E7DD713FFA | |
RESTORE DATABASE AServerDB FROM DISK='remote path' | |
CREATE LOGIN [AServerAdmin] WITH PASSWORD='P@ssw0rd', SID=0xB1CFFCE0AEF0234FB49273E7DD713FFA, DEFAULT_DATABASE=[master], CHECK_POLICY=OFF, CHECK_EXPIRATION=OFF GO | |
USE AserverDB GO CREATE USER BServerAdmin FOR LOGIN BServerAdmin GO ALTER ROLE [db_owner] ADD MEMBER BServerAdmin GO | |
DROP LOGIN [AServerAdmin] GO |
SID가 일치하지 않아 데이터베이스를 사용할 수 없는 경우, 콘솔에서 데이터베이스를 삭제할 수 있습니다.
Agent Job 설정
고가용성 서버를 선택해 생성한 서버에서 SQL Server Agent Job은 Principal 데이터베이스 서버에서만 동작하도록 적절히 구성되어야 합니다. 그렇지 않으면, Mirror 서버에 복제된 Agent Job이 미러 중인 데이터베이스를 대상으로 동작하여 에러를 발생시킵니다.
아래 스크립트를 참고해 설정해 주십시오. 스크립트는 이중화 구성 서버에서도 동작하며, 이중화 구성에서 Stand-Alone으로 변경해도 정상적으로 동작합니다.
데이터베이스 생성 및 이중화를 위한 옵션 변경
- 데이터베이스 복구 레벨이 단순이면 데이터베이스 이중화가 되지 않습니다.
CREATE DATABASE DBTEST1 GO ALTER DATABASE DBTEST1 SET RECOVERY FULL GO USE DBTEST1 GO CREATE TABLE TBLX ( IDX INT IDENTITY(1,1) ,CDATETIME DATETIME ,CINT INT ) GO CREATE OR ALTER PROC USP_A AS INSERT INTO TBLX (CDATETIME, CINT) VALUES (GETDATE(), 1) GO
Agent Job의 Step 설정
- 대상 데이터베이스를 명시하고,
exec ('databasename.schemaname.userproc')
형태로 실행합니다.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED DECLARE @DB_NAME VARCHAR(1000) = 'DBTEST1' IF EXISTS ( SELECT * FROM SYS.DATABASES A WHERE HAS_DBACCESS(DB_NAME(A.[DATABASE_ID])) = 1 AND DB_NAME(A.DATABASE_ID) = @DB_NAME ) BEGIN EXEC ('DBTEST1.DBO.USP_A') END ELSE BEGIN SELECT 'MIRROR SERVER JOB SKIPPED' END
- 대상 데이터베이스를 명시하고,