SQL Server 2008/2008 R2 からのデータベース移行ガイド 本ガイドでは 間もなく延長サポートが終了する SQL Server 2008/2008 R2 で運用しているデータベースを Microsoft Azure に移行する 方法を説明します 発行日 :2019 年 3 月 7

Similar documents
改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機

第 1 版

Procedure-for-Azure-v1.1

1. アンケート集計サンプルについて ここでは Windows Azure と SQL Azure を使ってアンケートを実施し アンケート結果を Excel で集計するサンプルについて説明します アンケートは Windows Azure で運用し アンケート結果は SQL Azure に格納されます

第 2 版

アーカイブ機能インストールマニュアル

目次 目次... 2 はじめに SQL Server 2005 製品版へのアップグレード SQL Server 2005 製品版へのデータベース (DPM インスタンス ) の構築 / 設定 データベース (DPM インスタンス ) の構築

MSSQL2014+NPMインストール手順書

第 1 版

使用する前に

Microsoft iSCSI Software Targetを使用したクラスタへの共有ディスク・リソースの提供

PowerPoint Presentation

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

ActiveImage Protector 2016 R2 for Express5800 / ftサーバ

音声認識サーバのインストールと設定

PassSureExam Best Exam Questions & Valid Exam Torrent & Pass for Sure

目次 1. Azure Storage をインストールする Azure Storage のインストール Azure Storage のアンインストール Azure Storage を使う ストレージアカウントの登録... 7

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

一般社団法人ビジネス機械・情報システム産業協会

動作環境 対応 LAN DISK ( 設定復元に対応 ) HDL-H シリーズ HDL-X シリーズ HDL-AA シリーズ HDL-XV シリーズ (HDL-XVLP シリーズを含む ) HDL-XV/2D シリーズ HDL-XR シリーズ HDL-XR/2D シリーズ HDL-XR2U シリーズ

Azure 環境 UiPath Orchestrator シングル構成構築手順書 v1.0

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

Microsoft Word JA_revH.doc

ConsoleDA Agent For Server インストールガイド

手順書

RICOH Device Manager Pro バックアップ/バージョンアップ作業手順書

Acronis® Backup & Recovery ™ 10 Advanced Editions

intra-mart Accel Platform


アーカイブ機能インストールマニュアル

FormPat 環境設定ガイド

Microsoft Word - nvsi_090200jp_r1_nvbsvr_mscs.doc

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

DataKeeper for Windows リリースノート

Mobile Access簡易設定ガイド

ESMPRO/JMSS Ver6.0

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

Windows Server 2016 ライセンス体系に関するデータシート 製品の概要 Windows Server 2016 は 準備が整った時点でクラウドコンピューティングへ簡単に移行できる新しいテクノロジを導入すると同時に 現在のワークロードをサポートするクラウドレディのオペレーティングシステ

Veritas System Recovery 16 Management Solution Readme

Oracle Business Intelligence Standard Edition One のインストール

クラウドファイルサーバーデスクトップ版 インストールマニュアル 利用者機能 第 1.2 版 2019/04/01 富士通株式会社

業務サーバパック for 奉行シリーズスタートアップガイド

TimeTracker FX セットアップガイド 補足資料 2/14 0. はじめに 本資料は [TimeTracker FX セットアップガイド ] では説明していない Microsoft SQL Server 2005 ( 以下 SQL Server 2005) の設定や操作方法を補足するための

この文書が翻訳版の場合 オリジナル版と内容に違いが認められた場合にはオリジナル版に従うものとします 記載された情報は発行日時点のものです この文書に記載されている URL や参照しているウェブサイトを含む情報や見解は 予告なく変更される場合があます 断りがない限り 例として記載されている企業 組織

PowerPoint Presentation

サーババンドル版ライセンス NX7700x シリーズ Express5800 シリーズのサーバと同時に購入することで パッケージ製品よりも安価 に導入することのできるライセンスも提供しています ライセンスの注意事項 サーババンドル版のライセンスについてサーババンドル版では 通常のサーバライセンスおよ

スライド 1

Microsoft Word - L08_Backup_Lab.docx

Microsoft認定資格問題集DEMO(70-459_Part2)

セットアップの流れ Graphtec Pro Studio を使用する SAi Cloud へのユーザー登録 1-1 SAi Cloud へのユーザー登録 Graphtec Pro Studio のインストール 1-2 Graphtec Pro Studio のインストール Cutting Mast

クラウドファイルサーバーデスクトップ版 インストールマニュアル ファイルサーバー管理機能 第 1.1 版 2017/01/24 富士通株式会社

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

他のOSをお使いになる方へ

新環境への移行手順書

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

改版履歴 版数 日付 内容 担当 V /03/27 初版発行 STS V /01/27 動作条件のオペレーティングシステムに Windows 7 STS を追加 また 動作条件のブラウザに Internet Explorer 8 を追加 V /0

Team Foundation Server 2018 を使用したバージョン管理 補足資料

DBMSリポジトリへの移行マニュアル

eYACHO 管理者ガイド

HP Device Manager4.7インストール・アップデート手順書

クラスタ環境でのデータベースのアップグレード手順

目次 目次...2 はじめに データベース (DPMインスタンス) のインストール Microsoft SQL Server 2008 Expressのインストール DPMのデータベース作成 管理サーバ for DPMのインストール...

PowerPoint プレゼンテーション

Microsoft Word - SQL Server 2005 セットアップ手順書.doc

Acronis Snap Deploy 5

PrintBarrierV3L50(V ) アップデート手順書 第 1.01 版 株式会社富士通アドバンストエンジニアリング 平成 25 年 3 月 7 日 1

