Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Cloud DB for MSSQL を開始する

Prev Next

VPC環境で利用できます。

Cloud DB for MSSQLを開始するでは、Cloud DB for MSSQL動作環境とサポート環境を確認して全体使用シナリオ用語を熟知した後、Cloud DB for MSSQLを正常に使用するためにユーザーがすべきことを説明します。Cloud DB for MSSQLを開始するで説明する内容は、次の通りです。

  • NAVERクラウドプラットフォームコンソールでアプリケーションサーバを作成する方法
  • アプリケーションサーバへのアクセステストを行う方法
  • NAVERクラウドプラットフォームコンソールでの MSSQL Serverの作成方法
  • MSSQL Serverへのアクセステスト方法

ここまで完了したら、Cloud DB for MSSQL使用のための基本過程を完了したことになります。今後さらに効率的なサーバ管理や運用を行うために、以下のようなタスクも行えます。

  • NAVERクラウドプラットフォームの Cloud Insightを活用したイベントと通知(アラーム)の設定
  • NAVERクラウドプラットフォームの Sub Accountを活用した運用権限管理

このタスクは Cloud DB for MSSQLではなく Cloud Insight、Sub Accountでご利用の申し込み後に行えます。本ガイドでは詳しく説明いたしません。詳細は、Cloud Insight ご利用ガイドSub Account ご利用ガイドをご参照ください。

アプリケーションサーバ作成

NAVERクラウドプラットフォームコンソールでアプリケーションサーバを作成する方法は、次の通りです。

参考

ここでは、アプリケーションサーバの作成方法を簡単に説明します。全体作成方法についての詳細は、Serverご利用ガイドをご参照ください。

  1. NAVERクラウドプラットフォームコンソールにアクセスします。
  2. コンソール画面右上のリージョン&プラットフォームをクリックします。
  3. 利用中のリージョンと VPCプラットフォームを選択し、 [適用] ボタンをクリックします。
  4. コンソール画面左上の Menuをクリックします。
  5. Services > Compute > Serverメニューを順にクリックします。
  6. [サーバ作成] ボタンをクリックします。
  7. Windowsサーバイメージをクリックして選択し、[次へ] ボタンをクリックします。
  8. 必要な情報を入力し、 [次へ] ボタンをクリックします。
  9. 保有中の認証キーがない場合、新しい認証キーを作成して [次へ] ボタンをクリックします。
  10. 保有中の ACGがない場合、新規 ACGを作成します。
  11. 最終確認後、 [サーバ作成] ボタンをクリックします。
注意
  • リモートデスクトップ接続のために3.で Windowsタイプのサーバイメージを選択します。
  • アプリケーションサーバの ACG名は、今後 MSSQL Serverに ACGを追加する時に使用します。

アクセス環境設定

NAVERクラウドプラットフォームコンソールの VPC環境でサーバアクセス環境を設定するには、パブリック IPアドレスを設定します。

参考

ここでは、アクセス環境の設定方法を簡単に説明します。アクセス環境の設定方法に関する詳細は、以下のガイドをご参照ください。

パブリック IPアドレスの設定

パブリック IPアドレスを設定する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、Menu > Services > Compute > Serverメニューを順にクリックします。
  2. Public IPメニューをクリックします。
  3. [パブリック IPアドレスの申し込み] ボタンをクリックします。
  4. 適用サーバを選択してメモを入力した後、 [次へ] ボタンをクリックします。
  5. [作成] ボタンをクリックします。

管理者パスワードの確認

パブリック IPアドレスの設定後にアプリケーションサーバへのアクセスに必要な管理者(root)パスワードを確認する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、Menu > Services > Compute > Serverメニューを順にクリックします。
  2. [サーバ管理と設定変更] ボタンをクリックし、管理者パスワードの確認メニューをクリックします。
  3. サーバの作成時に作った認証キーを入力します。
  4. [パスワード確認] ボタンをクリックします。
  5. パスワードを確認します。

アプリケーションサーバアクセステスト

