SQL ServerからAzure SQL Databaseへの移行ガイド|変更点と管理者・開発者の確認ポイント

SQL Server to Azure SQL Database: Migration Guideで最初に押さえるべき結論は、Azure SQL Databaseへの移行は「SQL Serverをそのままクラウドへコピーする作業」ではなく、PaaS前提で互換性・移行方式・切り替え手順・接続設定を見直すプロジェクトだという点です。特に管理者と開発者は、Azure Database Migration Serviceを使うAzure SQL Database向け移行が基本的にオフライン移行であり、移行開始時点からアプリケーション停止が発生すること、ダウンタイムを抑えたい場合はトランザクションレプリケーションなど別方式を検討することを早めに確認する必要があります。(Microsoft Learn)

この記事では、2026年5月28日時点で確認しておきたいMicrosoft公式情報をもとに、SQL ServerからAzure SQL Databaseへ移行する際の変更点、影響範囲、設定・移行・展開上の注意点を整理します。社内の移行手順書が古いままだと、「Azure SQL Databaseで使えないSQL Server機能」「想定外の停止時間」「ファイアウォールや認証の設定漏れ」「移行後の性能劣化」でつまずきやすいため、実行前チェックリストとして活用してください。

目次

Azure SQLのSQL Server to Azure SQL Database: Migration Guideで押さえるべき変更点

今回のポイントは、新しい移行機能が単純に追加されたというより、Azure SQL Databaseへの移行で確認すべき前提がより明確になっていることです。Microsoft Learnの移行ガイドは、移行前タスクを完了してからスキーマとデータ移行に進む流れを前提にしています。つまり、先にDMSやBACPACを動かすのではなく、検出、評価、移行先設計、接続設定、権限確認を済ませてから移行する構成です。(Microsoft Learn)

また、公式ドキュメントのGitHub履歴では、2026年2月に「Azure Data Studioからの移行コンテンツを削除する」趣旨の大きな整理が行われています。旧手順書でAzure Data Studioの移行拡張機能を前提にしている場合は、Azure portal上のAzure Database Migration Serviceや現在の公式チュートリアルに合わせて見直す必要があります。(GitHub)

さらに、関連するAzure SQL DatabaseのIPファイアウォール規則の公式情報は2026年5月28日に更新されており、移行時の接続許可、Azureサービスからの接続、データベース単位のファイアウォール規則、Private Endpointの検討が重要です。移行作業はデータコピーだけでなく、ネットワーク到達性と認可設定まで含めて計画する必要があります。(Microsoft Learn)

影響を受ける対象者

SQL ServerからAzure SQL Databaseへの移行で影響を受けるのは、DBAだけではありません。アプリケーション接続、認証、バッチ、監視、CI/CD、ネットワーク設定まで関係します。

対象者主な影響すぐ確認すべきこと
データベース管理者移行方式、スキーマ移行、互換性、性能検証DMS、BACPAC、bcp、トランザクションレプリケーションのどれを使うか
インフラ管理者Azure SQL DatabaseのSKU、ネットワーク、ファイアウォール、Private Endpoint接続元IP、ポート1433、Azureサービス許可、DNS、監査設定
アプリ開発者接続文字列、リトライ処理、T-SQL差分、SQL Agent依存接続先変更、トランジェントエラー対応、未対応構文の修正
セキュリティ担当権限、ログイン、監査、公開エンドポイントMicrosoft Entra ID、SQLログイン、最小権限、監査ログ
運用担当切り替え、ロールバック、監視、移行後テストカットオーバー手順、性能ベースライン、移行後の統計更新

特に開発者は、Azure SQL DatabaseがSQL Serverと同じT-SQLを広くサポートする一方で、インスタンスレベル機能、OSやファイルシステムに依存する機能、Always On関連の一部ステートメントなどはそのまま使えない点を確認しておく必要があります。(Microsoft Learn)

Azure SQL Databaseは「SQL Serverインスタンスの完全コピー先」ではない

Azure SQL DatabaseはフルマネージドPaaSとして、バックアップ、高可用性、スケーリング、監視、チューニングなど多くの管理作業をAzure側に任せられるサービスです。一方で、SQL ServerインスタンスをOSごと、またはサーバーレベルの機能ごと移す移行先ではありません。(Microsoft Learn)