共有フォルダ接続手順 1 共有フォルダ接続ツールのダウンロード 展開 CSVEX のトップページから共有フォルダ接続ツールの zip ファイルをダウンロードします ダウンロードした zip ファイルを右クリックして すべて展開 を選択します (Windows 環境では zip ファイルを解凍しなくて

証明書インポート用Webページ

インストール要領書

Oracle Universal Content Management ドキュメント管理 クイック・スタート・チュ-トリアル

iStorage ソフトウェア VMware vCenter Plug-in インストールガイド

ConsoleDA Agent For Serverインストールガイド

PowerPoint プレゼンテーション

管理サーバの移行

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 新規作成 目次 0 はじめに 本文中の記号について Hyper-V 2.0 をインストールするための準備 インストール前に確認が必要なもの Hyper-V 2.0 の

V-CUBE One

PowerPoint プレゼンテーション

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Live Migration を設定するための準備 Live Migration の設定 Live Migration の運

CLUSTERPRO MC StorageSaver for BootDisk 2.1 (for Windows) インストールガイド 2016(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

Veritas System Recovery 16 Management Solution Readme

クライアント証明書導入マニュアル

ESET Smart Security 7 リリースノート

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1

改版履歴 Ver. 日付履歴初版 2014/7/10 - 目次 1. はじめに クラスター構築の流れ Windows Server Failover Cluster をインストールするための準備 OS のセットアップ時の注意... -

AIP2016R2 DC backup_restore

2

次 はじめに ブラウザーサポート デフォルトのIPアドレスについて

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

Microsoft SQL Server 2016 インストール手順書 (Standard) この文書は SQL Server 2016 のインストール手順について簡潔にまとめたもので Microsoft SQL Server 2016 Books Online に記述されている一部を抜粋した内容で

Ontrack PowerControls バックアップ・復旧ガイド

问题集 ITEXAMPASS 1 年で無料進級することに提供する

TimeTracker FX Web Edition セットアップガイド目次 はじめに... 2 第 1 章 TimeTracker FX Web Edition の概要 TimeTracker FX Web Edition とは... 3 システム構成... 3

ログイン時の ID パスワードは マイページ と同一です インストール前の状態の場合 ログイン後に表示されるページの ライセンス一覧 に該当製品シリアルの表示はされません インストール完了後 ライセンス管理ページご利用シリアルの一覧が表示されます 以上でライセンス管理ページの作成は完了です なお セ

セットアップマニュアル

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

proventia_site_protector_sp8_sysreq

Transcription:

SQL Server 2008/2008 R2 からのデータベース移行ガイド 本ガイドでは 間もなく延長サポートが終了する SQL Server 2008/2008 R2 で運用しているデータベースを Microsoft Azure に移行する 方法を説明します 発行日 :2019 年 3 月 7 日

はじめに 更新履歴 版数 発行日 更新履歴 第 1 版 2018 年 7 月 6 日 初版発行 第 2 版 2019 年 3 月 7 日 SQL Database Managed Instance Azure Database Migration Service の機能拡張に伴う更新 本書の取り扱い注意事項 Microsoft は オンプレミスで稼働する各種データベース製品から Azure への移行についての包括的なガイドラインを Azure データベース移行ガイド で提供しています 本書は データベース移行ガイドをベースに SQL Server に作成したデータベースを Azure クラウド環境 (IaaS PaaS) に移行する際の具体的な移行手順 および 考慮事項などを補足して説明しています なお 本書の内容は 2019 年 3 月時点の Azure クラウドサービスをベースに作成しています 読者が本書を読まれる時点では Azure ポータルの UI や提供される機能などが変更されている可能性があることをあらかじめご了承ください また Azure サービスの更新情報に関しては Azure の更新情報 を参照してください - 2 -

はじめに 目次 更新履歴... 2 本書の取り扱い注意事項... 2 目次... 3 1. はじめに... 6 前提知識... 7 2. データベースの移行計画... 8 SQL Server の確認事項... 8 Azure サービス... 10 Azure 仮想マシンデプロイ時の考慮事項... 11 Azure PaaS サービスが提供するデータベースエンジン機能... 14 Azure ハイブリッド特典と予約購入... 15 PaaS データベースサービスへ移行する場合の Web アプリの修正点... 16 SQL Server の主要なツールの変遷と入手先... 17 データベース移行のためのツールとサービス... 18 2.8.1 Microsoft Assessment and Planning (MAP) Toolkit を使用したインベントリ収集... 20 2.8.2 Microsoft Data Migration Assistant を使用した移行アセスメントの実行... 26 移行元の SQL Server サービスインスタンス構成の確認... 30 3. オンプレミスから IaaS へのデータベース移行... 32 Azure 仮想マシンのデプロイと構成... 33 3.1.1 Azure 仮想ネットワークの作成... 33 3.1.2 データベースサーバーのための Azure 仮想マシンの作成... 37 3.1.3 作成したデータベースサーバーへの接続... 44 3.1.4 Windows Server の日本語化... 46 SQL Server インスタンスの構成... 47 3.2.1 サーバー照合順序の変更... 47 3.2.2 sa アカウントの無効化... 49 3.2.3 既定の言語の変更... 50 3.2.4 使用しない SQL Server サービスの停止... 50-3 -

はじめに 3.2.5 データディスクの追加... 51 3.2.6 既定のデータベースフォルダーの変更... 55 3.2.7 tempdb データベースファイルの分散配置... 56 データベースの移行... 57 3.3.1 オンプレミスに対するサイト間接続がある場合... 58 3.3.2 オンプレミスに対するサイト間接続がない場合... 60 3.3.3 移行対象のデータベースバックアップを Blob コンテナーにアップロード... 60 3.3.4 共有アクセス署名 (SAS) トークンの生成... 61 3.3.5 Azure Blob ストレージから URL 指定でのデータベース復元... 61 3.3.6 データベース移行後の作業... 62 インスタンスレベルオブジェクトの移行... 63 3.4.1 スクリプト生成機能によるログインの移行... 64 4. Azure SQL Database へのデータベース移行... 66 論理サーバーの作成... 66 セキュリティの構成... 69 4.2.1 ファイアウォール規則と仮想ネットワーク規則の構成... 69 4.2.2 監査と脅威の検出... 72 SQL Server から SQL Database へのデータベース配置... 75 4.3.1 Microsoft Data Migration Assistant による PaaS へのデータベース移行... 75 4.3.2 移行先の Azure SQL 論理サーバーに空のデータベースを作成する... 76 4.3.3 Microsoft Data Migration Assistant を起動し 移行元のインスタンスに接続する... 79 4.3.4 移行先の Azure SQL 論理サーバーに接続する... 80 4.3.5 データベースを移行 ( スクリプトによるスキーマ生成と一括コピー ) する... 80 4.3.6 ログインの有効化とパスワードを再設定する... 82 4.3.7 bacpac 形式へのエクスポート / インポートによる PaaS へのデータベース移行... 83 5. Azure SQL Database Managed Instance へのデータベース移行... 86 Azure SQL Database Managed Instance をデプロイするためのネットワーク構成... 86 Azure SQL Database Managed Instance の作成... 87 Azure Database Migration Service を使用したデータベースの移行... 90 Azure Database Migration Service の作成... 91-4 -

はじめに Azure Database Migration Service によるデータベースの移行... 93 6. Microsoft Azure に関する情報の入手元... 100 7. Microsoft Azure のお問合せ... 101-5 -

はじめに 1. はじめに Microsoft 製品のサポート期間は 通常 製品発売後 10 年間 ( メインストリーム 5 年 + 延長サポート 5 年 ) で この期間が終了すると Microsoft より セキュリティ更新プログラムが提供されなくなり インシデントサポートも受けることができなくなります 既にメインストリームサポート期間が終了している Windows Server 2008/2008 R2 の延長サポートは 2020 年 1 月 14 日に終了します また SQL Server 2008/2008 R2 は それよりも早く 今年の 7 月 9 日に終了します Windows Server のサポート期間をベースに移行計画を策定していると SQL Server のサポートを受けることができない期間が発生してしまうことに注意してください なお Microsoft は 延長サポート終了後も顧客のワークロードを保護する目的で 昨年の 7 月 12 日 SQL Server 2008/2008 R2 と Windows Server 2008/2008 R2 に対する新しいサポートオプションとして 延長セキュリティ更新プログラム (Extended Security Updates) を発表しました このオプションは Enterprise Agreement 加入契約でソフトウェアアシュアランス またはサブスクリプションライセンスをご利用のお客様を対象に 最新バージョンの SQL Server または Windows Server にかかるライセンスコスト全額の 75% の料金で 1 年ごとに購入することで 更新プログラムを提供するものです これは アップグレード中 または Azure への移行中に引き続きセキュリティ更新プログラムを入手するうえで最適なオプションです また Azure 仮想マシンで SQL Server および Windows Server 2008/2008 R2 を実行しているお客様には この延長セキュリティ更新プログラムが無償で提供されます 拡張セキュリティ更新プログラムに関する FQA については 拡張セキュリティ更新プログラムのよくある質問 (FQA) も合わせてご参照ください これまで運用してきた SQL Server を Azure に移行したいと考えた場合 移行先としては 次のクラウド環境を選択するこ とが利用できます 1 2 3 4 Azure 仮想マシン (IaaS) Azure SQL Database Managed Instance (PaaS) Azure SQL Database シングルデータベース (PaaS) Azure SQL Database エラスティックデータベースプール (PaaS) - 6 -

はじめに ➀ の Azure 仮想マシンは クラウド上で利用できる仮想マシン環境で オンプレミス環境に構築してきたデータベース サーバーをそのまま クラウドにリフトすることができるため 移行の負荷は 最も低いです ➁ ~ ➃ は PaaS のフルマネージドデータベースインスタンスとデータベースサービスで オンプレミス環境で行ってきたデータ ベースサーバーの運用管理タスクの多くを自動化できるため より高い TCO 削減効果を得ることができます どのクラウド環境に移行するべきかの判断は 利用している機能 目標とするスループット データベースのサイズ 作業工数 予算などから検討する必要がありますが 機能面として大きなところと データベースサイズを目安に 以下のディシジョンツ リーを作成してみましたので 参考にしてください また 各 PaaS サービスの機能的な違いは 2.4 Azure PaaS サービスが提供するデータベースエンジン機能 を参照してください 本ガイドでは SQL Server 2008/2008 R2 に作成したデータベースを Azure が提供する IaaS および PaaS 環境に移行するシナリオで 作業手順を中心に説明します 前提知識 このガイドの読者として以下の経験をお持ちの方を想定しています SQL Server の実装および 運用管理 Azure 仮想マシンと仮想ネットワークのデプロイ Azure SQL Database のデプロイまだ Azure サービスを作成したことがない場合 Microsoft Azure 自習書シリーズ Azure IaaS 入門編 (Hands-on- 01-IaaS_foundation.pdf) から学習してください - 7 -

データベースの移行計画 2. データベースの移行計画 この章では最初に データベースをクラウドに移行するにあたり 押さえておきたい SQL Server と Azure に関する基本事項を 説明します また オンプレミスで使用している SQL Server 環境を調査する方法についても説明します SQL Server の確認事項 SQL Server では データを格納するためのデータベースエンジンサービスだけでなく 格納されているデータを活用するための複数のサービスがあります データベースエンジンサービス Analysis Services Reporting Services は マルチインスタンス構成をサポートしているため 1 台のサーバー環境に 50 までのサービスインスタンスを稼働させることができますが Integration Services マスターデータサービス は 1 台のサーバー環境で 1 つのサービスのみを稼働させることができます SQL Server 2008/2008 R2 からの移行を考えた場合 既存のサーバー環境で どのサービスをインストールしているのか? それらは 既定のインスタンス なのか 名前付きインスタンス なのかといったことも確認し 事前に移行先でのサーバー名 インスタンス名を定義しておきます また SQL Server 2017 では SQL Server 2008/2008 R2 では 提供されていなかったサービスとして Machine Learning サービス Data Quality Services をインストールすることができますが 使用しないサービスは 起動しないようにしましょう SQL Server 2008/2008 R2 のインスタンスに作成されたデータベースは データベース互換性レベル として 80~100 が設定されています データベース互換性レベルは データベースプロパティの [ オプション ] ページで確認することができます - 8 -

データベースの移行計画 SQL Server 2017 で設定できるデータベース互換性レベルは 100~140 です 移行元のデータベースで 90 以下を設定し ている場合 データベースの復元時点で 自動的に 100 に変更されますので 事前にデータベース互換性レベルを 100 以 上に設定して 既存のアプリケーションが動作することを検証しておきます データベース互換性レベルは SQL Server 2012 の 110 と 130 で いくつかの機能が廃止されていることに注意してください バージョンアップに伴い廃止された機能の詳細は SQL Server 2016 で廃止されたデータベースエンジンの機能 から開くことができる各ページを参照してください なお SQL Server のバージョンを上げた場合の互換性の問題や データベース互換性レベルの変更に伴う影響の調査では 以降で説明する Microsoft Data Migration Assistant を使用して アセスメントレポートを作成することができます - 9 -

データベースの移行計画 Azure サービス Azure プラットフォームでは IaaS (Infrastructure as a Service) と PaaS (Platform as a Service) の 2 種類のサービスモデルが提供されています 自社で調達した設備にソフトウェアを導入し 利用するようなオンプレミス環境では ネットワークやハードウェアから 物理 および仮想 OS 環境 アプリ データのすべてをユーザー側が管理してきました IaaS では サービスプロバイダーがネットワーク ハードウェアといったインフラストラクチャを提供するため ユーザーは 仮想 OS 環境から上位のミドルウェア データ アプリケーションを管理すればよく 更に PaaS では サービスプロバイダーが仮想 OS 環境とミドルウェアも含め提供し 管理してくれるため ユーザーは TCO を削減しながら データとアプリケーションの開発と管理に注力できます 利用者は Azure PaaS 環境で提供される フルマネージドなデータベースサービスを選択することで 以下の運用管理タスク を自動化できます 修正プログラムの適用 バージョン更新 データベースのバックアップ 高可用性のための構内での冗長化 監査 脅威の検出 チューニングまた Azure には アプリケーション およびインフラの各監視領域をモニターできるツール群が提供されています これらのサービスが組み合わされた包括的なソリューションを使用すれば アプリケーションやそれらのサービスを支える Azure リソースからテレメトリを収集 分析し それに基づいて対処できます また オンプレミスの重要なリソースを監視して ハイブリッド監視環境を構築することもできます - 10 -

データベースの移行計画 Azure 仮想マシンデプロイ時の考慮事項 Azure IaaS 環境で実行される Azure 仮想マシンは Microsoft のデータセンターで実行される仮想マシンインスタンスです 利用者は Windows または Linux の仮想マシンを作成し 任意のワークロードを実行できます SQL Server 2016 または 2017 が組み込まれた仮想マシンをデプロイする場合 以下の種類が提供されており 使用するバージョンを選択することができます SQL Server 2017 より Linux 上でインスタンスを動かすことができるようになりましたが 一部の機能は 未サポートのため データベースの移行先として選択する場合 Linux 上の SQL Server 2017 のリリースノート の サポートされていない機能とサービス セクションで あらかじめ確認しておく必要があります まず Azure 仮想マシンへの移行は オンプレミスで稼働していた SQL Server 環境をそのまま クラウドにリフトできるため PaaS 環境への移行に比べて 容易ですが Azure IaaS の構成要素と仮想マシンのデプロイにより生成されるリソースをよく理解しておく必要があります 次の図は 仮想マシンのデプロイ時に作成されるリソースを示しています - 11 -

データベースの移行計画 仮想ネットワークとサブネットは 仮想マシンのデプロイ時に作成することができますが 設定ミスによるやり直しを防ぐためにも あらかじめ どのようなネットワーク構成で運用するのかをデザインし 仮想マシンのデプロイ前に 仮想ネットワークを作成しておくことをお勧めします 特に オンプレミスとのハイブリッド構成やリージョン間のネットワーク接続を考えている場合 各ネットワークのアドレス空間が重複しないように調整し 事前に VPN ゲートウェイや ExpressRoute でのネットワーク間接続を構成しておきましょう Azure 仮想マシンは 様々な種類のサイズが提供されていますが SQL Server Enterprise エディションを稼働させる場合 Azure Premium Storage ディスクが使用できる DS V3 以上を選択することが推奨されています SQL Server のような IO 集中型のワークロードが発生する仮想マシンでは ストレージ構成が とても重要です ディスクは P30 以上を選択し 複数のディスクを使用して ログファイルとデータファイル Tempdb ファイルを分離して配置します また Standard Storage アカウントに対する推奨構成と異なるのは ディスクキャッシュの設定です SQL Server 用のデータファイルを格納するディスクに対しては 読み取り専用 を使用することが推奨され トランザクションログを格納するディスクには ディスクキャッシュを なし を使用します - 12 -

データベースの移行計画 その他 Azure 仮想マシンにデプロイする SQL Server の最適化については Azure Virtual Machines における SQL Server のパフォーマンスに関するベストプラクティス を参照してください また Azure 仮想マシンにデプロイした SQL Server でデータベースを冗長構成により保護するには 2 つ以上の SQL Server 仮想マシンを同一の可用性セットに配置し 仮想マシン間でデータベースを同期させる必要があります データの同期で データ損失がない状態を保つには データベースミラーリングか AlwaysOn 可用性グループを構成し 同期モードを使用したデータベース同期を行う必要があります Azure 仮想マシンにデプロイした SQL Server の高可用性構成のガイドラインについては Azure 仮想マシンにおける SQL Server の高可用性とディザスターリカバリー を参照してください - 13 -

データベースの移行計画 Azure PaaS サービスが提供するデータベースエンジン機能 Azure PaaS で提供されるフルマネージドの SQL Server 互換データベースエンジンサービスには下表の 3 種類があります これらのサービスは PaaS で動作するため IaaS の仮想マシン環境で動く SQL Server に比較して より自動化された運用管理環境を利用していただけますが Windows 統合認証は使用できないことに注意してください 引き続き Windows 統合認証によるデータベースへの接続が必要な場合は Azure 仮想マシンへの移行を検討してください PaaS のデータベースサービスに接続する場合は SQL Server 認証 または Azure Active Directory パスワード認証を使用します Azure SQL Database のシングルデータベース および エラスティックデータベースプールは どちらも Azure SQL Server 論理サーバーに作成されますが シングルデータベースは データベース単位での利用契約になるのに対して エラスティックデータベースプールは プールに対して 利用契約を結び プールに割り当てられたリソースを複数のデータベースで共有する形になります エラスティックデータベースプールを使用すると 各データベースのパフォーマンスに弾力性を提供しながら データベースのグループに対するコストを予算内に最適化できます この構成は 運用コストを最小化したい SaaS マルチテナントアプリケーションの移行に最適です また ライセンス販売からサービスサブスクリプションの販売にビジネスモデルの変換したい ISV 様のご利用にも向いています オンプレミスのデータベースを シングルデータベース および エラスティックデータベースプールに移行する場合 SQL Server の Backup Database ステートメントは使用することができないため Bacpac 形式 または 一括コピー操作によるデータのエクスポート / インポート操作での移行作業になります 3 つ目の Azure SQL Database Managed Instance は SQL Server 互換データベースエンジンのインスタンスサービスで Azure SQL Database に比べて SQL Server に対する より高い互換性を提供しています SQL Server エージェントジョブ データベースメールなどのインスタンス機能を使用している場合 また データベースで - 14 -

データベースの移行計画 MSDTC MDS QTS などの SQL Server の高度な機能を使用している場合 Azure SQL Database のシングルデータベースやエラスティックデータベースプールでは サポートされていませんが Managed Instance では利用可能です Managed Instance へのデータベース移行では SQL Server で標準的な BACKUP DATABASE ステートメントにより取得したバックアップを RESTORE DATABASE ステートメントで 復元することができます また シングルデータベース および エラスティックデータベースプールの配置先となる Azure SQL Server 論理サーバーは グローバル IP を持つエンドポイントで 仮想ネットワークには デプロイできませんが Managed Instance は 仮想ネットワークの専用サブネットにのみデプロイすることができます シングルデータベース および エラスティックデータベースプールへの接続エンドポイントとして使用する論理サーバーは デプロイしても そこにデータベースを作成していなければ 課金は発生しませんが Managed Instance は インスタンスをデプロイした時点から課金が開始されます その他 Managed Instance の詳細を理解するには Azure SQL Database Managed Instance を参照してください また SQL Server と Azure SQL Database および Managed Instance との機能的な相違点については 機能の比較 : Azure SQL Database と SQL Server を参照してください Azure ハイブリッド特典と予約購入 Azure 仮想マシンで SQL Server を稼働させる場合でも Azure PaaS で提供されるフルマネージドの SQL Server 互換データベースエンジンサービスを使用する場合でも 有効なソフトウェアアシュアランス (SA) または 有効な Windows Server サブスクリプション付きの Windows ライセンスを所有している利用者は Azure ハイブリッド特典を適用して コンピューティングコストを節約できます Azure ハイブリッド特典により適用できるインスタンス数の算出は Azure ハイブリッド特典 ページの Azure Hybrid Benefit 節約額計算ツール を使用してください また Azure 仮想マシン および Azure SQL Database は リソースを 1 年分または 3 年分前払いすることで 従量課金制の料金を最大 72% 削減することができます 予約は課金割引を提供するもので リソースの実行時の状態には影響しません 予約は Azure ポータルから購入できます Azure 仮想マシンの予約についての詳細は Azure Reserved VM Instances による仮想マシンの前払い を参照してください また Azure SQL Database の予約についての詳細は Azure SQL Database の予約容量を使用した SQL Database 計算リソースの前払い を参照してください - 15 -

データベースの移行計画 PaaS データベースサービスへ移行する場合の Web アプリの修正点 オンプレミスの SQL Server から Azure SQL Database にデータベースを移行する場合 クライアントアプリケーションは SQL Server にアクセスする場合と同様に ADO.NET Entity Framework ODBC および JDBC の各データプロバーダーを使用できるため これまでと同様のコードでデータベースに接続できます しかしながら データベースエンジンの動作の違いから アプリケーションに対して行う必要があるいくつかの修正項目について考慮してください # チェック項目 チェック 1 Windows 認証接続は 使用できないため SQL Server 認証 または Azure Active Directory 認証を使用する 2 インスタンスからの切断に備えて リトライ処理を実装する 3 接続のタイムアウト値は 30 秒以上 リトライ間隔は 10 秒以上に設定する 4 日付と時刻の表示は UTC 時間となるため 日本時間で運用する場合 9 時間加算する 5 スケールアウトに対応できるようにアプリが設計されていることを確認し スケールアウト スケールイン操作で問題が起こらないことをテストする 6 アプリを Azure Web App に配置する場合 アプリが使用している言語 フレームワークに合わせて Web Apps のアプリ設定を構成し テストする Azure SQL Database および Azure SQL Database Managed Instance への接続時に使用できる認証方法は SQL Server 認証と Azure Active Directory 認証のみがサポートされています 引き続き オンプレミスと同じユーザーアカウント情 報を使用して Azure SQL Database Azure SQL Database Managed Instance へ接続させたい場合は オンプレミスの Active Directory と Azure Active Directory 間でアカウント同期することを検討してください オンプレミスのディレクトリと Azure Active Directory を統合については ハイブリッド ID のドキュメント を参照してください Azure SQL Database では リソースガバナンスと制限の適用という 2 つの異なるメカニズムを使用して データベースで使用 できるリソースが管理されています データベースへの接続のアイドル時間が 30 分を超えたり 同一テナント内の別ユーザーから 高い負荷がかけられ リソースが不足すると 安定性を保つため スロットリングにより接続が終了することもあります このため アプリケーション側の実装としては 接続が自動切断した場合に備え リトライ処理が必要になります また 多数の クライアントが同時にリトライ処理を再試行することで 過大に負荷がかかるのを防ぐために 接続のタイムアウト値は 30 秒 以上 リトライ間隔は 10 秒以上に設定しますることが推奨されています Azure SQL Database への接続に関する問題の 対応は Azure SQL Database との接続に関する一般的な問題のトラブルシューティング を参照してください また Azure SQL Database および Azure SQL Database Managed Instance のどちらでも 日付時刻の表示は UTC 時間になるため 日本時間でのデータ表示や保存が必要な場合 9 時間加算するロジックを組み込む必要があります - 16 -

データベースの移行計画 SQL Server の主要なツールの変遷と入手先 SQL Server 2008/2008 R2 では インストールメディアに同梱されていた管理ツール および BI コンポーネントの開発ツールの一部が 現在の SQL Server バージョンでは Web からダウンロードして入手していただく形態に変更されています これらのツールは Azure の PaaS 環境で稼働する SQL Server 互換のマネージドサービスに対しても そのまま使用することができます 統合管理ツール BI 開発ツールコマンドラインツール 2008 2008 R2 2012 2014 2016 2017 入手先 SQL Server SQL Server SQL Server https://docs.microsoft.com/ja- Management Studio Management Studio Management Studio jp/sql/ssms/download-sql-server- (SSMS) (SSMS) (SSMS) management-studio-ssms Azure Data Studio https://docs.microsoft.com/jajp/sql/azure-datastudio/download?view=sql-server-2017 Reporting Services Reporting Services Reporting Services https://www.microsoft.com/jajp/download/details.aspx?id=55252 構成マネージャー 構成マネージャー 構成マネージャー Business SQL Server Data SQL Server Data https://docs.microsoft.com/ja- Intelligence Tools (SSDT) Tools (SSDT) jp/sql/ssdt/download-sql-server-data- Development tools-ssdt Studio (BIDS) SQLCMD SQLCMD SQLCMD https://docs.microsoft.com/jajp/sql/tools/sqlcmd-utility?view=sqlserver-2017 mssql-cli https://github.com/dbcli/mssqlcli/blob/master/doc/installation_guide.md bcp bcp bcp https://docs.microsoft.com/ja- jp/sql/tools/bcp-utility?view=sql-server- 2017 これらのツールは Azure で提供される最新機能に対応していくため 現在では Web からの提供になっていることをご理解ください また SQL Server 2017 は Windwos Server だけでなく Linux OS もサポートしているため 新たに クロスプラットフォーム環境で実行できるツールとして Azure Data Studio mssql-cli が追加されています これらのツールは Windwos 以外に Linux と macos でも実行することができます 新しいコマンドラインツールの mssql-cli は github で公開され ドキュメントは mssql-cli/doc/ から参照することができます - 17 -

データベースの移行計画 データベース移行のためのツールとサービス SQL Server 2008/2008 R2 からそれ以降の SQL Server 環境 または PaaS のデータベースサービスへの移行を考えている場合 最初に使用していただきたいツールは Microsoft Assessment and Planning (MAP) Toolkit です このツールは ターゲットにエージェントソフトウェアをインストールすることなく迅速に IT 環境のインベントリを生成することができます 移行対象のサーバー環境に どのような SQL Server バージョンのコンポーネントが インストールされ どれくらいのサイズのデータベースが いくつ作成されているのかといったことを素早く調査できます そして 移行対象のインスタンスに対して アセスメントを実行する時に使用するツールが Microsoft Data Migration Assistant (DMA) です このツールにより データベース移行時に発生する互換性の問題の調査が可能です データベースがアップグレードされることにより生じる問題を事前に検出できるため 移行作業に伴う工数の見積もりにも使用することができます さらに データベース移行作業でも このツールを使用できます 下表は これらの移行ツールが対応しているソース ( 移行元 ) とターゲット ( 移行先 ) を示しています 2019 年 3 月時点では Microsoft Data Migration Assistant (DMA) で Azure SQL Database Managed Instance へ移行するためのアセスメントレポートの作成は 可能ですが データベースの移行操作は 未サポートであることに注意してください Azure SQL Database Managed Instance への移行では デスクトップツールではなく Azure Database Migration Service という PaaS サービスを使用します Azure Database Migration Service は 複数のデータベースソースから Azure データプラットフォームへのシームレスな移行を最小限のダウンタイムで実現できるように設計されたフルマネージドサービスです SQL Server を含めた各種データベースサーバーから Azure IaaS PaaS 環境へ オフラインとオンラインでの移行をサポートしています Azure Database Migration Service がサポートしているソースとターゲットは 下表のとおりです ソース ターゲット スキーマのみ オフライン オンライン SQL Server SQL Server on Azure VM 〇 Azure SQL Managed Instance 〇 Premium SKU が必要 Azure SQL Database 〇 〇 Premium SKU が必要 MongoDB Azure Cosmos DB (MongoDB API) 〇 Premium SKU が必要 MySQL SQL Server on Azure VM プライベートプレビュー Azure SQL Database プライベートプレビュー Azure Database for MySQL Premium SKU が必要 - 18 -

データベースの移行計画 PostgreSQL Azure Database for PostgreSQL Premium SKU が必要 Oracle SQL Server on Azure VM プライベートプレビュー プレビュー Premium SKU が必要 Azure SQL Managed Instance プライベートプレビュー Premium SKU が必要 Azure SQL Database プライベートプレビュー プレビュー Premium SKU が必要 Azure SQL Data Warehouse プライベートプレビュー Azure Database Migration Service を使用した SQL Server から Managed Instance への移行手順は 本書の 第 5 章 Azure SQL Database Managed Instance へのデータベース移行 を参照してください - 19 -

データベースの移行計画 2.8.1 Microsoft Assessment and Planning (MAP) Toolkit を使用したインベントリ収集 Microsoft Assessment and Planning (MAP) Toolkit は 以下の OS 環境をサポートしています Windows 10 Windows 8.1 Windows 8 Windows 7 SP1 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 Windows Server 2008 R2 SP1 また.NET Framework 4.5 以降が構成されていることが前提となります インストールモジュールは SQL Server のインストールセンターから [ ツール ] ページを選択して [SQL Server 用 Microsoft Assessment and Planning (MAP) Toolkit] をクリックして接続されるページから MapSetup.exe をダウンロードして インストールを実行します また ダウンロードセンターの Microsoft Assessment and Planning Toolkit のダウンロードページに直接接続することもできます インストールが完了して ツールを起動すると 次のようなダイアログが表示され インベントリ収集のためのデータベースの作成を 要求されます ここで新しいデータベースを作成するには [Name] テキストボックスに任意のデータベース名を入力して [OK] ボタンをクリックするだけです - 20 -

データベースの移行計画 インベントリ収集のためのデータベースは LocalDB の形式で作成されますので インベントリ収集のために事前に SQL Server インスタンスを構成しておく必要はありません この後 SQL Server 関連のインベントリ収集を行うには [Database] ページを選択して [SQL Server Discovery] の [Collect inventory data] をクリックします そうすると ウィザードが起動するので [Inventory Scenarios] ページの [Choose your scenario] で以下を選択して [Next] をクリックします SQL Server SQL Server with Database Details [Discovery Methods] ページの [Select which methods to use to discover computers] では ネットワークに接続されたコンピューターの検出方法を指定します Active Directory ドメインサービス (AD DS) ネットワークプロトコル IP ( インターネットプロトコル ) アドレス範囲のスキャン コンピューター名の手動入力 - 21 -

データベースの移行計画 ファイルからコンピューター名をインポート ワークグループ環境にあるサーバーは 事前にターゲットのホスト名を確認し [Manually enter computer names and credentials] や [Import computer names from a file] といったオプションを使用して ターゲットのサーバーごとに認証情報を指定することで インベントリ収集することができます 既定の [Use Active Directory Domain Services (AD DS)] を選択している場合は [Active Directory Credentials] ページで 対象の Active Directory ドメイン名と対象サーバーにアクセス可能な資格情報を入力します - 22 -

データベースの移行計画 更に 検索対象のコンピューターが置かれている Active Directory ドメインの OU を選択します [All Computers Credentials] ページでは 必要に応じて [Create] ボタンを使用して 対象のコンピューターに接続できるの 資格情報を追加することができます 資格情報は 複数の種類を保存しておくことができます 対象コンピューターへの接続では Windows Management Instrumentation (WMI) Windows 認証 (SQL Windows) SQL Server 認証 (SQL Native) の 3 種類から選択できますので 接続方法に対応する資格情報を入力しておくことが重要となります なお WMI は リモートからハードウェア ソフトウェア およびデバイスの情報を収集するためのインターフェイスですが Windows ファイアウォールが有効になっている場合 以下の受信規則が構成されている必要があることに注意してください TCP ポート 135 ( リモート管理 ) TCP ポート 137 と 445 UDP ポート 137 と 138 ( ファイルとプリンターの共有 ) また ワークグループに配置している場合は ネットワークアクセス : ローカルアカウントの共有とセキュリティモデル ポリシーが [ クラシック ] に設定されている必要もあります - 23 -

データベースの移行計画 接続方法ごとに 複数の資格情報を登録した場合 [Credentials Order] ページで 使用する資格情報の順序を指定する ことができます なお 手動での対象コンピューターの設定を選択した場合は [Enter Computers Manually] ページで 対象のコンピ ューターを登録することができます [Summary] ページで [Finish] をクリックするとインベントリ収集が始まります - 24 -

データベースの移行計画 インベントリ収集が完了するとサマリーレポートの Excel シートを開いてアセスメントレポートやデータベースの詳細レポートを確 認することができす なお アセスメントレポートで収集される情報は 対象の SQL Server データベースエンジンサービスインスタンスに接続して 以下のクエリを実行することでも得ることができます SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ResourceVersion') AS ResourceVersion, SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime, SERVERPROPERTY('Collation') AS Collation, SERVERPROPERTY('Edition') AS Edition, @@VERSION AS [@@VERSION]; GO また データベースファイルの配置先は 以下のクエリを実行することでも得ることができます SELECT name, physical_name AS current_file_location FROM sys.master_files; GO - 25 -

データベースの移行計画 2.8.2 Microsoft Data Migration Assistant を使用した移行アセスメントの実行 Microsoft Data Migration Assistant は 以下の 64 bit OS 環境をサポートしています Windows 10 Windows 7 Windows 8 Windows 8.1 Windows Server 2012 また.NET Framework 4.5.2 以降が構成されていることが前提となります インストールモジュールは SQL Server のインストールセンターから [ プラン ] ページを選択して [Data Migration Assistant (DMA) のダウンロード ] をクリックして接続するページから取得できます また ダウンロードセンターの Microsoft Data Migration Assistant に直接接続して ダウンロードすることもできます インストールが完了して ツールを起動すると 次のような初期画面が表示されるので [+] をクリックして プロジェクトの作成か ら始めます - 26 -

データベースの移行計画 [New] が表示されたら [Project type] で Assesment を選択して [Project name] に任意のプロジェクト名を入力します ここで [Source server type] と [Target server type] のリストボックスをプルダウンするとサポートされているソースとターゲットを確認することができます 2019 年 3 月時点のバージョンでは [Source server type] には SQL Server が選択でき [Target server type] には SQL Server Azure SQL Database Azure SQL Database Managed Instance SQL Server on Azure Virtual Machine を選択することができます また 現在サポートされている SQL Server のバージョンは 以下になります ソースとターゲットを指定した後 [New] で [Create] をクリックすると 作成するレポートの種類を選択する [Options] ページが表示されます ここでは [Select report type] で [Check database compatibility] と [Check feature parity] を選択することで 互換性に関する問題を検出できます - 27 -

データベースの移行計画 [Select report type] で [Next] をクリックすると [Connect to a server] が表示されるので 移行元の SQL Server 2008/2008 R2 のデータベースエンジンサービスインスタンスに接続するための認証情報を設定して [Connect] をクリックします データベースエンジンサービスインスタンスへの接続に成功すると [Add sources] が表示されるので 移行アセスメントを実行する対象のデータベースを選択して [Add] をクリックします ここで [Select sources] ページが表示されるので 移行対象のデータベースがリストされることを確認して [Start Assessment] をクリックします - 28 -

データベースの移行計画 これにより 対象のデータベースのアセスメントが開始します しばらくすると [Review results] ページが表示されます [Select report type] で [Feature Parity] を選択している場合 [Review results] ページで [Feature Parity] から表示さ れますので 互換性の問題を確認するには ここで [Compatibility issues] オプションを選択します データベース互換性レベルごとに Breaking changes ( 下位互換性のない変更点 ) Behavior changes ( 変更された動作 ) Deprecated features ( 将来廃止される機能 ) の 3 種類の問題点がレポートされますので [Issue details] で詳細を確認し [impacted objects] で対象のデータベースオブジェクトを確認してください このページの [Export report] を使用すると レポート内容を json 形式 または CSV 形式のファイルに保存することができます - 29 -

データベースの移行計画 移行元の SQL Server サービスインスタンス構成の確認 使用している SQL Server サービスの種類は Microsoft Assessment and Planning (MAP) Toolkit が生成するアセスメントレポートで確認することができますが SQL Server サービスが稼働する Windows Server にログインして SQL Server 構成マネージャーを使用しても確認することができます SQL Server サービスの自動起動やサービスアカウントの設定 使用している TCP ポート番号 起動時パラメーターに指定したトレースフラグなどは 手動で移行する必要があるので 既定の構成を変更している場合 SQL Server 構成マネージャーから確認しておく必要があります なお SQL Server サービスのサービスアカウントに Active Directory ドメインのユーザーアカウントを使用している場合 SQL Server がアクセスする必要があるドメインリソースを確認し 必要に応じて Azure IaaS 環境にも Active Directory ドメインを作成することを検討してください また sp_configure システムストアドプロシージャや SQL Server Management Studio の [ サーバーのプロパティ ] ダイアログから構成できる SQL Server データベースエンジンサービスインスタンスの構成は 対象のインスタンスに接続して 以下のクエリを実行することで得ることができます SELECT * FROM sys.configurations GO - 30 -

データベースの移行計画 なお 移行先には既定値から変更した構成のみを反映すればよいため SQL Server Management Studio インスタンスを右クリックして表示されるメニューから [ レポート ] [ 標準レポート ] をクリックして 選択することができる [ サーバーダッシュボード ] レポートの [ 既定以外の構成オプション ] を参照すると効率的です サーバーダッシュボードレポートの起動 サーバーダッシュボードレポートの [ 既定以外の構成オプション ] - 31 -

オンプレミスから IaaS へのデータベース移行 3. オンプレミスから IaaS へのデータベース移行 本章ではオンプレミスで運用している SQL Server を Azure 仮想マシンに移行する手順を説明します Azure 仮想マシンのデプロイモデルには ASM (Azure Service Management) と ARM (Azure Resource Manager) がありますが SQL Server 用の仮想マシンには ARM (Azure 仮想マシン v2) を選択することを推奨します デプロイ時には 仮想マシンで使用できる CPU コア数 メモリサイズ ストレージを選択することができます 仮想マシンは ネットワークインターフェイスリソースを介して仮想ネットワークに参加します ネットワークインターフェイスリソースには グローバルインターネットに接続するためのパブリック IP アドレスと仮想ネットワーク内で通信するためのプライベート IP アドレスを割り当てることができます また ネットワークインターフェイスリソース および仮想ネットワークのサブネットには 受信規則 送信規則を構成できるネットワークセキュリティグループを関連付けることができます 仮想マシンの作成時に 仮想ネットワークを作成することもできますが 仮想マシンは オンプレミスや PaaS 環境とのハイブリッド構成を含め様々なパターンで仮想ネットワークに配置することができます 最初に どのようなネットワーク構成で運用するのかを決定し 仮想マシンを作成する前に 仮想ネットワークを構成することをお勧めします - 32 -

オンプレミスから IaaS へのデータベース移行 Azure 仮想マシンのデプロイと構成 管理ポータルから仮想マシンを作成するとき Marketplace に登録された各イメージから 様々な種類の Azure 仮想マシンを作成できます Microsoft が提供する仮想マシンイメージには 最新の修正プログラムが適用された Windows Server や SQL Server が含まれる Windows Server が提供されています ここでは SQL Server 2017 Enterprise のサービスインスタンスを実行するデータベースサーバーの作成手順を説明します Azure で提供される Windows Server の仮想マシンイメージは 英語版のみのですが 日本語の言語パックを追加することで OS を日本語化できます ただし この操作を行っても SQL Server は日本語化されないことに注意してください 本自習書では 英語版の SQL Server を使用する場合の照合順序の変更方法を含めて説明します 3.1.1 Azure 仮想ネットワークの作成 最初に仮想マシンを配置するための仮想ネットワークを作成します Azure 仮想ネットワークは 仮想マシンを接続するための論理的なネットワークです 1 つの仮想ネットワークに接続された仮想マシンは お互い自由に通信することができます 仮想ネットワークのアドレス空間は クラス A (10.0.0.0/8) クラス B (172.16.0.0/12) クラス C (192.168.0.0/16) のプライベート IP アドレスを設定することができます また 仮想ネットワークには 複数のサブネットを作成することができます 同じ仮想ネットワークのアドレス空間内に作成されたサブネットは 何も設定しなくてもサブネット間の通信が可能ですが サブネット間の通信を制限する ネットワークセキュリティグループ (NSG) と呼ばれるファイアウォール機能を構成して サブネットを分けることができます ここでは 下図のようなシンプルな構成で仮想ネットワークを作成する手順を説明します 本番環境では アドレス空間を適切な値とサイズに変更してください また この手順を実行する前に 事前に Azure ポータルのハブメニューから [ すべてのサービス ] [ ネットワーキング ] [ 仮想 ネットワーク ] を選択して 使用するサブスクリプションに作成されている仮想ネットワークのリストを表示し 使用済みのアドレス 空間を確認してください - 33 -

オンプレミスから IaaS へのデータベース移行 Azure ポータルから仮想ネットワークを作成するには ポータルの画面左のハブメニューより [ リソースの作成 ] をクリックし [ ネ ットワーキング ] [ 仮想ネットワーク ] をクリックします この操作で表示される [ 仮想ネットワークの作成 ] ブレードで 下表のパラメーター値 ( 使用するアドレス空間は自社の環境に 合わせて変更してください ) を設定し [ 作成 ] をクリックします - 34 -

オンプレミスから IaaS へのデータベース移行 パラメーター 説明 設定する値 名前 仮想ネットワークに付ける任意の名前です Azure-VNET-01 アドレス空間 仮想ネットワーク全体のアドレス空間です 10.1.0.0/24 サブスクリプション 使用するサブスクリプションです 任意 リソースグループ 仮想ネットワークを格納するリソースグループを選択しま 任意 す 新規または既存のリソースグループが選択できます 場所 仮想ネットワークを作成する場所を選択します 任意 サブネット- 名前 サブネットに付ける任意の名前です Frontend-Subnet サブネット-アドレス範囲 サブネットのアドレス空間です 10.1.0.0/27 DDoS Protection DDoS 攻撃をアルタイムに検出して サービスの可用性が Basic 影響を受ける前に Azure ネットワークの境界でトラフィックを除去する機能です サービスエンドポイント 仮想ネットワークのプライベートアドレス空間を拡張し 無効 VNET へのアクセスを以下の Azure PaaS サービスに提供する機能 Azure Storage Azure SQL Database Azure Datawarehouse Azure Database for PostgreSQL サーバー Azure Database for MySQL サーバー : Azure Cosmos DB Azure Key Vault Azure Service Bus Azure Event Hubs Azure Data Lake Store Gen 1 ファイアウォール Azure 仮想ネットワークリソースを保護するためのプロキシサーバー機能を提供するマネージドネットワークセキュリティサービス 無効 作成した仮想ネットワークにサブネットを追加するには 左メニューで [ サブネット ] をクリックして表示されるブレードで [ サブネッ ト ] をクリックします - 35 -

オンプレミスから IaaS へのデータベース移行 [ サブネットの追加 ] ブレードで サブネットを構成するパラメーター値を設定して [OK] ボタンをクリックします パラメーター 説明 設定する値 名前 サブネットに付ける任意の名前です Backend-Subnet アドレス空間 サブネットのアドレス空間です 10.1.0.32/27 ネットワークセキュリティグループ サブネットに関連付けるネットワークセキュリティグループの指定です なし ルートテーブル サブネットに関連付けるルーティングテーブルの指定です なし サービスエンドポイント 仮想ネットワークのプライベートアドレス空間を拡張し VNET への 設定しない アクセスを Azure PaaS サービスに提供する機能 サブネットの委任 特定のサービスにサブネットを占有使用させることを許可する なし 仮想ネットワークの [ サブネット ] ブレードでサブネットが追加されたことを確認します - 36 -

オンプレミスから IaaS へのデータベース移行 3.1.2 データベースサーバーのための Azure 仮想マシンの作成 Azure ポータルからデータベースサーバーとして使用する Windows Server 仮想マシンを作成します ここでは仮想マシンは 下図のように前の手順で作成した仮想ネットワークの Backend-Subnet サブネットに配置する手順として説明します Azure ポータルから仮想マシンを作成する場合 ネットワークインターフェイスリソースの名前は自動生成されます Azure ポータルからは ネットワークインターフェイスに関連付くネットワークセキュリティグループとパブリック IP アドレスリソースを構成することができます ネットワークセキュリティグループにより ファイアウォール機能が提供され 仮想マシンへのアクセス制御を設定することができます SQL Server 2017 が実行される仮想マシンを作成するには Azure ポータルの画面左のハブメニューで [ リソースの作成 ] を選択し Azure Market Place を検索するためのテキストボックスに SQL Server 2017 と入力して Enter キーを押します この操作で [ すべて ] ブレードに 仮想マシンの種類がリストされるので インストールしたい仮想マシンイメージを選択して Enter キーを押します - 37 -

オンプレミスから IaaS へのデータベース移行 選択した仮想マシンイメージのブレードが表示されるので [ デプロイモデルの選択 ] で Resource Manager を選択し [ 作成 ] をクリックして 仮想マシンイメージの設定を開始します 本書では SQL Server 2017 Developer が実行される Windows Server 2016 仮想マシンを作成していますが 本番環境では Enterprise か Standard を選択してください [ 基本 ] ブレードでは 仮想マシンの名前 管理者アカウントの情報 配置するリソースグループと場所などを設定して [OK] ボタンをクリックします 仮想マシンの名前は 仮想マシンのコンピューター名となります - 38 -

オンプレミスから IaaS へのデータベース移行 有効なソフトウェアアシュアランス (SA) または 有効な Windows Server サブスクリプション付きの Windows ライセンスを所有している場合 [ お金を節約 ] で [ はい ] を選択することで Azure ハイブリッド特典を適用して コンピューティングコストを節約できます 仮想マシンの作成で 次に表示される [ サイズの選択 ] ブレードでは [ ディスクの種類 ] で Premium を選択します SQL Server の Enterprise エディションを稼働させる場合 Premium ディスクをサポートする DXs_v3 以上が推奨されます ワンポイント Azure 仮想マシンで選択可能なサイズとオプションについて説明は Azure の Windows 仮想マシンのサイズ を参照してください なお SQL Server では Premium Storage を選択できる仮想マシンを使用することが推奨されています Enterprise では DS3_v2 以上 Standard および Web でも DS2_v2 以上のサイズを選択してください Premium Storage で選択できるサイズや性能については Azure で利用できるディスクの種類 を確認してください - 39 -

オンプレミスから IaaS へのデータベース移行 仮想マシンのサイズを選択すると オプション機能を構成する [ 設定 ] ブレードが表示されるので 仮想マシンを配置する仮想 ネットワークとサブネットを指定します Azure に接続する環境が Express Route やサイト間 VPN 接続で 直接 Azure に接続されていない場合 Azure 仮想マシンに パブリック IP アドレスを割り当てて RDP を使用して接続する必要があります この場合 パブリック受信ポートに RDP 接続で使用する 3389 を指定しておきます 拡張機能では [ 自動シャットダウン ] と [ 監視 ] の設定が行えますので 必要に応じて構成してください なお 自動シャットダウンさせた仮想マシンを自動で起動させるには Azure Automation を使用します RunBook に下記 Power Shell コマンドを実行することで 起動をスケジュール実行することができます Start-AzureRmVM -ResourceGroupName " リソースグループ名 " -Name "VM 名 " なお Azure 仮想マシンの冗長構成を設定する場合 このブレードで 可用性ゾーン または 可用性セットを構成することができます 可用性セットを構成することで 計画メンテナンスまたは計画外メンテナンスの期間でも 1 つ以上の仮想マシンが使用可能になり 99.95% の Azure SLA が満たされます 可用性ゾーンは 1 つの Azure リージョン内で物理的に分離されたゾーンのことで データセンター全体に及ぶ障害や損失からアプリとデータを保護するために使用します 可用性ゾーンの構成により 99.99% の Azure SLA が満たされます 可用性ゾーン 可用性セットは 仮想マシンの作成時にのみ設定でき 仮想マシンの作成後に変更できません これらの機能の詳細については Azure での Windows 仮想マシンの可用性の管理 の記事を参照してください ワンポイント仮想マシンに接続されているすべてのディスクに Premium Storage を使用している場合 可用性セットに属さない単一インスタンスの仮想マシンへの接続性に対しても 月間 99.9% の SLA が提供されます さらに 可用性セット または 可用性ゾーンを構成することで それぞれ 99.95 % 99.99 % の SLA を提供しています Azure は 仮想マシンの高可用性を SLA で保証していますが 仮想マシン内で実行される SQL Server インスタンスの高可用性を保証しているわけではないことに注意してください 仮想マシンがオンラインで 正常な状態にあっても SQL Server インスタンスで障害が発生する可能性があります また ディザスターリカバリーソリューションを構築する場合 分散環境での SQL Server データベースのトランザクションの整合性を考慮しなければなりませ - 40 -

オンプレミスから IaaS へのデータベース移行 ん SQL Server が稼働する仮想マシンの可用性を保証するには 複数の仮想マシンに SQL Server インスタンスを構成した上で データベースを同期する必要があります このため AlwaysOn 可用性グループやデータベースミラーリングといった高可用性と障害復旧 (HADR) データベースソリューションを構成する必要があります 本書では SQL Server の HADR 構成について解説していませんが 設定方法を確認される場合は さらに Azure 仮想マシンにデプロイした SQL Server で AlwaysOn 可用性グループを構成する場合 合わせて Azure 仮想マシンで Always On 可用性グループを作成するための前提条件を満たす と Azure VM での AlwaysOn 可用性グループの手動構成 の記事を参照してください [SQL Server の設定 ] ブレードでは SQL Server のデータベースエンジンサービスの既定のインスタンスへの接続に関する構成が可能です ここでは まず SQL Server インスタンスに対して仮想ネットワーク内からの接続のみを許可する場合 [SQL の接続 ] を プライベート (Virtual Network 内 ) にします なお 運用前の SQL Server の構成などの目的で一時的に インターネットからの接続を許可する場合 [SQL 認証 ] を有効化して SQL Server 認証の管理者ログインを作成しておく必要があります また 通常 既定のインスタンスは 1433/TCP ポートを利用して接続するため 攻撃者が そのポートに対する不正な接続や不正なパケットの送信を試行する可能性を配慮し 既定の 1433 からポート番号を変更することをお勧めします ポート番号を変更した場合 クライアントアプリからは 接続先として ホスト名,< ポート番号 > を指定することでインスタンスに接続できます - 41 -

オンプレミスから IaaS へのデータベース移行 [SQL Server の設定 ] ブレードで設定できる [ ストレージの構成 ] は Premium Storage を選択している場合 [IOPS] [ ス ループット ] [ ストレージサイズ ] の設定が使用できます 各スライダーの刻みの数と上限は 選択した VM のサイズに依存しま す また IOPS やスループットを増やしたい場合は まず ストレージサイズから大きくする必要があります また ストレージの最適化の選択肢として [ 全般 ] [ トランザクション処理 ] [ データウェアハウス ] から選択することができます 最適化の設定方法については SQL Server VM のストレージの構成 の [ ワークロード最適化の設定 ] を参照してください [SQL Server の設定 ] ブレードで設定できる [ 自動バックアップ ] では Azure Blob ストレージへの定期的な完全バックアップとトランザクションバックアップのスケジュールを構成できます バックアップの保有期間は 0~30 日の間で選択できます バックアップの暗号化を有効化することで データベースが暗号化されていなかった場合でもバックアップを暗号化することができます Azure は バックアップを暗号化するための証明書を作成し 指定されたパスワードを使用してその証明書を保護します - 42 -

オンプレミスから IaaS へのデータベース移行 最後に [ 概要 ] ブレードで設定内容を確認して [ 作成 ] をクリックします - 43 -

オンプレミスから IaaS へのデータベース移行 3.1.3 作成したデータベースサーバーへの接続 デプロイした仮想マシンに接続するには 仮想マシンの [ 概要 ] ブレードで [ 接続 ] をクリックします ワンポイントリモートデスクトップ (RDP) 接続で使用するパブリック IP アドレスは 予約されていない場合 Azure 仮想マシンを再起動すると変更されます パブリック IP アドレスに DNS 名ラベルを設定することで DNS 名を指定して 接続できます この設定は [ 概要 ] ブレードの [DNS 名 ] で 構成 をクリックして 設定してください [ 仮想マシンに接続する ] で [RDP ファイルのダウンロード ] をクリックして ダウンロードされる rdp ファイルを使用してリモート デスクトップ接続を開きます - 44 -

オンプレミスから IaaS へのデータベース移行 [Windows セキュリティ ] が表示されたら Azure 仮想マシンの作成時に指定したユーザー名とパスワードを入力し [OK] を クリックします - 45 -

オンプレミスから IaaS へのデータベース移行 3.1.4 Windows Server の日本語化 Microsoft Azure で提供される Windows Server の仮想マシンイメージは英語版ですが 日本語の言語パックを追加することで OS を日本語化することができます コントロールパネルから言語 地域 タイムゾーンを変更し仮想マシンの OS 環境を日本語化します タイムゾーン : (UTC) Coordinated Universal Time 大阪 札幌 東京 言語設定 : English(United States) 日本語 地域設定 : United States 日本 構成手順の詳細については Azure 環境における Windows Server の日本語環境化について を参考にしてください ワンポイント SQL Server が組み込まれた Azure 仮想マシンイメージから仮想マシンを作成した場合 SQL Server も英語版がインストールされますが OS に日本語の言語パックを追加しても SQL Server は日本語化されていないことに注意してください SQL Server データベースエンジンの実行可能ファイルは全言語共通であるため 英語版 SQL Server でも 日本語を挿入可能なデータ型 (Unicode 型など ) をテーブル列として使用することで 日本語データの格納と参照が可能です なお SQL Server を日本語化するには 下記の作業が必要になります 1. SQL Server IaaS Agent 拡張機能のアンインストール 2. SQL Server と関連コンポーネントのアンインストール 3. OS のロケール設定を日本語に変更 4. 日本語の SQL Server 2017 Evaluation Edition を使用して 日本語版の SQL Server をインストール Azure 管理ポータルのギャラリーからデプロイした Azure 仮想マシン上に作成した SQL Server 2017 (Windows OS 版 ) の日本語化手順の詳細については Azure 仮想マシン上に作成した SQL Server の日本語化手順 (Windows OS 版 SQL Server 2017 対応手順 ) を参照してください - 46 -

オンプレミスから IaaS へのデータベース移行 SQL Server インスタンスの構成 Azure 仮想マシンで稼働する SQL Server に対して 2.9 移行元の SQL Server サービスインスタンス構成の確認 で確認した 既定の設定から変更しているインスタンス構成を移行先に反映する作業と 以下の設定作業を行います サーバー照合順序の変更 sa アカウントの無効化 既定の言語の変更 使用しない SQL Server サービスの停止 データディスクの追加と既定のデータベースフォルダーの変更また Azure 仮想マシンは ワークグループ環境に構成されますので Active Directory ドメイン環境が必要な場合 仮想ネットワークにドメインコントローラーをデプロイして ワークグループからドメイン環境への移行を行ってください なお インスタンスに対する一連の構成作業では サーバー照合順序の変更 を最初に行ってください この作業は master システムデータベースの再構築を伴うため master システムデータベースに行われた変更が初期状態にリセットされることに注意してください 3.2.1 サーバー照合順序の変更 照合順序は データセット内の各文字を表すビットパターンの指定で これにより データの並べ替えおよび比較を行うための 規則が決定されます 照合順序指定子に Japanese が選択された場合 データを日本語辞書順で格納することができま す 照合順序は 次のレベルで設定できます サーバー データベース テーブルの列 Azure 仮想マシンにインストールされる英語版 SQL Server のサーバー照合順序は SQL_Latin1_General_CP1_CI_AS で日本語には対応していないため 日本語版の SQL Server と同じ照合順序に変更する場合 Japanese_CI_AS に変更する必要があります ワンポイント日本語版 SQL Server の既定の照合順序は Japanese_CI_AS です CI (Case Insensitive) は 大文字 小文字が区別されないことを意味し AS (Accent Sensitive) は アクセント 濁音 半濁音を区別することを意味しています サーバーレベルで英語版の照合順序を使用していても データベースレベルで照合順序を Japanese_CI_AS で設定することで 対象のユーザーデータベースに対して日本語対応できますが tempdb システムデータベースの照合順序は SQL_Latin1_General_CP1_CI_AS であるため tempdb を使用する操作では その影響を受けることに注意してください なお SQL Server 2012 以降では ユーザーデータベースを包含データベースとして設定することで サーバー照合順序の影響を受けずに ユーザーデータベースを使用することも可能ですので 必要に応じて 包含データベース化も検討してください 包含データベースの詳細については 包含データベースの照合順序 を参照してください - 47 -

オンプレミスから IaaS へのデータベース移行 サーバー照合順序は SQL Server Management Studio から接続したインスタンスの [Properties] を選択して 表示され る [Server Properties] の [General] ページで確認することができます サーバー照合順序の変更は コマンドプロンプトを管理者として起動し 最初に セットアッププログラムがあるフォルダーに移 動するため 以下のコマンドを入力して Enter キーを押します CD C:\SQLServerFull サーバー照合順序を Japanese_CI_AS に変更するには 以下のコマンドを入力して Enter キーを押します Setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SAPWD=<sa アカウントのパスワード > /SQLSYSADMINACCOUNTS=<Windows 認証の管理者ユーザー名 > /SQLCOLLATION=Japanese_CI_AS ワンポイント 本書では Word 文書の校正上 改行が入っていますが Setup コマンドは 1 行として記述して 実行する必要がありますので コマン ドをメモ帳などに記述した後 コピーして コマンドプロンプトに貼り付けて実行するとよいでしょう - 48 -

オンプレミスから IaaS へのデータベース移行 サーバー照合順序の変更により 仮想マシンのデプロイ時に作成した管理者用の SQL Server 認証ログインが削除されていることに注意してください 管理者用の SQL Server 認証ログインが必要な場合は 以下のスクリプトを実行して 再作成しておきます CREATE LOGIN <SQL Server 認証ログイン名 > WITH PASSWORD=N'< パスワード >' GO ALTER SERVER ROLE sysadmin ADD MEMBER <SQL Server 認証ログイン名 > GO 3.2.2 sa アカウントの無効化 SQL Server 認証モードを使用しているインスタンスで サーバー照合順序を変更すると その操作により sa アカウントが有効化されます sysadmin 固定サーバーロールのメンバーシップである sa は すべてのユーザーデータベースに対し dbo としてアクセスすることができます sa は よく知られた SQL Server の管理者用ログインで 悪意のあるユーザーからの攻撃対象となることが少なくないため 無効化しておくことを推奨します アカウントの無効化は SQL Server Management Studio のオブジェクトエクスプローラーのツリーで [Security] ノードの下にある [Logins] ノードを展開表示して表示される [sa] を右クリックして [Properties] を選択します この操作で [Login Properties - sa] が表示されるので [Settings] の [Login] で [Disable] オプションを選択して [OK] ボタンをクリックします - 49 -

オンプレミスから IaaS へのデータベース移行 3.2.3 既定の言語の変更 既定の言語 は 新しく作成したログインで使用される既定の言語の指定になります Azure の SQL Server 仮想マシン の既定の言語は English です この設定は [Server Properties] の [Advanced] ページで [Default Language] を Japanese に変更しすることで 日本語に変更することができます 3.2.4 使用しない SQL Server サービスの停止 SQL Server が組み込まれた仮想マシンイメージのデプロイでは Machine Learning Services の有効化 / 無効化の設定は 可能ですが それ以外の SQL Server サービスは既定でインストールされ 実行された状態となります ですので 使用しない サービスは SQL Server Configuration Manager を使用して停止しておきます なお SQL Server 2017 より SQL Server Reporting Services は インストールメディアに含まれなくなっています この サービスのインストールが必要な場合 セットアップファイルをダウンロードセンターから入手する必要があります - 50 -

オンプレミスから IaaS へのデータベース移行 3.2.5 データディスクの追加 仮想マシンイメージとして SQL Server 2017 on Windows Server 2016 を選択して デプロイした場合 仮想マシンには OS ディスクとデータディスクが 1 本ずつ接続されています OS ディスクは OS インストール先の C ドライブと 一時ディスク領域として使用できる D ドライブで構成されています C ドライブは OS のインストールファイル専用です また D ドライブには 永続化が要求されない一時ファイル用に使用します これらのドライブに データベースファイルを配置するべきではありません データベースファイルは F ドライブとして作成されているデータディスクを格納先にします なお SQL Server のデータベースの格納は データファイルとトランザクションログファイルで異なるディスクドライブに配置することが推奨されていますので データベースを作成する前に仮想マシンにログファイル用のデータディスクを追加します ディスクの種類の Premium は 最大 4095 GB のサイズを提供する SSD ドライブです ディスクサイズにより提供される IOPS が異なっていることに注意してください SQL Server Enterprise 環境では 5,000 IOPS が提供される P30 以上の Premium ディスクを使用することが推奨されています 下表のアスタリスクで示されたサイズは 現在プレビュー中です 最新情報は Azure で利用できるディスクの種類 を参照してください サイズ (GB) 最大 IOPS 最大スループット 月額 ( 東日本 2019.3) P4 32 120 25 MiB/Sec \680.11 P6 64 240 50 MiB/Sec \1,314.87 P10 128 500 100 MiB/Sec \2,539.04 P15 256 1,100 125 MiB/Sec \4,896.72 P20 512 2,300 150 MiB/Sec \9,430.40 P30 1,024 5,000 200 MiB/Sec \17,409.28 P40 2,048 7,500 250 MiB/Sec \33,370.25 P50 4,095 7,500 250 MiB/Sec \63,838.73 P60* 8,192 12,500 480 MiB/Sec \60,936.96 ( プレビュー価格 ) P70* 16,384 15,000 750 MiB/Sec \116,070.40 ( プレビュー価格 ) P80* 32,767 20,000 750 MiB/Sec \232,140.80 ( プレビュー価格 ) また ホストキャッシュ構成は データファイルと TempDB をホストするディスクでは 読み取り専用キャッシュを使用し 連続 した書き込みを行うトランザクションログファイルのディスクでは キャッシュを無効化します 下表は データディスクの構成例 を示しています 名前 用途 種類 ドライブ文字 ホストキャッシュ SQL2017_disk2 データファイル Premium SSD F 読み取り専用 SQL2017_disk3 ログファイル Premium SSD G なし - 51 -

オンプレミスから IaaS へのデータベース移行 Azure ポータルから 仮想マシンの [ ディスク ] ブレードを選択して [ データディスクの追加 ] をクリックして データディスクを追 加することができます なお 仮想マシンに割り当てるマネージドディスクが存在しない場合 [ ディスクの作成 ] をクリックして ディスクを追加できます Azure ポータルで ディスク構成を保存した後 仮想マシンを起動して コンピューターの管理から [ ディスクの管理 ] を開きます そうすると [ ディスクの初期化 ] が表示されるので 追加したディスクを MBR ( マスターブートレコード ) 形式で使用する場合 そのまま [OK] ボタンをクリックします - 52 -

オンプレミスから IaaS へのデータベース移行 仮想マシンに未割当のディスクとして [ ディスク 3] が追加されたことを確認して [ ディスク 3] を右クリックして [ 新しいシンプ ルボリューム ] を選択します [ 新しいシンプルボリュームウィザード ] の [ ドライブ文字またはパスの割り当て ] でトランザクションログファイルを格納するための ディスクドライブのドライブ文字を割り当てます また [ パーティションのフォーマット ] では [ アロケーションユニットサイズ ] を 64 KB に設定します - 53 -

オンプレミスから IaaS へのデータベース移行 ワンポイント Azure 仮想マシンのデータディスクのフォーマットでは データファイル トランザクションログファイル および TempDB を格納するディスクは 64 KB のアロケーションユニットサイズを使用することが推奨されています デプロイ時に作成される F ドライブは 4 KB ( 既定値 ) のアロケーションユニットサイズでフォーマットされています このディスクにデータベースファイルを配置する場合 その前に 64 KB のアロケーションユニットサイズでフォーマットしておくとよいでしょう [ ディスクの管理 ] から [ ディスク 3] にドライブ文字が割り当てられ 初期化されたことを確認します - 54 -

オンプレミスから IaaS へのデータベース移行 3.2.6 既定のデータベースフォルダーの変更 Azure 仮想マシンにインストールされた SQL Server インスタンスのデータベースファイルは データディスクの F ドライブの Data と Log フォルダーに格納されるように構成さます データファイルとトランザクションログファイルは 保守性からもパフォーマンスの面からもディスクを分けることが推奨されていますので 既定の構成を修正する必要があります ここでは Log フォルダーの場所を新しく追加したデータディスクのフォルダーに変更する手順を説明します まず Windows エクスプローラーを起動し F ドライブの \ ( ルート ) に作成されているフォルダーを確認します F ドライブのルートには Data および Log フォルダーが作成されています ここで G ドライブの \ ( ルート ) に新しい Log フォ ルダーが作成します トランザクションログの既定のフォルダーを変更するには SQL Server Management Studio で 対象のインスタンスの [ サーバーのプロパティ ] で [ データベースの設定 ] ページを選択して [ データベースの既定の場所 (Database default locations)] の [ ログ (Log)] を G:\Log に設定します - 55 -

オンプレミスから IaaS へのデータベース移行 3.2.7 tempdb データベースファイルの分散配置 Azure 仮想マシンに自動でインストールされる SQL Server 2017 は tempdb データベースファイルの初期サイズが 8 MB で すべて C ドライブに割り当てられます 一時オブジェクトや複雑な結合などのワークロードで tempdb が多用される場合 tempdb 用に専用のディスクドライブを 用意し そこに移動すると スループットが向上し tempdb の遅延時間が短縮される可能性があります 次のスクリプトは tempdb データベースファイルの格納先を T ドライブに変更する例を示しています ALTER DATABASE tempdb MODIFY FILE ( NAME = 'tempdev', FILENAME = 'T:\Data\tempdb.mdf' ) ALTER DATABASE tempdb MODIFY FILE ( NAME = 'temp2', FILENAME = 'T:\Data\tempdb_mssql_2.ldf' ) ALTER DATABASE tempdb MODIFY FILE ( NAME = 'templog', FILENAME = 'T:\Log\templog.ldf' ) GO tempdb は インスタンスの起動時に作成されるため インスタンスを再起動すると新しい場所にファイルが配置されます ワンポイント Azure 仮想マシンの D ドライブは 永続的ではないため 仮想マシンが 別のホストに移動すると その内容とアクセス許可が失われます これは ホストの障害 または 仮想マシンのサイズ変更操作時に発生する可能性があります そのため D ドライブに tempdb を格納するフォルダーを作成し そこに tempdb ファイルを格納する場合は システム起動時に実行されるスケジュールタスクを構成し フォルダーの再作成と必要な権限の再割り当てが必要になります この設定の詳細については SQL Server のブログ記事 Using SSDs in Azure VMs to store SQL Server TempDB and Buffer Pool Extensions を参照してください また SQL Server へのワークロードにより tempdb が自動拡張する場合 あらかじめ 初期サイズを大きく設定しておくことをお勧めします 次のスクリプトは tempdb データベースファイルの初期サイズを変更する例を示しています ALTER DATABASE tempdb MODIFY FILE ( NAME = 'tempdev', SIZE = 10240MB ) ALTER DATABASE tempdb MODIFY FILE ( NAME = 'temp2', SIZE = 10240MB ) ALTER DATABASE tempdb MODIFY FILE ( NAME = 'templog', SIZE = 5200MB ) GO 注意事項として tempdb データベースファイルの初期サイズをある程度大きな値にすると ファイルが初期化されるまで待た されることになるということです このため ローカルセキュリティポリシー (secpol.msc) で ファイルの瞬時初期化 を SQL Server サービスのサービスアカウントに設定しておくことで ファイルの初期化操作を瞬時に完了するように構成しておきます - 56 -

オンプレミスから IaaS へのデータベース移行 既定の仮想アカウントの場合 NT Service\MSSQLSERVER を追加しておきます データベースの移行 オンプレミスに設置された SQL Server インスタンスのデータベースを Azure 仮想マシンで稼働する SQL Server インスタンスに移行する場合 最も簡単な方法としては 第 2 章で紹介した Microsoft Data Migration Assistant を使用して 共有フォルダーを介したデータベースのバックアップ コピー 復元操作の実行です ただし このツールは Azure 仮想マシンが配置されている仮想ネットワークとオンプレミス間でサイト間接続が構成されている必要があります オンプレミスに対するサイト間接続がない場合でも Azure Blob ストレージを介すことで データベースのバックアップを Azure 仮想マシンに復元することができます 以降では これらの手順を説明します - 57 -

オンプレミスから IaaS へのデータベース移行 3.3.1 オンプレミスに対するサイト間接続がある場合 第 2 章では データベース移行に伴う問題点を Microsoft Data Migration Assistant (DMA) を使用して検出し アセスメントレポートを作成する手順を説明しました DMA は SQL Server のデータベースを移行するウィザード機能も提供します この機能を使用するには あらかじめ移行元と移行先のローカルに共有フォルダーを作成し SQL Server インスタンスと操作をする管理者へのアクセス許可を設定した後 DMA を起動し Migration プロジェクトを作成します また 移行先として SQL Server on Azure Virtual Machines を選択してください SQL Server のサービスアカウントとして 既定で構成される仮想アカウントでは ネットワークにあるリソースへのアクセスを許可 できないことに注意してください その場合 データベースのバックアップは 移行元に作成した共有フォルダーに保存し データ ベースの復元は 移行先に作成した共有フォルダーから行われるように構成します この構成は Copy the database backups to a different target servers for backup operation チェックボックスを選 - 58 -

オンプレミスから IaaS へのデータベース移行 択することで可能です この設定により 移行元の共有フォルダーから移行先の共有フォルダーへのコピー操作は Microsoft Data Migration Assistant を起動した管理者の権限が使用されます また このツールは 移行するデータベースに作成されたデータベースユーザーに関連付くログインの移行機能も提供しています ローカルユーザーアカウントに関連付く Windows 認証ログインと特殊なサーバープリンシパル以外は移行可能です 実行 結果を確認するには [Export report] をクリックしてください また エラーが発生した場合 C:\Users\< ユーザー名 >\AppData\Local\DataMigrationAssistant の下のエラーログを参照してください - 59 -

オンプレミスから IaaS へのデータベース移行 3.3.2 オンプレミスに対するサイト間接続がない場合オンプレミスに対するサイト間接続がない場合は バックアップの保存先として 共有フォルダーの代わりに Azure Blob ストレージを使用することができます この場合 Microsoft Data Migration Assistant は 使用できないため 手動で移行操作を実行します SQL Server 2012 SP1 CU2 以降 データベースのバックアップを単一のページ Blob に格納できるようになりました この機能は SQL Server 2014 までは Blob へのアクセスにストレージアクセスキーを必要としていました また バックアップの格納先が 単一のページ Blob の場合 最大サイズが 1TB に制限されます SQL Server 2016 以降 SAS トークンを使用することで 複数のブロック Blob にアクセス可能になり 複数のブロック Blob をストライプ化してバックアップが可能なため より大きなファイルを高速に復元することができるようになりました SAS トークンを使用することで ストレージアクセスキーを公開する必要がなく 必要最小限の権限を有効期限付きで割り当てることができ よりセキュアな運用が実現できます 3.3.3 移行対象のデータベースバックアップを Blob コンテナーにアップロード BLOB サービスに あらかじめデータベースのバックアップを保存するためのコンテナーを作成しておき Azure ポータルから その コンテナーにデータベースのバックアップをアップロードします ワンポイント BLOB ストレージに作成したコンテナーには 次の URL を使用してアクセスすることができます https://< ストレージアカウント名 >.blob.core.windows.net/< コンテナ名 > - 60 -

オンプレミスから IaaS へのデータベース移行 3.3.4 共有アクセス署名 (SAS) トークンの生成ストレージアカウントキーを共有する代わりに 共有アクセス署名 (Shared Access Signature:SAS) を使用すると ストレージアカウント内のリソースへの委任アクセスが可能になります 共有アクセス署名 (SAS) トークンは ストレージアカウントの [Shared Access Signature] ページで [SAS の生成 ] ボタンをクリックして生成することができます 注意点は 設定される既定の有効期限が UTC 時間であることです 日本時間で設置する場合 タイムゾーンを (UTC+09:00) 大阪 札幌 東京 に変更してください 3.3.5 Azure Blob ストレージから URL 指定でのデータベース復元 SAS トークンを使用して Azure Blob ストレージから URL 指定でデータベースを復元するには 事前に SQL Server に資格情報 (CREDENTIAL) を作成しておく必要があります SQL Server の資格情報は SQL Server の外部にあるリソースへの接続に必要な認証情報を保存するために使用されるオブジェクトです 資格情報には バックアップを格納しているコンテナーの URL と SAS トークンが保存しておく必要があります SAS トークンに関連付く資格情報を作成するための構文は 次のようになります CREATE CREDENTIAL [https://< ストレージアカウント名 >.blob.core.windows.net/< コンテナー名 >] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = '<SAS トークン >' 資格情報名が バックアップを格納しているコンテナーの URL になります なお SECRET 句に指定する SAS トークンは Azure ポータルで生成された SAS トークンの先頭から? を除外した文字列を貼り付ける必要があります 次のスクリプトは 資格情報を作成する例を示しています CREATE CREDENTIAL [https://gotoazuresa1.blob.core.windows.net/backup] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = 'sv=2018-03-28&ss=b&srt=sco&sp=rwdlac&se=2019-03-04t08:57:01z&st=2019-03-04t00:57:01z &spr=https&sig=yv%2fbwelibxeciybo6hjj8uup7tflcjab8np3g4o23xc%3d' - 61 -

オンプレミスから IaaS へのデータベース移行 SAS トークンを関連付けた資格情報を作成したら 以下の RESTORE DATABASE ステートメント構文で SAS トークンを使用して Azure Blob ストレージから URL 指定でデータベースを復元することができます RESTORE DATABASE < データベース名 > FROM URL = N'https://< ストレージアカウント名 >.blob.core.windows.net/< コンテナー名 >/<blob 名 >' WITH MOVE < データファイル論理名 > TO < データファイルパス >,MOVE < トランザクションログファイル論理名 > TO < トランザクションログファイルパス > データベースのサイズが大きい場合 データベースの復元に時間がかかる場合があります その場合は 次のスクリプトを実行して データベース復元の進捗状況を確認することができます SELECT session_id AS SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) AS estimated_completion_time FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE') 3.3.6 データベース移行後の作業 データベース移行後に行うべき作業としては 以下があります 説明データベースの所有者の設定所有者が空 または 以前の環境のローカルユーザーアカウントの場合 UNSAFE または EXTERNAL 権限の SQL CLR オブジェクトが動作しない また データベースダイアグラムの作成が行えないデータベース互換性レベルの変更互換性レベルに依存する機能を使用する場合 適切なデータベース互換性レベルに変更しておく統計情報の更新クエリパフォーマンスを最適化するため sp_updatestats ストアドプロシージャなどですべてのデータベース上で統計を更新するフルテキストインデックスの再構築フルテキストインデックスを使用している場合 カタログを再構築し インデックス作成を開始する完全バックアップバージョンアップ後の最新の状態を取得接続情報の変更データベースに接続するアプリケーションの接続情報を更新するデータベースに接続するサービス (SSAS データベース SSRS レポート SSIS パッケージなど ) の接続情報を更新するデータベースに接続する SQL Server Agent ジョブの接続情報を更新するパフォーマンスカウンターのモニタリングサービス再開後 異常がないことをイベントログ SQL Server ログの確認監視クライアントアプリケーションのスループット - 62 -

オンプレミスから IaaS へのデータベース移行 インスタンスレベルオブジェクトの移行 データベースのバックアップ 復元操作によるデータベースの移行では 移行先に復元されたデータベースのみの移行になります master や msdb システムデータベースに格納されるインスタンスレベルのオブジェクトは 個々に移行する必要があるものを確認して 手動で移行する必要があります master や msdb システムデータベースに格納される主要なインスタンスレベルのオブジェクトには 以下があります これらの多くは SQL Server Management Studio のスクリプト生成機能を使用して 以降元のオブジェクトを T-SQL スクリプト化して 移行先に再作成することで 移行することができます スクリプト生成機能が対応していないオブジェクトについては 下表に代替手段を記載しましたので参考にしてください なお master システムデータベースに含まれるログインは スクリプト生成機能を使用して 移行先にログインを再作成しても データベースに接続できない状況が発生する場合がありますので ログインの移行で必要になる作業を以下に記載します - 63 -

オンプレミスから IaaS へのデータベース移行 3.4.1 スクリプト生成機能によるログインの移行 SQL Server Management Studio で移行対象のログインをスクリプト化する場合 最初に [ 表示 ] メニューで [ オブジェクトエクスプローラーの詳細 ] を選択して 詳細ページを表示し オブジェクトエクスプローラーのノードで [ ログイン ] を選択して表示されるログインリストで Ctrl キーを押しながら 移行対象を複数選択して 右クリックします ここで表示されるメニューから [ ログインをスクリプト化 ] [ 新規作成 ] [ 新しいクエリエディターウィンドウ ] を選択します この操作により次のようなスクリプトが生成されます USE [master] GO /* For security reasons the login is created disabled and with a random password. */ /****** Object: Login [db_login] Script Date: 2018/04/15 11:49:02 ******/ CREATE LOGIN [db_login] WITH PASSWORD=N'lWJcvgW4+iPOdN7S/tApDRX4JohzIh6oPlFD/adkLto=', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[ 日本語 ], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON GO ALTER LOGIN [db_login] DISABLE GO /* For security reasons the login is created disabled and with a random password. */ /****** Object: Login [dw_login] Script Date: 2018/04/15 11:49:02 ******/ CREATE LOGIN [dw_login] WITH PASSWORD=N'B8HtFITQimzdAzEQb4sxFKshC+Kcg5iFcT9MWmhTvHI=', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[ 日本語 ], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON GO ALTER LOGIN [dw_login] DISABLE GO EXEC sys.sp_addsrvrolemember @loginame = N'dw_Login', @rolename = N'bulkadmin' GO - 64 -

オンプレミスから IaaS へのデータベース移行 生成されたスクリプトを確認すると スクリプトの最後にある sp_addsrvrolemember ストアドプロシージャにより 固定サーバーロールのメンバーシップも移行されることがわかります しかしながら SQL Server 認証ログインは パスワードがランダムな値に再設定され 作成されたログインは無効化された状態になるように記述されています また ログインは 通常 データベースの中に作成されるデータベースユーザーに関連付けられている必要があります 内部的な SID が一致している必要があります ですので 移行先で このスクリプトを実行してログインを作成した場合 追加で以下の作業を行う必要があります パスワードの再設定 ログインの有効化 ログインとデータベースユーザー間の SID 値の不整合の検出と修正パスワードの再設定は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > WITH PASSWORD=N'< 新しいパスワード >' ログインの有効化は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > ENABLE' SQL Server のログインに関連付けられていないデータベースユーザーのことを 孤立ユーザー と呼んでいますが 孤立ユーザーの検出は 以下のスクリプトにより 実行できます USE < ユーザーデータベース名 > EXEC sp_change_users_login @Action='Report データベースユーザーの調査のため 予め対象のユーザーデータベースに接続する必要があります ここで検出された孤立ユーザーを解消するには 次の T-SQL 構文を使用します USE < ユーザーデータベース名 > ALTER USER < データベースユーザー名 > WITH LOGIN = < ログイン名 > 本書では ログインの移行方法について 記載していますが その他のインスタンスレベルオブジェクトの移行方法については SQL Server 2016 実践シリーズ No.1 SQL Server 2016 への移行とアップグレードの実践 の Step 5 に記載されている内容を参考にしてください オンプレミス内での SQL Server 2016 への移行方法が記載されていますが オンプレミスから IaaS 環境の SQL Server 2017 への移行でも同様の手順で行うことができます - 65 -

Azure SQL Database へのデータベース移行 4. Azure SQL Database へのデータベース移行 Azure SQL Database は データベース管理者の負荷を低減できる SQL Server との互換性が高いリレーショナルデータ ベースエンジンのための PaaS サービスです 本章では オンプレミスで運用している SQL Server を Azure SQL Database に移行する手順を説明します 最初に 論理サーバーを作成します 論理サーバーの作成 論理サーバーは Azure SQL Database Azure SQL Elastic Database Pool および Azure SQL Data Warehouse とし て作成されるデータベースへのアクセスを提供する接続ポイントになります 論理サーバーは デプロイ時に指定された地域に作 成されますが 論理サーバーに作成されるデータベースは すべて 論理サーバーと同じ地域に作成されることになります 論理サーバーに割り当てられた DTU 値 および論理コア数の範囲で ユーザーデータベースを複数作成することができます Azure SQL Server 論理サーバーが消費している DTU 値 および論理コア数は 論理サーバーの [DTU クォータ ] ページで 確認できます - 66 -

Azure SQL Database へのデータベース移行 論理サーバーを作成するには Azure ポータルの画面左のハブメニューで [ リソースの作成 ] を選択し Azure Market Place を検索するためのテキストボックスに Logical Server と入力して Enter キーを押します この操作で Marketplace の [ すべて ] ブレードにリストされる [SQL サーバー ( 論理サーバー )] を選択して Enter キーを押し ます [SQL サーバー ( 論理サーバー )] が表示されるので [ 作成 ] をクリックして 論理サーバーの設定を開始します - 67 -

Azure SQL Database へのデータベース移行 SQL サーバー ( 論理サーバー ) のサーバー名は Azure 内で一意な名前を入力する必要があります 論理サーバーにアクセスするには ここで入力したサーバー名に database.windows.net というサブドメイン名を付加してアクセスします SQL Server 認証ログインで 論理サーバーの管理者アカウントが作成されます Azure SQL Database でサポートされる認証モードには SQL Server 認証 と Azure Active Directory 認証 がありますが Azure Active Directory 認証の管理者アカウントは 論理サーバーのデプロイ後に設定できます なお 論理サーバーは 仮想ネットワーク内には配置できません - 68 -

Azure SQL Database へのデータベース移行 セキュリティの構成 論理サーバーのデプロイが完了したら データベースへのアクセスを制限し 不正アクセスを監視できるようにするため データ ベース移行の前に 次のセキュリティ構成を行うことをお勧めします ファイアウォール規則と仮想ネットワーク規則の構成 監査と脅威検出 4.2.1 ファイアウォール規則と仮想ネットワーク規則の構成 論理サーバーは TCP ポート番号 1433 を使用して接続します 既定の構成では Azure データセンター外部からの論理サーバーに対するアクセスは すべて遮断されていますが Azure データセンター内部からの論理サーバーに対するクセスはすべて許可されています Azure データセンター内部からの論理サーバーに対するアクセスを禁止するには 論理サーバーの [ ファイアウォールと仮想ネットワーク ] ブレードの [Azure サービスへのアクセスを許可 ] を オフ に設定します ファイアウォール規則を構成することで Azure プライベートネットワークの外部にある固定化された IP アドレスに対して 論 理サーバーへの接続を許可することができます ファイアウォール規則を構成するには 論理サーバーの [ ファイアウォールと仮想ネ ットワーク ] ブレードで アクセスを許可するクライアント IP アドレスを IPv4 の形式で入力して 保存します - 69 -

Azure SQL Database へのデータベース移行 現在 Azure ポータルに接続しているクライアント PC からのアクセスを許可する場合は [ クライアント IP の追加 ] をクリックして ファイアウォール規則を設定することができます この設定を行うとクライアント PC で SQL Server Management Studio を起動して [ サーバーへの接続 ] の [ サーバー名 ] に < 論理サーバー名 >.database.windows.net と入力して ログイン名に デプロイ時に指定した SQL Server 認証の管理者アカウントを指定して 作成した論理サーバーに接続することができます [Azure サービスへのアクセスを許可 ] を オフ に設定した場合 すべての Azure 仮想マシンからアクセスが行えなくなりま すが 2018 年 2 月より 仮想ネットワークのサブネットから 論理サーバーへのアクセスを許可する仮想ネットワーク規則を構 成することで 特定の仮想ネットワークからのアクセスを許可できるようになりました 仮想ネットワーク規則を構成するには 最初に 仮想ネットワーク側で 論理サーバーへのアクセスを許可する仮想マシンが配 置されたサブネットに対し Microsoft.sql サービスエンドポイントを有効化しておく必要があります - 70 -

Azure SQL Database へのデータベース移行 2019 年 3 月現在 サービスエンドポイントは 以下の 8 種類が構成可能です Microsoft.AzureActiveDirectory Microsoft.AzureCosmosDB Microsoft.ContainerRegistry Microsoft.EventHub Microsoft.KeyVault Microsoft.ServiceBus Microsoft.sql Microsoft.Storage 仮想ネットワーク規則を構成するには 論理サーバーの [ ファイアウォールと仮想ネットワーク ] ブレードを開いて [ 既存の仮想ネットワークを追加 ] をクリックします [ 作成 / 更新 ] が開くので ここで Microsoft.sql サービスエンドポイントを追加した仮想ネットワークのサブネット名を設定します なお [Azure サービスへのアクセスを許可 ] を オフ にした場合 Azure SQL Database の下表の機能が制限されるた め 代替機能を使用する必要があります - 71 -

Azure SQL Database へのデータベース移行 4.2.2 監査と脅威の検出論理サーバーは サーバーレベルで 監査や脅威の検出を構成することができます 監査 を設定することで データベースで どのような処理 が だれ によって いつ 行われたのかを確認できるようになり セキュリティコンプライアンス要件への対応が可能になります また 脅威の検出 を有効化することで SQL インジェクションなどのデータベースに対する潜在的なセキュリティ脅威を示す異常なデータベースアクティビティを検出し 指定されたメールアドレスにアラートを送信することができるようになります [ 監査ログ ] ブレードで アラートの詳細を確認することもできます 監査 の設定は 論理サーバー または データベースの [ 監査 ] ブレードから監査ログを [ オン ] にして 監査ログの保存先を指定するだけです 論理サーバーで監査を有効化した場合 データベースでの設定にかかわらず データベースレベルでは 常に監査が適用されます 収集された監査ログを参照するには 論理サーバーに作成したデータベースの [ 監査 ] ブレードで [ 監査ログの表示 ] をクリック します - 72 -

Azure SQL Database へのデータベース移行 監査ログは [ フィルター ] をクリックして 時刻 (UTC 時間 ) でフィルターして参照することができます 脅威の検出 の設定は 論理サーバーの [Advenced Data Security] ブレードから行います - 73 -

Azure SQL Database へのデータベース移行 脅威の検出 では SQL インジェクションの可能性や脆弱性 通常とは異なる場所からのアクセス 資格情報に対するブ ルートフォース攻撃の検出など 脅威の種類を構成することも可能です 検出された脅威のアラートは 電子メールで管理者に送信されます 脅威の検出 の費用は論理サーバーごとに毎月 1680 JPY です これには データの検出と分類 脆弱性評価 Advanced Threat Protection が含まれます また 現在では 最初の 60 日間 無料で試用版を使用することができます 既定では 監査や脅威の検出のログの保有期間は無期限で構成されますが 保存期限の上限を日数で設定することもできます - 74 -

Azure SQL Database へのデータベース移行 SQL Server から SQL Database へのデータベース配置 オンプレミスに設置された SQL Server インスタンスのデータベースを Azure SQL Database に移行する場合 SQL Server で取得したデータベースバックアップは Azure SQL Database に 復元できないことに注意してください Azure SQL Database へのデータベース移行でも 第 2 章で紹介した Microsoft Data Migration Assistant (DMA) を使用することができますが 内部的には スクリプトでオブジェクトを作成した後 一括コピー操作でデータを転送します 別の方法として データベースを bacpac 形式のファイルに変換してエクスポートし 移行先の論理サーバーにインポートすることで 移行することも可能です このセクションでは この 2 種類の方法を説明します 4.3.1 Microsoft Data Migration Assistant による PaaS へのデータベース移行 DMA でのデータベース移行では 移行元にあるデータベースオブジェクトがすべてスクリプト化され 移行先のデータベースに対し スクリプトを実行して テーブルを用意します そのあと 一括コピー操作でデータが直接 移行先のテーブルにロードします そのため 移行先に 空のテーブルをあらかじめ作成しておく必要があります Azure SQL Database へのデータベース移行手順をまとめると以下のようになります (1). 移行先の Azure SQL 論理サーバーに空のデータベースを作成する (2). Microsoft Data Migration Assistant を起動し 移行元のインスタンスに接続する (3). 移行先の Azure SQL 論理サーバーに接続する (4). データベースを移行 ( スクリプトによるスキーマ生成と一括コピー ) する (5). ログインの有効化とパスワードを再設定する この手順を実行する前に 事前に論理サーバーのファイアウォール規則で DMA を実行する PC の IP アドレスからの接続を 許可しておいてください - 75 -

Azure SQL Database へのデータベース移行 4.3.2 移行先の Azure SQL 論理サーバーに空のデータベースを作成する 空のデータベースを作成するには Azure ポータルから [ リソースの作成 ] [ データベース ] [SQL Database] を選択して [SQL データベースの作成 ] ブレードの [ 基本 ] タブで デプロイする内容を設定します さらに [SQL データベースの作成 ] ブレードの [ 追加設定 ] タブを設定して [ 確認および作成 ] をクリックします - 76 -

Azure SQL Database へのデータベース移行 Azure SQL Database は Azure 仮想マシンとは異なり データベースレベルで照合順序を設定します なお パフォーマンス レベルは DTU ベースと vcore ベースの選択が行えます DTU ベースのパフォーマンスレベルでは Basic / Standard / Premium から選択可能です DTU は データベーススループットユニットの略称で 設定された DTU 値に対応するデータベースパフォーマンスが保証されるように提供されるリソース ( コンピューティング ストレージ および IO リソース ) の量が調整されます DTU は さまざまなパフォーマンスレベルとサービス層の Azure SQL Database 間のリソースの相対量を理解するために役立ちます データベースの DTU 値を 2 倍にすると そのデータベースが利用できるリソースを 2 倍にするのと同様の効果になります 各サービスレベルの違いについては下表を参照してください DTU ベースで構成した場合 データベースのパフォーマンス監視では 消費している DTU 値をモニタリングすることで 運用状況が把握でき DTU が不足している場合は スケールアップすればよいため 運用が容易になります しかし データベース移行時に DTU の初期値を決める必要があります Microsoft は DTU の見積もりを行うためのツールとして Azure SQL Database DTU Calculator を提供しています - 77 -

Azure SQL Database へのデータベース移行 英語のサイトですが 利用方法は簡単で このサイトで [Download Command Line Utility] をクリックして パフォーマンスデータ収集のためのユーティリティをダウンロードして SQL Server を実行しているサーバー環境で 1 時間程度実行します パフォーマンスデータは C:\Temp フォルダーに CSV ファイルとして出力されますので このファイルを Azure SQL Database DTU Calculator にアップロードして SQL Server を実行しているサーバー環境の論理コア数を入力して [Calculate] ボタンをクリックするだけです これで SQL Database に移行したとき どれくらいの DTU 値が必要になるかを算出することができます Azure SQL Database は 仮想マシンと同じように vcore とストレージサイズで パフォーマンスと価格レベルを選択することもできます 現在 第 4 世代 と 第 5 世代 のコンピューティング世代を選択することができ サービスレベルは 汎用目的 / ビジネスクリティカル / ハイパースケール ( プレビュー ) の 3 種類から選択可能です 第 4 世代では Intel XEON E5-2673 v3 (Haswell) 2.4 GHz プロセッサをベースとしたサーバーが使用されています 第 4 世代の各サービスレベルの違いについては 下表を参照してください 第 5 世代では Intel XEON E5-2673 v4 (Broadwell) 2.3 GHz プロセッサをベースとしたサーバーが使用されています 第 5 世代の各サービスレベルの違いについては 下表を参照してください - 78 -

Azure SQL Database へのデータベース移行 なお DTU ベースの場合 Azure ハイブリッド特典を適用することができませんが vcore とストレージサイズベースのサービ ス階層では [ お金を節約 ] オプションで [ はい ] を選択することで Azure ハイブリッド特典を適用することができます 4.3.3 Microsoft Data Migration Assistant を起動し 移行元のインスタンスに接続する 移行先の Azure SQL 論理サーバーに空のデータベースを作成したら DMA を起動し Migration プロジェクトを作成します 移行先に Azure SQL Database を選択してください DMA による Azure SQL Database へのデータベースの移行は 対象データベースを複数選択することができないため 1 個 ずつ移行作業を行う必要があります - 79 -

Azure SQL Database へのデータベース移行 4.3.4 移行先の Azure SQL 論理サーバーに接続する 移行先の Azure SQL 論理サーバーには SQL Server 認証 または Azure Active Directory 認証で接続します 移行 先の空のデータベースを選択します 4.3.5 データベースを移行 ( スクリプトによるスキーマ生成と一括コピー ) する 移行対象のオブジェクトがリストされるので 移行対象をすべて選択して [Generate SQL script] をクリックすることで オブジ ェクトを作成するための T-SQL スクリプトが生成されます - 80 -

Azure SQL Database へのデータベース移行 生成された SQL スクリプトを確認して [Deploy schema] をクリックすると移行先のデータベースで T-SQL スクリプトが実 行されます 互換性のないオブジェクトの定義が含まれているとエラーが発生しますので 修正して再実行してください スキーマ生成が完了した後 [Migrate data] をクリックするとデータを転送するテーブルのリストが表示されるので 移行する必 要があるテーブルをすべて選択して [Start data migration] をクリックすることで データの一括コピー操作が開始されます - 81 -

Azure SQL Database へのデータベース移行 [Migrate Data] ページでデータ移行の進捗状況を確認することができます 4.3.6 ログインの有効化とパスワードを再設定する DMA を使用した移行では データベースに作成されているデータベースユーザーに関連付くログインが論理サーバーに作成され ますが これらのログインは 無効化されています また パスワードもランダム値になるため修正が必要です DMA で移行されたログインを使用する場合 以下の作業を行います パスワードの再設定 ログインの有効化パスワードの再設定は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > WITH PASSWORD=N'< 新しいパスワード >' - 82 -

Azure SQL Database へのデータベース移行 ログインの有効化は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > ENABLE' 4.3.7 bacpac 形式へのエクスポート / インポートによる PaaS へのデータベース移行 bacpac 形式はデータ層アプリケーション (DAC) パッケージ形式の拡張で標準の DAC パッケージに含まれるテーブル ビュー ログインを含むインスタンスオブジェクトなどユーザーデータベースに関連付けられたすべての SQL Server オブジェクトを定義する論理的なデータベース管理エンティティに加えて JavaScript Object Notation (JSON) でエンコードされたテーブルデータも含まれています ここでは 移行元のデータベースを bacpac ファイルとして エクスポートした後 Azure SQL Database にインポートする手順を説明します SQL Server Management Studio を起動し 移行元の SQL Server インスタンスと移行先の Azure SQL Server 論理 サーバーに接続して 移行元のデータベースを右クリックします 表示されるメニューで [ タスク ] [Microsoft Azure SQL データ ベースへのデータベースの配置 ] を選択します - 83 -

Azure SQL Database へのデータベース移行 データベース配置ウィザードが起動するので [ ターゲット接続の指定 ] の [ サーバー接続 ] で データベースを移行する Azure SQL Server 論理サーバーに接続します ここで DTU ベースの価格レベルを設定することができます 価格レベルは データ ベース移行後でも変更することが可能です bacpac 形式のファイルは ローカルの Users フォルダーに保存されます 保存先は 任意の場所に変更できます 十分なサ イズがある場所を指定してください [ 概要 ] ページで [ 完了 ] をクリックするとデータベースの移行が開始します - 84 -

Azure SQL Database へのデータベース移行 データベースのエクスポート / インポート操作を使用した場合 データベースユーザーに関連付く SQL Server 認証のログインは パスワードなしでエクスポートされます 移行されたログインを使用する場合 以下の作業を行います パスワードの再設定 ログインの有効化パスワードの再設定は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > WITH PASSWORD=N'< 新しいパスワード >' ログインの有効化は 以下の T-SQL 構文を使用します USE master ALTER LOGIN < ログイン名 > ENABLE' - 85 -

Azure SQL Database Managed Instance へのデータベース移行 5. Azure SQL Database Managed Instance へのデータベース移行 Azure SQL Database Managed Instance は SQL Server データベースエンジン互換のフルマネージドインスタンスサービスで オンプレミスや IaaS 環境で稼働する SQL Server Enterprise Edition に対して 高い互換性を備えています このサービスは 仮想マシンと同じように Azure 仮想ネットワーク (VNet) の専用サブネットに配置します パブリック IP アドレスは持てないため 完全にグローバルインターネットから分離して運用することができます Managed Instance により 既存の SQL Server の顧客は アプリケーションとデータベースに対する最小限の変更で オンプレミスからクラウドに移行 ( リフトアンドシフト ) できます また Azure SQL Database シングルデータベースと同じようにフルマネージドサービスとして提供されているため 修正プログラムの適用 バージョン更新 バックアップ 構内の高可用性構成 監査と脅威の検出といった管理タスクを自動化し 運用コストを低減できます 本章ではオンプレミスで運用している SQL Server を Managed Instance に移行する手順を説明します Azure SQL Database Managed Instance をデプロイするためのネットワーク構成 Managed Instance を作成するには 以下の要件に準拠する Azure 仮想ネットワーク (VNet) 内の専用サブネットが必 要です 16 以上 (32 以上が推奨される ) 256 までの IP アドレスを保持 (/24 ~ /28 でマスク ) ほかのリソースが配置されていない サービスエンドポイントを設定しない デフォルトルート 0.0.0.0/0 がインターネットへの経路を持つルートテーブルの構成専用サブネットには Managed Instance 以外のリソースを含むサブネットでマネージドインスタンスを作成したり 後からサブネット内に他のリソースを追加したりすることはできないことに注意してください このドキュメントでは 以下のようなサブネットが構成された Azure-Vnet という名前の Azure 仮想ネットワークが作成されていることを前提に説明します Managed Instance の配置先として MI-Subnet (10.10.1.64/27) を使用します なお Managed Instance の配置に必要となるルートテーブルとネットワークセキュリティグループ (NSG) は インスタンスのデプロイ時に選択されるオプションにより自動生成されます ネットワーク構成の詳細については Azure SQL Database Managed Instance の接続アーキテクチャ を参照してください - 86 -

Azure SQL Database Managed Instance へのデータベース移行 Azure SQL Database Managed Instance の作成 Azure SQL Database Managed Instance を作成するには Azure ポータルの画面左のハブメニューで [ リソースの作成 ] [ データベース ] [Azure SQL Managed Instance] を選択します Managed Instance の管理者も Azure SQL Database 論理サーバーと同じように SQL Server 認証ログインとして作成 されます Managed Instance は 仮想ネットワークの専用サブネットに配置しなければならないことと インスタンスレベルで 照合順序を設定することが Azure SQL Database 論理サーバーのデプロイと異なる点になります - 87 -

Azure SQL Database Managed Instance へのデータベース移行 既定で選択状態になっている [ マネージドインスタンスのサブネットの準備 ] オプションによりサブネットに必要なネットワークセキュリティグループ (NSG) ルートテーブルが自動作成されます Managed Instance は vcore とストレージサイズでのみ パフォーマンスと価格レベルを選択することができます 現在 第 4 世代 と 第 5 世代 のコンピューティング世代を選択することができ サービスレベルは 汎用目的 / ビジネスクリティカルの 2 種類から選択可能です 第 4 世代では Intel XEON E5-2673 v3 (Haswell) 2.4 GHz プロセッサをベースとしたサーバーが使用されています 第 4 世代の各サービスレベルの違いについては 下表を参照してください 第 5 世代では Intel XEON E5-2673 v4 (Broadwell) 2.3 GHz プロセッサをベースとしたサーバーが使用されています 第 5 世代の各サービスレベルの違いについては 下表を参照してください ソフトウェアアシュアランス (SA) 付きの SQL Server ライセンスを保有している場合 [ パフォーマンスの構成 ] の [ お金を節約 ] で [ はい ] を選択することで SQL Server 向けの Azure ハイブリッド特典を適用して 割引価格で使用することができます なお Managed Instance のデプロイは 専用サブネットに初めてデプロイする場合 2 個目以降のデプロイよりも長時間かかります デプロイの状況は対象のリソースグループの [ デプロイ ] ブレードから確認することができます 完了までに 3 時間以上かかることがありますが デプロイ中はキャンセルしないようにしてください - 88 -

Azure SQL Database Managed Instance へのデータベース移行 デプロイ完了 Managed Instance の [ 概要 ] ブレードに表示されるホスト名を使用することで 仮想ネットワーク内のサブネッ トにデプロイした仮想マシンから 最新の SQL Server Management Studio v17 を起動して 接続することができます デプロイ直後は デプロイ時に設定した SQL Server 認証のマネージドインスタンス管理者ログインアカウントを使用して Managed Instance に接続します オブジェクトエクスプローラーのツリーを展開すると Azure SQL Database よりも SQL Server に近い構成が確認できます - 89 -

Azure SQL Database Managed Instance へのデータベース移行 なお オンプレミスの環境から Azure 仮想ネットワークに配置した Managed Instance に接続するには事前にオンプレミスと Azure 仮想ネットワーク間で サイト間 VPN または ExpressRoute で接続しておく必要があります オンプレミスと Azure 仮想ネットワーク間の接続が正常に確立しているにもかかわらず Managed Instance への接続がで きない場合 Azure SQL Database Managed Instance の接続アーキテクチャ の 必須の受信セキュリティ規則 と 必須の送信セキュリティ規則 に記載されたポートへの接続が許可されていることを確認してください ワンポイント Azure SQL Database Managed Instance の詳細については Azure SQL Database Managed Instance ホワイトペーパー が公 開されていますので こちらのドキュメントも参考にしてください Azure Database Migration Service を使用したデータベースの移行 Azure Database Migration Service (Azure DMS) は オンプレミスの SQL Server に作成された複数のデータベースソースから Azure SQL Database Managed Instance を含む Azure データプラットフォームへシームレスな移行を最小限のダウンタイムで実現できるように設計された PaaS サービスで 2018 年 5 月 7 日より GA として提供されています データベース移行ツールとして紹介した Microsoft Data Migration Assistant では 現時点では Managed Instance への移行のアセスメントレポートは生成可能ですが データベース移行プロジェクトは 未サポートです Azure DMS を使用することで Managed Instance へのオフライン および オンラインの移行作業が可能になります Azure Database Migration Service は ソースのデータベースとして SQL Server 2005 から SQL Server 2017 までを選択できます Azure DMS も Managed Instance と同じように仮想ネットワーク内に配置します 前提となるネットワーク環境は以下のとおりです オンプレミスからの移行の場合 オンプレミスに対するサイト間 VPN または ExpressRoute 接続 Managed Instance 専用サブネットを構成した VNET が外部の場合 VNET 間接続 またはピアリング接続 DMS VNET の NSG 規則で TCP ポート 443 53 9354 445 12000 を開く Managed Instance VNET の NSG 規則で SQL Server のポート ( 既定では 1433) を開く 移行元のデータベースバックアップに使用できるネットワーク共有と BLOB ストレージコンテナーを作成する SQL Server インスタンスを実行しているサービスアカウントがネットワーク共有に書き込み特権を持っていること - 90 -

Azure SQL Database Managed Instance へのデータベース移行 Azure Database Migration Service を使用するには サービスをデプロイする前に 使用しているサブスクリプションに Microsoft.DataMigration リソースプロバイダーを登録しておく必要があります リソースプロバイダーの登録は サブスクリプションの [ リソースプロバイダー ] ブレードのリストから Microsoft.DataMigration リソースプロバイダーの [ 登録 ] をクリックします Azure Database Migration Service の作成 Azure Database Migration Service をデプロイするには Azure ポータルの画面左のハブメニューで [ リソースの作成 ] を 選択し Azure Market Place を検索するテキストボックスに Database Migration と入力して Enter キーを押します - 91 -

Azure SQL Database Managed Instance へのデータベース移行 この操作で [Everything] ブレードに表示される [Azure Database Migration サービス ] を選択して Enter キーを押します Azure Database Migration サービスをデプロイするには [Azure Database Migration サービス ] ブレードが表示されたら [ 作成 ] をクリックします - 92 -

Azure SQL Database Managed Instance へのデータベース移行 [ 移行サービスの作成 ] ブレードで サービス名 配置先として使用するリソースグループ 仮想ネットワークのサブネットを設定します [ 価格レベル ] の SKU は [ 標準 ] または [Premium] から選択することができます いずれも 4 個までの vcore を選択することができますが オンラインでの継続的なデータベース移行が必要な場合 Premium SKU を選択する必要があります 2019 年 3 月時点で 標準 SKU は 無料で使用可能です また Premium SKU でも Azure Database Migration Service 作成後 6 か月間は無料での使用が可能です Azure Database Migration Service によるデータベースの移行 Azure Database Migration Service (DMS) によるデータベースの移行では ソースとターゲットの種類と接続先を登録した移行プロジェクトを作成し 移行プロジェクトに対し 移行のアクティビティを作成して実行することで データベースの移行を管理することができます - 93 -

Azure SQL Database Managed Instance へのデータベース移行 移行プロジェクトを作成するには Azure Database Migration Service の [ 概要 ] ブレードで [ 新しい移行プロジェクト ] を クリックします オンプレミスの SQL Server に作成されたデータベースソースを Managed Instance に移行するには [ 新しい移行プロジェク ト ] の [ ターゲットサーバーの種類 ] で Azure SQL Database Managed Instance を選択して [ アクティビティの作成と 実行 ] をクリックします - 94 -

Azure SQL Database Managed Instance へのデータベース移行 この操作により移行プロジェクトを構成するためのウィザードが起動するので 移行ソースの情報を保存します 信頼できる証明書をサーバーにインストールしていない場合は [ サーバー証明書を信頼する ] を選択状態にします 信頼できる 証明書がインストールされていない場合 SQL Server はインスタンスの開始時に自己署名証明書を生成します この証明書 は クライアント接続の資格情報の暗号化に使用されます 移行ソースの情報を保存するとき 移行ソースへの接続が検証されます 検証エラーが発生する場合 移行対象のインスタン スが稼働していること 接続に使用するポートが使用できることを確認してください 続けて ターゲットの接続情報を設定して 保存します - 95 -

Azure SQL Database Managed Instance へのデータベース移行 移行対象のデータベースを選択して 保存します [ ログインを選択する ] ページでは ターゲットに移行する SQL Server 認証ログインを選択します Managed Instance は Azure SQL Database と同様に Windows 認証は サポートされていないため Windows 認証ログインは 移行すること ができません - 96 -

Azure SQL Database Managed Instance へのデータベース移行 移行アクティビティを構成するウィザードの最後のページで バックアップファイルを保存する共有フォルダーと Azure ストレージ Blob コンテナーへの SAS URI を設定します Windows ユーザーアカウントは 作成したネットワーク共有に対してフルコントロール権限を持つ Windows ユーザーを指定し Active Directory ドメイン環境では <AD ドメイン名 > < ユーザー名 > の形式で記述します ワークグループ環境では <IP アドレス > < ユーザー名 > の形式で記述します Azure Blob サービスの SAS URL のパスには 以下の形式で記述します https://< ストレージアカウント名 >.blob.core.windows.net/< コンテナー名 ><SAS トークン > ストレージアカウント名とコンテナー名は 英数の小文字のみを使用することができます バックアップファイルを格納するコンテ ナー名の記述がないと検証エラーが発生します また コンテナー名と SAS トークンの記述の間に / を記述すると移行アク ティビティの実行時に復元エラーが発生するので注意してください - 97 -

Azure SQL Database Managed Instance へのデータベース移行 [ 移行の概要 ] では [ 活動名 ] を入力して 検証オプションを選択して 設定を保存します [ 移行の概要 ] で [ 移行を実行する ] をクリックすると データベースの移行が開始します [ 完了 ] に移行が完了したデータ ベースとログインの数が表示されます Managed Instance にデータベースが復元されると DMS により作成されたバックアップファイルは削除されます - 98 -

Azure SQL Database Managed Instance へのデータベース移行 なお エラーが報告された場合 Azure ポータルでエラーの詳細を表示するか または SQL Server のエラーログを参照するこ とで エラーの詳細を確認することができます データベースの移行アクティビティが完了したら SQL Server Management Studio を使用して Managed Instance に接 続し 対象のデータベースとログインが移行していることを確認します DMS を使用した移行ではログインは 有効化され移行元で設定したパスワードが引き継がれています 本書では DMS を使用して SQL Server を Managed Instance にオフラインで移行する手順を紹介しました Managed Instance に対して オンラインで継続的に同期させる場合は チュートリアル :DMS を使用して SQL Server を Azure SQL Database マネージドインスタンスにオンラインで移行する を参照してください - 99 -

Microsoft Azure に関する情報の入手元 6. Microsoft Azure に関する情報の入手元 Microsoft Azure に関する最新の情報は 次の Web サイトから入手できます Azure の公式ページ ( 各国共通 ) 製品情報 価格 技術情報など Azure に関するすべての情報への入口です Azure をお使いのお客様は 右上の ポータル をクリックすると Azure ポータルにログインすることができます Azure ポータルでは Azure 上で構築したアプリケーションの管理 課金状況の確認などができます http://azure.microsoft.com/ja-jp/ 日本のお客様向けのサイト上記サイトの内容に加え 日本のお客様用に作成されたコンテンツが満載です http://www.microsoft.com/ja-jp/server-cloud/azure/explore.aspx サポートエンジニアによるブログサイトよくお問い合わせをいただく技術 課金 サポートに関する内容をまとめたものです サポートに問い合わせる前に まずはここをご参照ください http://blogs.msdn.com/b/dsazurejp/ http://blogs.msdn.com/b/jpsql/ (Azure SQL データベース / Server Server) MSDN フォーラムの Azure フォーラム Azure に関する技術的な質問に対して これまでの投稿から情報を入手することができます また 自分で質問を投稿し 他のユーザーや MVP (Most Valuable Professional) からの回答を得ることが期待できます 開発者 (DEVELOPER) サポート / 標準 (STANDARD) サポート契約ではカバーしていない How To や 仕様 に関する質問も このフォーラムをご活用ください https://social.msdn.microsoft.com/forums/ja-jp/home?category=azure - 100 -