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の ACG(Access Control Group)を設定する方法は、次の通りです。

参考

ここでは、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からオンプレミスに移動するためにはウィンドウアプリケーションサーバを作成します。データマイグレーションは 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