たとえば、次のような要件が強い場合、Azure SQL DatabaseではなくAzure SQL Managed InstanceやAzure VM上のSQL Serverを検討した方がよいケースがあります。

要件Azure SQL Databaseでの注意点代替候補
OSやファイルシステムへ直接アクセスしたいPaaSのためOSレベル操作はできないAzure VM上のSQL Server
FILESTREAM、FileTable、PolyBase、クロスインスタンストランザクションに強く依存Azure SQL Databaseではそのまま移行できない場合があるAzure SQL Managed Instance、Azure VM
SQL Agentジョブをそのまま使いたいAzure SQL DatabaseではSQL Agentジョブを直接サポートしないElastic Jobs、Automation、Managed Instance
Windowsログインを使っているAzure SQL DatabaseではWindowsログインはサポートされないMicrosoft Entra ID、SQLログインの再設計
Always On構成を手動で引き継ぎたい高可用性はAzure SQL Database側に組み込まれているサービスレベル、フェールオーバーグループ設計

公式情報でも、SQL AgentジョブはAzure SQL Databaseで直接サポートされずElastic Jobsの利用が案内され、WindowsログインはMicrosoft Entra IDログインやSQLログインへの置き換えが必要とされています。(Microsoft Learn)

移行方式の選び方

SQL ServerからAzure SQL Databaseへの移行方式は、許容できる停止時間、データベースサイズ、テーブル数、移行対象範囲、運用チームのスキルで決めます。最初に「使えそうなツール」を選ぶのではなく、停止時間から逆算して方式を選ぶのが実務では安全です。

移行方式向いているケース注意点
Azure Database Migration ServiceAzure portal中心でオフライン移行を管理したいAzure SQL Database向けオンライン移行は利用できないため、停止時間の検証が必要
トランザクションレプリケーション本番DBを止めにくく、変更を継続反映したい構成が複雑。ソースDBが要件を満たし、Azure SQL Databaseと互換性がある必要がある
BACPAC小規模DBや検証環境、単発移行エクスポートとインポート中に停止が必要。大規模DBやオブジェクト数が多いDBでは時間が延びやすい
bcp一部テーブルや大量データのコピーを制御したいスキーマ、制約、データ型、エラー処理を自前で管理する必要がある
Azure Data FactoryETLやデータ統合を兼ねたい完全なDB移行というより、データ移動・変換パイプライン向き

Azure Database Migration ServiceのAzure SQL Database向けチュートリアルでは、移行プロセス中に許容できるダウンタイムを考慮し、オフライン移行モードを使うことが明記されています。現時点ではAzure SQL Databaseターゲットのオンライン移行はDMSで利用できず、オフライン移行では移行開始時点がアプリケーション停止の起点になります。(Microsoft Learn)

ダウンタイムを短くしたい場合はトランザクションレプリケーションを検討する

本番DBを長時間止められない場合は、トランザクションレプリケーションが候補になります。Azure SQL Databaseをサブスクライバーとして構成し、SQL Server側の変更を継続的に反映しておき、同期完了後にアプリケーションの接続文字列をAzure SQL Databaseへ切り替える流れです。(Microsoft Learn)

ただし、トランザクションレプリケーションは「停止時間を短くできる便利な移行ボタン」ではありません。ディストリビューター、パブリケーション、サブスクリプションの設計が必要です。Azure SQL Databaseではプッシュサブスクリプションのみがサポートされ、古いSSMSではSQL Databaseをサブスクライバーとして設定できないため、最新のSQL Server Management Studioを使うことも重要です。(Microsoft Learn)

移行前に確認すべき設定

移行前の確認で重要なのは、データベース単体だけでなく、アプリケーション、ジョブ、ログイン、ネットワーク、監視まで棚卸しすることです。Microsoftの移行前ガイドでも、SQL Serverインスタンスと機能の検出、阻害要因や互換性問題の評価、移行方法の選択、移行先Azure SQL Databaseの作成、接続と権限の設定が前提タスクとして示されています。(Microsoft Learn)

互換性とT-SQL差分

Azure SQL Databaseでは多くのT-SQL機能がSQL Serverと同じように動きますが、インスタンスレベル、OS、ファイル配置に依存する構文は制限されます。たとえば、CREATE DATABASEALTER DATABASEの一部オプション、FILESTREAM、FileTable、ログイン関連の一部オプションは移行前に確認が必要です。(Microsoft Learn)

