Cloud DB for MSSQL 시작
    • PDF

    Cloud DB for MSSQL 시작

    • PDF

    기사 요약

    VPC 환경에서 이용 가능합니다.

    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 사용 가이드를 참조해 주십시오.

    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
    2. [서버 생성] 버튼을 클릭해 주십시오.
    3. Windows 서버 이미지를 클릭하여 선택하고 [다음] 버튼을 클릭해 주십시오.
    4. 필요한 정보를 입력하고 [다음] 버튼을 클릭해 주십시오.
    5. 보유하고 있는 인증키가 없는 경우 새로운 인증키를 생성하고 [다음] 버튼을 클릭해 주십시오.
    6. 보유하고 있는 ACG가 없는 경우 신규 ACG를 생성해 주십시오.
    7. 최종 확인 후 [서버 생성] 버튼을 클릭해 주십시오.
    주의
    • 원격 데스크톱 연결을 위해 3.에서 Windows 타입의 서버 이미지를 선택해 주십시오.
    • 6.에서 애플리케이션 서버의 ACG 이름은 추후 MSSQL Server에 ACG 추가 시 사용됩니다.

    접속 환경 설정

    네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 서버 접속 환경을 설정하려면 공인 IP를 설정해야 합니다.

    참고

    여기에서는 접속 환경 설정 방법을 간단하게 소개합니다. 접속 환경 설정 방법에 대한 자세한 내용은 아래 가이드를 참조해 주십시오.

    공인 IP 설정

    공인 IP를 설정하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
    2. Public IP 메뉴를 클릭해 주십시오.
    3. [공인 IP 신청] 버튼을 클릭해 주십시오.
    4. 적용 서버를 선택하고 메모를 입력한 후 [다음] 버튼을 클릭해 주십시오.
    5. [생성] 버튼을 클릭해 주십시오.

    관리자 비밀번호 확인

    공인 IP를 설정한 후 애플리케이션 서버 접속에 필요한 관리자(root) 비밀번호를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
    2. [서버 관리 및 설정 변경] 버튼을 클릭한 다음 관리자 비밀번호 확인 메뉴를 클릭해 주십시오.
    3. 서버 생성 시 만든 인증키를 입력해 주십시오.
    4. [비밀번호 확인] 버튼을 클릭해 주십시오.
    5. 비밀번호를 확인해 주십시오.

    애플리케이션 서버 접속 테스트

    원격 데스크톱 연결을 이용하여 애플리케이션 서버에 정상 접속되는지 테스트하는 방법은 다음과 같습니다.

    1. 시작 > 모든 프로그램 > 보조프로그램 > 원격 데스크톱 연결 메뉴를 차례대로 클릭해 주십시오.
    2. 컴퓨터에 서버 접속용 공인 IP를 입력해 주십시오.
      clouddbformssql-start-appconnect_vpc_ko
    3. [연결] 버튼을 클릭해 주십시오.
    4. 사용자 자격 증명 입력 팝업 창이 나타나면 관리자 비밀번호 확인으로 얻은 아이디와 암호를 입력해 주십시오.
      clouddbformssql-start-appconnect2_vpc_ko
    5. [확인] 버튼을 클릭해 주십시오.
    6. 원격 데스크톱 연결 경고 창이 나타나면 [예(Y)] 버튼을 클릭해 주십시오.
      clouddbformssql-start-appconnect3_vpc_ko
    참고

    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 삭제를 참조해 주십시오.
    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
    2. DB Server 메뉴를 클릭해 주십시오.
    3. [DB Server 생성] 버튼을 클릭해 주십시오.
    4. 서비스 신청 화면이 나타나면 필요한 정보를 입력한 후 [다음] 버튼을 클릭해 주십시오.
    5. [생성] 버튼을 클릭해 주십시오.

    ACG 설정

    네이버 클라우드 플랫폼의 콘솔에서 MSSQL Server의 ACG(Access Control Group)를 설정하는 방법은 다음과 같습니다.

    참고

    여기에서는 ACG 설정 방법을 간단하게 소개합니다. ACG 설정 방법에 대한 자세한 내용은 ACG 사용 가이드를 참조해 주십시오.

    1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Database > Cloud DB for MSSQL 메뉴를 차례대로 클릭해 주십시오.
    2. ACG 메뉴를 클릭해 주십시오.
      clouddbformssql-start_acg_vpc_ko
    3. 설정할 ACG를 클릭하여 선택한 다음 [ACG 설정] 버튼을 클릭해 주십시오.
      • 자동으로 생성된 MSSQL 서버의 ACG 선택
    4. 접근 소스에 애플리케이션 서버의 ACG 이름을 입력해 주십시오.
    5. 허용 포트에 포트 번호를 입력해 주십시오.
    6. [추가] 버튼을 클릭해 주십시오.
    7. [적용] 버튼을 클릭해 주십시오.

    MSSQL Server 접속 테스트

    MSSQL Client를 설치하여 생성한 MSSQL Server에 정상 접속되는지 테스트하는 방법은 다음과 같습니다.

    1. MSSQL Server에 접속하기 위한 DNS명, DB 접속 포트, 계정 아이디 및 비밀번호 정보를 확인해 주십시오.
      • Services > Database > Cloud DB for MSSQL > DB Server 메뉴를 클릭해 주십시오.
      • 접속할 MSSQL Server의 서비스 이름을 클릭한 후 다음을 확인해 주십시오.
        • DNS명: Private 도메인 확인
        • DB 접속 포트: DB 접속 포트 확인
      • [DB 관리] > DB User 관리 에서 계정 아이디와 비밀번호를 확인해 주십시오.
    2. 애플리케이션 서버에 접속한 후 SSMS 다운로드하여 설치해 주십시오.
    3. SSMS에 접속해 주십시오.
    4. 서버 연결 팝업 창에 DB 서버 정보를 입력해 주십시오.
      database-9-1-501_ko
      • 서버 유형: 데이터베이스 엔진
      • 서버 이름: DNS명, DB 접속 포트(쉼표로 구분하여 입력)
        • DNS명: 접속할 MSSQL Server의 Private 도메인
        • DB 접속 포트: 접속할 MSSQL Server의 접속 포트
      • 인증: SQL Server 인증
      • 로그인: 접속할 MSSQL Server의 사용자 계정 이름
      • 암호: 접속할 MSSQL Server의 사용자 계정 비밀번호
    5. [연결] 버튼을 클릭해 주십시오.

    데이터 마이그레이션(백업 복구)

    온프레미스에서 운영 중이던 데이터베이스를 Cloud DB for MSSQL(CDB-MSSQL)으로 마이그레이션 하거나 CDB-MSSQL에서 온프레미스로 이동을 위해서는 윈도우 애플리케이션 서버 생성이 필요합니다. 데이터 마이그레이션은 SQL Server의 백업과 복구를 이용해 수행하며, 애플리케이션 서버에 온프레미스에서 운영 중이던 데이터베이스 백업을 업로드한 후 수행하거나, CDB-MSSQL의 백업을 해당 애플리케이션 서버를 대상으로 수행할 수 있습니다.

    참고
    • 애플리케이션 서버는 CDB-MSSQL과 같은 VPC 네트워크 환경이어야 합니다.
    • 애플리케이션 서버를 이용한 백업 복구를 위해 애플리케이션 서버의 네트워크 및 공유 센터에서 '암호 보호 공유 끄기' 설정이 필요합니다.
    • 애플리케이션 서버 데이터 보호를 위해 적절한 ACG 설정이 필요합니다.(애플리케이션 서버 TCP 445 Port 필수 오픈 )
    1. 애플리케이션 서버 생성
      • CDB-MSSQL의 VPC 및 Subnet 확인
        clouddbformssql-start-vpc_backup

      • 애플리케이션 서버의 VPC 및 Subnet 확인
        clouddbformssql-start-vpc_appserver

      • 생성된 애플리케이션 서버에서 backup 폴더 생성 후 공유 설정 ( Everyone, Read/Write )
        clouddbformssql-start-vpc_backup-everyone

      • 암호 보호 공유 끄기

        • Control Panel > Network and Internet > Network and Sharing Center > Advanced sharing settings
        • Password protected sharing 옵션 > Turn off password protected sharing 선택 > 적용
          clouddbformssql-start-vpc_password-setting
    • 애플리케이션 Server의 ACG 설정
      • 애플리케이션 Server 인 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
        clouddbformssql-start-vpc_appserver-agc-setting_1
    • MSSQL Server의 ACG 설정
      • MSSQL Server 아웃 바운드 445 포트가 VPC 대역으로 오픈되어 있어야 합니다.
        clouddbformssql-start-vpc_appserver-agc-setting_2
    1. 백업 (샘플)

      backup database testdb to disk ='\\10.0.1.9\backup\testdb.bak'
      

      database-mssql-backup-sample_ko

    2. 복구 (샘플)

      • 데이터베이스를 복구 시 반드시 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'
      

      clouddbformssql-start-vpc_restore_ko

    주의
    • ON-PREMISE 복구 대상 데이터베이스에 CDB-MSSQL 관리자 계정이 데이터베이스 소유자인 상태에서 백업해야 정상적으로 사용할 수 있습니다.
    • ON-PREMISE와 CDB-MSSQL 사용자 계정이 같더라도 SID가 다르면 복구 후 데이터베이스를 사용할 수 없습니다.
    • 아래 스크립트를 참고해 SID를 동일하게 설정 후 ON-PREMISE에서 백업 후 CDB-MSSQL에 복원합니다.

    SID 문제 해결

    데이터 마이그레이션(백업 복구)에서 SID가 일치하지 않아 발생한 이슈에 대한 해결 가이드입니다.

    1. 원본 서버에 db_owner를 변경해 복원하는 방법 (ON-PREMISE → CDB-MSSQL)
    작업 서버실행 스크립트 설명 및 참조 T-SQL Query
    CDB-MSSQL
  • 다음 T-SQL 명령어를 통해 SID를 확인합니다. 생성한 기본 관리자 계정이 dbuserid라고 가정합니다.
      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
  • 기존 데이터베이스 소유자에게 sysadmin 권한을 부여해 소유자 변경에 따른 에러가 발생하지 않도록 조치합니다.
  • 마이그레이션 대상 데이터베이스 [userdatabase]에서 데이터베이스의 소유자를 위에서 생성한 사용자로 변경합니다.
  • 아래 명령은 로컬 대상 서버에서 sa나 administrator 계정으로 접근해 아래 명령을 수행합니다.
      USE [userdatabase]
      GO
      EXEC sp_changedbowner 'dbuserid'
      GO
  • 마이그레이션 대상 데이터베이스를 백업합니다.
      BACKUP DATABASE [userdatabase] TO disk = 'C:\temp\userdatabase.full'
    • 백업된 데이터베이스 백업 파일을 동일 VPC 대역에 생성된 애플리케이션 서버로 옮깁니다.
  • CDB-MSSQL
  • RESTORE 하기 전 파일 리스트를 확인합니다. (사용자가 생성한 애플리케이션 서버 VPC IP가 10.0.0.7일 경우입니다.)
      RESTORE filelistonly FROM dist='\\10.0.0.7\backup\userdatabase.full'
  • 확인된 파일 리스트 기반으로 d:\database 폴더에 해당 데이터베이스를 복원합니다.
  • 같은 이름의 파일이 존재하면 에러가 발생할 수 있습니다.
      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'
    1. 복구 대상 서버에 db_owner를 추가해 사용하는 방법 (CDB-MSSQL → CDB-MSSQL)
    작업 내용, 서버, 사용자실행 스크립트 설명 및 참조 T-SQL Query
  • AServerAdmin SID 확인
  • 원본 서버(AServer)에서 AServerAdmin으로 실행
  • 원본서버(AServer)에서 AServerAdmin으로 실행하여 SID를 확인합니다.
      SELECT SID FROM master.sys.sql_logins WHERE name='AServerAdmin'
  • 결과 예시
      0xB1CFFCE0AEF0234FB49273E7DD713FFA
  • AServerDB 복구(RESTORE)
  • 복구 대상(BServer)에서 BServerAdmin으로 실행
  • Cloud DB for MSSQL 시작 참고
      RESTORE DATABASE AServerDB FROM DISK='remote path'
  • AServerAdmin의 SID와 동일하게 BServer에 AServerAdmin 생성
  • 복구 대상(BServer)에서 BServerAdmin 실행
  • 암호는 AServer와 일치하지 않아도 됩니다.
      CREATE LOGIN [AServerAdmin] WITH PASSWORD='P@ssw0rd', SID=0xB1CFFCE0AEF0234FB49273E7DD713FFA, DEFAULT_DATABASE=[master], CHECK_POLICY=OFF, CHECK_EXPIRATION=OFF
      GO
  • BServer에 복구한 AServerDB에 BServerAdmin db_owner 권한 부여
  • 복구 대상(BServer)에서 AServerAdmin으로 실행
  • USE AserverDB
    GO
    CREATE USER BServerAdmin FOR LOGIN BServerAdmin
    GO
    ALTER ROLE [db_owner] ADD MEMBER BServerAdmin
    GO
  • BServer에 임시로 만든 AServerAdmin을 삭제
  • 복구 대상(BServer)에서 BServerAdmin으로 로그인 후 실행
  • SELECT SPID FROM sysprocesses WHERE loginame = 'AServerAdmin' 명령어로 조회되는 모든 SPID를 KILL 후 AServerAdmin을 삭제합니다.
      DROP LOGIN [AServerAdmin]
      GO
  • 참고

    SID가 일치하지 않아 데이터베이스를 사용할 수 없는 경우, 콘솔에서 데이터베이스를 삭제할 수 있습니다.

    Agent Job 설정

    고가용성 서버를 선택해 생성한 서버에서 SQL Server Agent Job은 Principal 데이터베이스 서버에서만 동작하도록 적절히 구성되어야 합니다. 그렇지 않으면, Mirror 서버에 복제된 Agent Job이 미러 중인 데이터베이스를 대상으로 동작하여 에러를 발생시킵니다.
    아래 스크립트를 참고해 설정해 주십시오. 스크립트는 이중화 구성 서버에서도 동작하며, 이중화 구성에서 Stand-Alone으로 변경해도 정상적으로 동작합니다.

    1. 데이터베이스 생성 및 이중화를 위한 옵션 변경

      • 데이터베이스 복구 레벨이 단순이면 데이터베이스 이중화가 되지 않습니다.
      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
      
    2. Agent Job의 Step 설정

      • 대상 데이터베이스를 명시하고, exec ('databasename.schemaname.userproc') 형태로 실행합니다.
        clouddbformssql-start-vpc_agentjob_ko
      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
      

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.