リモートデスクトップ接続を利用してアプリケーションサーバに正常にアクセスできるかテストする方法は、次の通りです。

  1. 開始する > すべてのプログラム > アクセサリ > リモートデスクトップ接続メニューを順にクリックします。
  2. コンピュータにサーバアクセス用パブリック IPアドレスを入力します。
    clouddbformssql-start-appconnect_vpc_ko
  3. [接続] ボタンをクリックします。
  4. ユーザー認証情報入力のポップアップが表示されたら、管理者パスワードの確認で取得した IDとパスワードを入力します。
    clouddbformssql-start-appconnect2_vpc_ko
  5. [確認] ボタンをクリックします。
  6. リモートデスクトップ接続警告画面が表示されたら、[はい(Y)] ボタンをクリックします。
    clouddbformssql-start-appconnect3_vpc_ko
参考

Ctrl + Alt + End > パスワード変更を通じてパスワードを変更できます。

MSSQL Server作成

NAVERクラウドプラットフォームで提供するサービスの中から一部は、コンソールでご利用の申し込み手続を経た後、実際に使用することになります。しかし、Cloud DB for MSSQLの場合は別途ご利用の申し込みがなく、MSSQL Server作成と共に使用を開始します。NAVERクラウドプラットフォームコンソールで MSSQL Serverを作成する方法は、次の通りです。

参考
  • ここでは、DB Serverの作成方法を簡単に説明します。全体作成方法に関する詳細は、 MSSQL Server作成をご参照ください。
  • Cloud DB for MSSQLは別途のご利用の申し込みがないため、解約の手続も別途存在しません。Cloud DB for MSSQLの使用を停止して課金されないようにするには、作成して運用中であった MSSQL Serverを削除します。MSSQL Serverを削除する方法は、MSSQL Server削除をご参照ください。
  1. NAVERクラウドプラットフォームコンソールの VPC環境で、Services > Database > Cloud DB for MSSQLメニューを順にクリックします。
  2. DB Serverメニューをクリックします。
  3. [DB Server作成] ボタンをクリックします。
  4. サービスの申し込み画面が表示されたら、必要な情報を入力した後に [次へ] ボタンをクリックします。
  5. [作成] ボタンをクリックします。

ACG設定

NAVERクラウドプラットフォームコンソールで MSSQL Serverの Access Control Group(ACG)を設定する方法は、次の通りです。

参考

ここでは、ACGの設定方法を簡単に説明します。ACGの設定方法に関する詳細は、ACG ご利用ガイドをご参照ください。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、Menu > 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アクセスポート、アカウント IDとパスワード情報を確認します。
    • Services > Database > Cloud DB for MSSQL > DB Serverメニューをクリックします。
    • アクセスする MSSQL Serverのサービス名をクリックした後、次を確認します。
      • DNS名: Privateドメインの確認
      • DBアクセスポート: DBアクセスポートの確認
    • [DB管理] > DB User管理でアカウント IDとパスワードを確認します。
  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からオンプレミスに移動するためにはWindowsアプリケーションサーバを作成します。データマイグレーションは 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を確認
    • SELECT SID FROM master.sys.sql_logins WHERE name='dbuserid'
      • dbuserid: 作成したデフォルト管理者のアカウント
  • SIDの確認結果
    • 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の実行前に、バックアップファイルの論理ファイルリストを確認
    • RESTORE FILELISTONLY FROM disk='\\10.0.0.7\backup\userdatabase.full'
      • 10.0.0.7: ユーザーが作成したアプリケーションサーバの VPC IPアドレス
  • 確認されたファイルリストに基づいて、d:\dataフォルダにデータベースを復元(同じ名前のファイルが既に存在する場合、エラーが発生することがある)
    • 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'
  • SIDの確認結果
    • 0xB1CFFCE0AEF0234FB49273E7DD713FFA
  • AServerDBを復旧(RESTORE)
  • 復旧対象(BServer)上で BServerAdminとして実行
  • 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として実行
  • AServerDBで BServerAdminユーザーを作成し、db_ownerロールを付与
    • 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