実務では、次の観点で洗い出すと漏れを減らせます。

確認項目対応例
SQL Server固有構文ファイル配置、FILESTREAM、インスタンス設定Azure SQL Database向け構文へ修正
サーバーレベルオブジェクトログイン、リンクサーバー、SQL AgentジョブEntra ID、SQLログイン、Elastic Jobsなどへ置換
アプリケーションSQL動的SQL、DB名固定、3部名参照接続DB前提のクエリへ修正
バッチ・ETLSSIS、SQL Agent、外部ファイル依存Azure Data Factory、Functions、Automationを検討
高可用性構成Always On、フェールオーバークラスターAzure SQL Databaseのサービスレベルやフェールオーバーグループで再設計

ネットワークとファイアウォール

Azure SQL Databaseの新しい論理サーバーは、既定でパブリックエンドポイントへのアクセスがファイアウォールでブロックされます。接続元からAzure SQL Databaseへ接続するには、サーバーレベルまたはデータベースレベルのIPファイアウォール規則を設計する必要があります。(Microsoft Learn)

公式情報では、可能な場合はデータベースレベルのIPファイアウォール規則を使うことが推奨されています。サーバーレベル規則は、そのサーバー配下のすべてのDBへ影響するため、管理者や共通要件向けに限定して使う方が安全です。(Microsoft Learn)

注意したいのが、Azure portalの「Azureサービスおよびリソースにこのサーバーへのアクセスを許可する」に相当する設定です。これを有効にすると、0.0.0.0の規則が作成され、他の顧客サブスクリプションを含むAzure上のサービスから接続試行が可能になります。アクセス制御はログインと権限で守る必要がありますが、セキュリティを重視する環境ではPrivate Endpointや仮想ネットワークサービスエンドポイントを優先的に検討してください。(Microsoft Learn)

また、移行元やアプリケーション側のネットワークでTCP 1433の送信が許可されているか、ファイアウォール変更の反映に最大数分程度の遅延があることも確認しておきましょう。(Microsoft Learn)

権限とログイン

DMSを使う場合、Azureアカウント、移行元SQL Serverログイン、移行先Azure SQL Databaseログインの権限を分けて確認します。公式チュートリアルでは、ターゲットAzure SQL Databaseの共同作成者、リソースグループ閲覧者、サブスクリプション所有者または共同作成者などのAzure側ロールに加え、移行元はdb_datareader、移行先はdb_ownerなどの権限が示されています。(Microsoft Learn)

スキーマ移行までDMSで行う場合は、ターゲット側で##MS_DatabaseManager####MS_DatabaseConnector####MS_DefinitionReader####MS_LoginManager##などの固定サーバーロールが関係します。移行直前に権限不足が分かると作業時間が大きく延びるため、本番移行前に同じ権限セットでリハーサルしておくことが重要です。(Microsoft Learn)

Azure Database Migration Serviceで移行する流れ

Azure Database Migration Serviceを使う場合の基本的な流れは、Azure portalでDMSインスタンスを作成または再利用し、移行シナリオを選択し、ソースSQL ServerとターゲットAzure SQL Databaseを接続し、データベースとテーブルを選んで移行を開始する形です。オンプレミスSQL Serverへ接続する場合は、セルフホステッド統合ランタイム(SHIR)が必要になることがあります。(Microsoft Learn)

手順を運用目線で整理すると、次のようになります。

フェーズ作業管理者・開発者の確認点
事前準備移行先DB、DMS、権限、ネットワークを準備接続元IP、SHIR、SQLログイン、SKU
スキーマ確認互換性問題、未対応オブジェクトを確認T-SQL差分、計算列、CDC、ジョブ依存
テスト移行検証環境でDMS移行を実行所要時間、エラー、テーブル単位の状態
本番停止書き込み停止、最終バックアップ、関係者連絡停止開始時刻、ロールバック判断基準
データ移行DMSで移行を開始、進行状況を監視コピー、インデックス再構築、失敗テーブル
切り替え接続文字列をAzure SQL Databaseへ変更アプリ再起動、シークレット更新、DNS不要化
移行後検証件数、整合性、性能、エラーを確認統計更新、クエリ性能、監視アラート

DMSでは、移行の状態としてコピー準備、コピー、コピー完了、インデックス再構築、成功などを確認できます。テーブルごとの状態も見られるため、単に「移行ジョブが終わったか」ではなく、重要テーブルが正しくコピーされ、インデックス再構築まで完了しているかを確認してください。(Microsoft Learn)

日本語環境で特に注意したいDMSの制限

日本語圏のシステムで見落としやすいのが、テーブル名や列の仕様に関する制限です。Azure SQL Database向けDMSオフライン移行では、データ移動にAzure Data Factoryパイプラインが使われるため、その制限の影響を受けます。公式情報では、データベースあたり100,000テーブル、サービスごとに10,000個の同時データベース移行、移行速度がターゲットSKUとSHIRホストに大きく依存することなどが示されています。(Microsoft Learn)

特に確認したい制限は次の通りです。

制限・注意点影響対策
2バイト文字のAzure SQL Databaseテーブル名が移行でサポートされない日本語テーブル名を使うDBで失敗する可能性移行前に一時的に英数字名へ変更し、移行後に戻す運用を検討
計算列は移行されない移行後に列やロジックが不足する事前にスクリプト化し、移行後に再作成
大きなBLOB列を持つテーブルがタイムアウトする場合がある添付ファイル、画像、文書格納テーブルで失敗しやすいテーブル分割、別方式、リトライ計画を用意
CDC有効DBでスキーマ移行にDMSを使う場合は事前無効化が必要CDC関連オブジェクトがターゲットに移り、移行後のCDC有効化で問題化本番影響を確認した上でCDC停止手順を設計
NULLと既定制約の扱いに注意NULLがターゲット側既定値で移行される可能性NULLを含む列を事前抽出し、検証SQLで確認

この制限は、移行リハーサルで必ず検出しておきたいポイントです。とくに日本語のテーブル名を使っている古い業務システムでは、移行当日に初めて分かると停止時間内に解決できない可能性があります。

パフォーマンスとSKU設計の注意点

移行中のボトルネックは、移行元SQL ServerのデータファイルI/O、ターゲットAzure SQL Databaseのログ生成速度、オンプレミスからAzureへのネットワーク帯域に分かれます。公式ガイドでは、Azure SQL Databaseの最大ログ生成速度やネットワーク帯域を踏まえ、必要に応じて移行中だけターゲットをスケールアップし、移行後にスケールダウンすることが推奨されています。(Microsoft Learn)

実務では、平常時の必要性能だけでAzure SQL DatabaseのSKUを決めると、移行中にコピー速度が出ず、停止時間が長くなることがあります。移行時だけ上位SKUにして、移行完了後に適正サイズへ戻す計画を立てると、停止時間とコストのバランスを取りやすくなります。

また、BACPACを使う場合は、BACPACファイルと移行先データセンターの距離を近づける、移行中は統計の自動更新や自動作成を無効にする、インデックス付きビューを削除して移行後に再作成する、といった考慮も公式ガイドに記載されています。(Microsoft Learn)

アプリケーション側で確認すべきこと

Azure SQL Databaseへ移行した後は、アプリケーションが旧SQL ServerではなくターゲットDBを使うように変更する必要があります。公式ガイドでも、データ移行後に旧ソースを使っていたすべてのアプリケーションがターゲット環境を使い始める必要があり、場合によってはアプリケーション変更が必要とされています。(Microsoft Learn)

開発者が確認すべき代表例は次の通りです。

確認項目よくある失敗対応
接続文字列サーバー名、DB名、認証方式を変更し忘れるAzure portalの接続文字列をもとに環境変数やKey Vaultを更新
リトライ処理一時的な接続エラーをそのまま画面エラーにする指数バックオフ付きリトライを実装
タイムアウト移行後の初回実行や統計不足でタイムアウトする統計更新、クエリプラン確認、Command Timeout調整
認証Windowsログイン前提のまま接続するEntra IDまたはSQLログインへ移行
バッチSQL Agentジョブが動かないElastic Jobs、Azure Automation、Functionsなどへ置換
監視旧SQL Serverの監視だけが残るAzure Monitor、診断設定、SQL監査を追加

Azure SQL Databaseでは、クラウド側の再構成などで一時的な接続エラーが発生する可能性があるため、アプリケーションにはリトライロジックを入れることが推奨されています。初回リトライは短すぎる間隔を避け、以降は指数的に間隔を増やす考え方が示されています。(Microsoft Learn)

切り替え時の実務チェックリスト

本番切り替えでは、「移行ジョブを実行する人」だけでなく、「アプリを止める人」「接続文字列を変える人」「動作確認する人」「戻す判断をする人」を明確にします。カットオーバーの失敗は、技術的なエラーよりも役割分担と判断基準の曖昧さから起きることが多いです。

タイミングチェック内容
前日までリハーサル結果、移行所要時間、失敗時のロールバック手順を共有
停止直前書き込み停止、ジョブ停止、バックアップ、監視抑止、関係者連絡
移行中DMS状態、失敗テーブル、SHIR負荷、ネットワーク、ターゲットDTU/vCore使用率
接続切替アプリ設定、Key Vault、環境変数、接続プール再作成、アプリ再起動
確認件数、重要画面、登録・更新・検索、バッチ、帳票、外部連携
判断継続、切り戻し、限定公開、追加修正の判断時刻を決める

トランザクションレプリケーションを使う場合は、ソースとターゲットのデータが同じであることを確認したうえで、アプリケーションの接続文字列をAzure SQL Databaseへ切り替え、残りの変更が反映されたことを確認してからレプリケーションを解除します。(Microsoft Learn)

移行後に必ず行うべき確認

移行完了後は、データが入っただけで完了にしないでください。公式ガイドでは、移行後フェーズがデータ精度、完全性、性能問題に対処するために重要であり、移行完了後にフルスキャンで統計を更新すること、検証テストと性能テストを行うことが示されています。(Microsoft Learn)

最低限、次の確認を行います。

確認項目具体例
データ件数主要テーブルの行数、日付範囲別件数、ステータス別件数
データ整合性合計金額、残高、注文数、親子テーブルの不整合
アプリ動作ログイン、検索、登録、更新、削除、帳票、API連携
性能主要SQLの実行時間、DTU/vCore、CPU、I/O、待機、タイムアウト
セキュリティ不要なファイアウォール規則、過剰権限、監査設定
運用バックアップ保持、監視アラート、障害時連絡、コスト監視

特に移行直後は統計情報や実行プランの影響で、オンプレミスSQL Serverと同じクエリでも性能が変わることがあります。移行前に取得した性能ベースラインと比較し、遅くなったSQLを個別に調整してください。

よくある失敗と回避策

失敗例原因回避策
予定停止時間を超過するDMSオフライン移行の所要時間を本番データ量で検証していない本番相当データでリハーサルし、停止時間を測定
移行後にアプリが接続できないIPファイアウォール、ポート1433、認証、接続文字列の漏れ接続元ごとに疎通テストを実施
SQL Agentジョブが消えるAzure SQL Databaseで直接サポートされないElastic JobsやAzure Automationに置換
日本語テーブル名でDMS移行に失敗2バイト文字テーブル名の制限命名変更、別方式、事前検証を行う
データ差異が後から見つかる行数だけ確認し、業務的な整合性を見ていない金額合計、ステータス別件数、重要トランザクションを検証
セキュリティが広くなりすぎるAzureサービス許可を安易にONにするPrivate Endpoint、DB単位規則、最小権限を優先
移行後に一時エラーが表面化するクラウドDB向けのリトライ処理がない接続・コマンドのリトライ設計を実装

管理者と開発者が次に取るべき行動

SQL ServerからAzure SQL Databaseへの移行を検討しているなら、まずは本番DBをいきなり移すのではなく、次の順番で進めてください。

  1. SQL Serverインスタンス、DB、ジョブ、ログイン、アプリ接続元を棚卸しする
  2. Azure SQL Databaseで使えない機能やT-SQL差分を評価する
  3. 許容停止時間を決め、DMS、トランザクションレプリケーション、BACPAC、bcpのどれを使うか選ぶ
  4. 移行先のSKU、ネットワーク、ファイアウォール、権限、監査を設計する
  5. 本番相当データでリハーサルし、移行時間と失敗パターンを記録する
  6. 接続文字列、リトライ処理、ジョブ置換、監視をアプリ側で対応する
  7. カットオーバー手順とロールバック基準を文書化する

Azure SQL Databaseへの移行は、移行ツールの操作よりも「移行前の評価」と「移行後の検証」で成否が決まります。公式ガイドの流れに沿って、互換性、ダウンタイム、ネットワーク、権限、アプリ改修を先に洗い出せば、移行当日のトラブルを大きく減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次