この記事は、Azure ArcでSQL Server移行を使用して、SQL Server データベースをAzure SQL Managed Instanceに移行するときに発生する可能性のある一般的な問題のトラブルシューティングに役立ちます。
注
移行エクスペリエンスに関するフィードバックを 製品グループに直接提供できます。
Arc エージェントのバージョン
Azure ArcでSQL Server移行を使用する場合、特定の機能には Arc エージェントの最小バージョンが必要です。 Arc エージェントは、Azureへの接続を提供するために、SQL Server インスタンスと共に実行される実行可能ファイルです。 最新の修正プログラムと更新プログラムを入手するには、Arc エージェントのバージョンを常に最新の状態に保ちます。
自動更新が有効になっている場合、Arc エージェントは自動的に最新の状態を維持します。 ただし、新しいバージョンの Arc エージェントがロールアウトされると、更新がすべてのサーバーに到達するまでに数日かかることがあります。 Azure ポータルまたはコマンド ライン インターフェイスを使用してオンデマンドの Arc エージェント更新を
Azure ポータルで Database migration ペインにアクセスするときに次のエラーが表示された場合は、Arc エージェントをサポートされているバージョンにアップグレードする必要があります。
To enable migration and monitoring capabilities,
please update your Azure Arc agent extension "WindowsAgentSQLServer" to the latest version.
Arc エージェントの問題
Arc エージェントで問題が発生した場合、異常な拡張機能の状態や切断されたSQL Serverインスタンスなどの問題がある場合は、次の拡張機能のトラブルシューティングガイドをご利用ください: SQL ServerのAzure拡張機能のトラブルシューティング。
移行の準備状況の評価に関する問題
システムは、毎週日曜日の午後 11 時 (23:00) にサーバーに対して 移行準備評価 を実行します。 Azure Arcによって新しく有効になったSQL Server インスタンスの評価は、Azure ポータルに表示されるまでに数日かかる場合があります。 評価の実行を使用して、オンデマンド評価をトリガーします。 評価は数分後に表示されます。
Azure ポータルでデータベース移行の準備状況の評価ページが空白の場合、スケジュールされた評価が実行されなかった可能性があります。または、SQL Server インスタンスで評価を実行するときに問題が発生しました。 Arc エージェントを無効にすると、評価が実行されなくなります。 Arc エージェントが有効になっていることを確認します。 詳細については、「 評価設定の変更」を参照してください。
次の既知の問題について考えてみましょう。
-
xp_cmdshellを有効にして使用すると、データベースを移行できるため、SQL Managed Instanceの警告が評価に記録されます。 ただし、xp_cmdshellを特に使用するオブジェクトの機能が中断されます。 問題を軽減するには、評価に記載されている修復ガイダンスを使用します。
次のいずれかの問題が発生した場合は、Microsoft Support にお問い合わせください。
- 評価レポートは、スケジュールされた時刻を過ぎてもポータルに表示されません。
- パフォーマンス データの可用性は、データ収集の 1 週間後には増加しません。
移行の問題に関するAzureアクティビティログを表示する
Azure ポータルのアクティビティ ログは、リソースからアクセスすると、Azureで発生するリソース レベルのイベントに関する分析情報を提供します。 この分析情報には、リソースを変更または削除するタイミングに関する情報と、サービス正常性やその他の重要なイベントに関する詳細が含まれます。
Azure ArcでSQL Server移行を使用してAzure SQL Managed Instanceへの移行の問題をトラブルシューティングする場合、アクティビティ ログは、問題を特定し、問題の原因となった一連のイベントを理解するための貴重なリソースです。
Azure Arc リソースによって有効になっているSQL Server インスタンスのAzure ポータルでアクティビティ ログにアクセスするには、次の手順に従います。
Azure ポータルで、Azure Arc リソースによって有効になっている
SQL Server インスタンスに移動します。 リソース メニューから [アクティビティ ログ ] を選択します。
Azure ポータル内の SQL Server インスタンス リソースのアクティビティ ログが強調表示されたスクリーンショット。
上部のナビゲーション バーの通知ベル アイコンを選択し、アクティビティ ログで [その他のイベント] を選択することで、サブスクリプション レベルのアクティビティ ログにアクセスして、サブスクリプション内のすべてのリソースのイベントをより広く表示することもできます。
アクティビティ ログからイベントを選択して、イベントの詳細ウィンドウを開きます。 [概要] タブと [JSON] タブを使用して、特定のエラー メッセージなど、イベントに関する詳細情報を表示します。 サポート リクエストを作成する場合は、可能な限り詳細にこの情報を伝えてください。
Azure ポータルで使用できない新しいデータベース
移行するデータベースを選択しようとすると、SQL Server インスタンスに最近追加されたデータベースがAzure ポータルにすぐに表示されない場合があります。 これは、Arc エージェントがデータベース リストを自動更新するのに約 1 時間かかるためです。
この問題を回避するには、Arc サービスを再起動して、データベース リストの即時更新をトリガーします。
Windowsで、SQL Server インスタンスをホストするサーバー上の管理者特権のコマンド プロンプトで次のコマンドを使用します。
Restart-Service himds
Restart-Service gcarcservice
Restart-Service extensionservice
サービスが再起動するのを待ってから、次のコマンドを使用して、次のコマンドを使用してサービスが実行されていることを確認します。
& "$env:ProgramW6432\AzureConnectedMachineAgent\azcmagent.exe" show
Linux サーバーでは、管理者特権のターミナルで次のコマンドを使用します。
sudo systemctl restart himdsd
sudo systemctl restart gcad
sudo systemctl restart extd
サービスが再起動するのを待ってから、次のコマンドを使用して、次のコマンドを使用してサービスが実行されていることを確認します。
azcmagent show
SQL Server インスタンスのAzure ポータルの Databases ページに移動し、 Refresh を選択して、新しく追加されたデータベースを表示します。 移行のためにこれらの新しいデータベースを選択できるようになりました。
"Managed Instance のリンク移行問題"
このセクションでは、Azure ArcのSQL Server移行を通じてAzure SQL Managed Instanceに移行する場合のManaged Instance リンク機能に関する一般的な問題について説明します。
- 正しくないサービス パックがインストールされている
- Always On 可用性グループ機能が無効になっている
- SQL Server 2016 の使用
- ネットワーク接続の問題
- Managed Instanceリンク移行ジョブの開始時の警告
- 既存のリンクとの相互運用性に関する既知の問題
- XE Profiler を使用した詳細なトラブルシューティング
正しくないサービス パックがインストールされている
appropriate SQL Server Service Pack (SP) または累積的な更新プログラム (CU) がインストールされていることを確認します。
SQL Server インスタンスで次の T-SQL コマンドを実行することで、正しいバージョンを確認できます。
EXEC sp_certificate_add_issuer @CERTID, N'*.database.windows.net'
ストアド プロシージャ sp_certificate_add_issuerSQL Server見つからないというエラーが発生した場合は、適切なサービス パック (Azure接続機能パックなど) がインストールされていない可能性があります。 必要なサービス更新プログラムをインストールして、もう一度やり直してください。
Always On 可用性グループ機能が無効になっている
SQL Server インスタンスで Always On 可用性グループ機能が有効になっていることを確認。 Managed Instance リンクでは、適切な機能を実現するために Always On 可用性グループ機能を有効にする必要があります。
SQL Server 2016 の使用
SQL Server 2016 (13.x) の場合は、Prepare SQL Server 2016 のリンクの前提条件に記載されている追加の手順を完了する必要があります。 リンクでサポートされている SQL Server 2017 (14.x) 以降のバージョンでは、これらの追加の手順は必要ありません。
ネットワーク接続の問題
Managed Instance リンク機能を機能させるには、SQL Server環境とAzure SQL Managed Instanceの間の接続が成功することが不可欠です。 ネットワーク接続の問題が発生している場合は、次の点を考慮してください。
- Managed Instance リンクはパブリック ネットワーク経由では機能しないため、VPN を使用するなど、SQL Server インスタンスとAzure SQL Managed Instanceの間の接続はプライベートである必要があります。
- 移行プロセスの一環として、Azure ポータルから直接接続をテストできます。 ポータルで接続テストが成功してもリンクを作成できない場合は、 アクティビティ ログ でエラーの詳細を確認してください。 Transact-SQLとSQL Server Agentを使用して>c0>接続を手動で
- ネットワーク上の企業ファイアウォールを確認します。 ネットワーク接続は機能しているように見えますが、ファイアウォールは、分散型可用性グループに使用SQL Server特定の種類のパケットをブロックする可能性があります。 ファイアウォールがパケットの種類をブロックまたはフィルター処理していないことを確認します。
Managed Instanceリンク移行ジョブ開始時の警告
Managed Instance リンク移行ジョブを開始すると、次の警告が表示されることがあります。 次の警告に関係なく、移行を続行できます。
Warning: Database Mirroring Endpoint does not existWarning: Database Mirroring Endpoint is not secure with a certificateWarning: Database Mirroring Endpoint is not enabledWarning: Database Mirroring Endpoint encryption algorithm is not set to AES
これらの警告は現在既知の問題であり、移行プロセスでは自動的に対処されるため、移行を続行できます。
その他の警告を調査します。 一部の警告では、移行を開始する前に問題の解決が必要になる場合があります。一部の警告は、移行の完了後に対処できます。
既存のリンクとの相互運用性に関する既知の問題
移行のために Azure ポータルを使用してリンクを構成することは、SQL Server Management Studio (SSMS) または Transact-SQL (T-SQL) を使用して手動で作成した既存のリンクと互換性がありません。 リンクが既に存在する場合は、Azure ポータルから新しいリンクを作成することはできません。
SQL Server ソースまたは Azure SQL Managed Instance ターゲットのいずれかにリンクが既に存在する場合は、Azure ポータルを使用してそのソースとターゲットの間に新しいリンクを作成する前に、次の手順を実行する必要があります。
- Remove-AzSqlInstanceLink または az sql mi link delete を使用して、Azure Cloud Shellまたは Azure コンテキストでサインインしたマシンを使用して、SQL Managed Instanceから手動でリンクを削除します。
- DROP AVAILABILITY GROUP を使用して、リンクに関連付けられている分散型可用性グループの名前を使用して、SQL Serverから手動でリンクを削除します。
-
DROP CERTIFICATE を使用して、SQL Server インスタンスからすべてのリンク関連証明書を削除します。 通常、削除する必要がある証明書には、
DigiKey PKI、Microsoft PKI、endpoint、およびdatabase.windows.netの値が含まれます。SELECT * FROM sys.certificatesを使用して、SQL Server上のすべての証明書を一覧表示できます。 - Remove-AzSqlInstanceServerTrustCertificate または az sql mi partner-cert delete Azure Cloud Shell または Azure コンテキストでサインインしたマシンを使用して、SQL Managed Instanceからすべてのリンク関連証明書を削除します。 Get-AzSqlInstanceServerTrustCertificate または az sql mi partner-cert show を使用して、SQL Managed Instance上の既存の認証証明書を一覧表示できます。
- 前の手順では、手動で作成されたリンクに対して生成されたすべてのリンク関連の認証証明書をクリアします。 既存の可用性グループをローカルで使用していない場合は、 DROP ENDPOINT を使用して既存のデータベース ミラーリング エンドポイントを削除することを検討してください。
SELECT * FROM sys.endpointsを使用して、SQL Server上のすべての既存のエンドポイントを一覧表示できます。 エンドポイントを削除する前に、エンドポイントに関連付けられている証明書を削除する必要があります。
XE Profiler を使用した詳細なトラブルシューティング
リンクの問題の詳細なトラブルシューティングについては、 XE Profiler を使用してください。
Log Replay Service の移行に関する問題
このセクションでは、ログ再生サービス (LRS) を使用して移行するときに発生する可能性がある一般的な問題の一覧を示します。
Azure Blob Storage - ディレクトリに結果が見つかりませんでした
- ファイルの復元の状態を確認する
- エラー 2009 - マネージド ID が正しく設定されていません
- DMS を使用した移行のトラブルシューティング
- 移行ジョブを削除する
Azure Blob Storage内のディレクトリを一覧表示できない
Azure ポータルの Unable to list directories ページでディレクトリを選択するときにというエラー メッセージが表示された場合、現在ポータルにログインしているユーザーには、ストレージ アカウントに割り当てられている Storage Blob Data Reader ロールがありません。
問題を解決するには、ストレージ アカウントへのアクセス 権をユーザーに付与します。
ディレクトリに結果が見つかりませんでした
Azure ポータルの No results were found in directory ページでディレクトリを選択するときに というメッセージが表示された場合は、Azure Blob Storage コンテナー内でデータベース バックアップを使用できません。 この問題を解決するには、データベースの完全バックアップを BLOB ストレージAzureアップロードします。
ファイルの復元の状態を確認する
移行中に検出、キュー、スキップ、または復元できないファイルの数を確認するには、Azure ポータルの Monitor と cutover ページを使用します。 移行が開始されたら、[ 監視とカットオーバー ] ページに移動し、移行するデータベースを選択して、そのデータベースの移行の詳細を開きます。
エラー 2009 - マネージド ID が正しく設定されていません
移行が正常に開始された後、エラー 2009 - managed identity is not set up properly で失敗した場合、マネージド インスタンスのプライマリ ID には、Azure BLOB ストレージ アカウントに割り当てられた Storage BLOB データ 閲覧者 アクセス許可がありません。
問題を解決するには、ストレージ アカウントへのマネージド ID アクセス 権を付与します。 適切な ID (既定のマネージド ID またはユーザー定義のカスタム ID) に必要なアクセス許可があること、またはアクセス許可が最初に付与されてから ID が変更されなかったことを確認します。 ID が変更された場合は、新しい ID に適切なアクセス許可を付与して問題を解決します。
DMS を使用した移行のトラブルシューティング
Azure Arcで LRS 移行ジョブを開始すると、Database Migration Service (DMS) 移行ジョブが自動的に作成されるため、Azure ポータルで Azure Database Migration Service を使用して、移行ジョブに関する追加の詳細を確認できます。
DMS で LRS 移行ジョブの詳細を表示するには、次の手順に従います。
Azure ポータルで Azure Database Migration Service に移動します。
[ すべてのリソース ] を選択し、LRS 移行に関連付けられている DMS 移行ジョブを選択して、移行の詳細ページを開きます。
移行の詳細ページで、[ 移行の監視 ] を選択して、LRS を使用して特定のインスタンスに移行されたデータベースの状態を確認します。 状態の詳細を表示するには、[ 成功]、[ キャンセル済み]、または [エラー ] を選択します。
このページにアクセスするもう 1 つの方法は、Azure Arc を使用して移行を開始した後に、ターゲットである SQL マネージド インスタンスを含むリソース グループに追加された Azure Database Migration Service リソースを使用することです。
移行ジョブを削除する
LRS 移行ジョブは完了(成功または失敗)後、28日間はモニターおよびカットオーバーページに残ります。 監視ページからジョブをすぐに消去する場合は、ジョブを手動で削除できます。
ジョブを手動で削除するには、前のセクションで説明したように 、LRS 移行に関連付けられている DMS 移行ジョブ に移動します。 削除する移行ジョブを選択し、[ごみ箱の 削除 ] ボタンを使用してジョブを削除します。 [このチェック ボックスをオンにして削除を確定する] を選択して確認します。 このアクションにより、Azure Arcの Monitor および cutover ページからジョブがクリアされます。
SQL Managed Instance への移行後の既知の問題
Azure SQL Managed Instanceに移行した後、次の既知の問題を検討してください。
SQL Managed Instanceに移行した後の復元操作の失敗
Azure SQL Managed Instanceにデータベースを移行する際、SQL Server 2019以降のバージョンで高速データベース復旧 (ADR) を有効にし、永続バージョン ストア (PVS) をファイル グループ以外に設定した場合、ターゲットのSQL Managed Instanceで復元操作に失敗する可能性があります。
この問題を回避するには、SQL Managed Instanceに移行する前に、ソース SQL Server データベースの persistent バージョン ストア (PVS) を PRIMARY に設定してください。 PVS を PRIMARY に設定せずにデータベースを既に移行している場合は、ソース SQL Server データベースでデータベースを設定してから、データベースをSQL Managed Instanceに再移行できます。
SQL Managed Instanceに移行した後に高速データベース復旧を使用できない
SQL Server 2019以降では、データベースをAzure SQL マネージド インスタンスに移行する際、ソースデータベースで高速データベース復旧が無効になっている場合は、ターゲットのSQL マネージド インスタンスで高速データベース復旧を使用することはできません。
この問題を回避するには、SQL Managed Instance に移行する前に、ソース SQL Server データベースで高速データベース復旧を有効にしてください。 データベースの高速復旧を有効にせずに既にデータベースを移行している場合は、ソース SQL Server データベースでデータベースを有効にしてから、データベースを SQL マネージド インスタンスに再移行できます。
SQL Server 2017 以前のバージョンでは高速データベース復旧がサポートされていないため、この問題は、これらのバージョンのSQL Serverから移行されたデータベースには適用されません。
SQL Managed Instanceに移行した後に Service Broker を使用できない
データベースをAzure SQL Managed Instanceに移行し、ソース データベースで Service Broker が無効になっている場合、ターゲット SQL マネージド インスタンスで Service Broker を使用することはできません。
この問題を回避するには、SQL Managed Instanceに移行する前に、ソース SQL Server データベースで Service Broker を有効にしてください。 Service Broker を有効にせずにデータベースを既に移行している場合は、ソース SQL Server データベースでデータベースを有効にしてから、データベースを SQL Managed Instance に再移行できます。
Microsoftにお問い合わせください
Microsoftに連絡して、問題のあるサポート チケットを開いたり、製品グループに直接フィードバックを提供したりできます。
サポートにお問い合せください
https://aka.ms/azure-support を使用して、Azure ポータルの Help + support ページに移動し、次の手順に従って移行関連のサポート チケットを開きます。
- [ サポート要求の作成 ] を選択して、[ サポート + トラブルシューティング ] ウィンドウを開きます。
- テキストフィールドに「
migration」と入力し、次に「どのサービスに問題がありますか?」の下で「いずれでもない」を選択してください。 -
サービスの選択ドロップダウン リストから
SQL Server enabled by Azure Arcを選択し、Next を使用して続行します。 - ドロップダウン リストからサブスクリプションを選択します。
Resource ドロップダウン リストから Azure Arc リソースによって有効になっているSQL Server インスタンスを選択し、 Next を選択します。- [次のいずれかの問題が発生していますか?] タイルで [移行の問題] を選択し、[次へ] を選択します。
- [サポート + トラブルシューティング] ウィンドウ内の上部のナビゲーション バーから [サポート 要求の作成] を選択して、サポート チケット フォームを開きます。
- 次の 問題サブタイプ の値を使用して、問題を適切なサポート キューにルーティングします。
- 評価: 移行準備状況の評価に問題がある場合。
- LRS データ移行: ログ再生サービス (LRS) の移行に問題がある場合。
- MI Link Data Migration: Managed Instance リンクの移行で問題が発生した場合。
- 監視とカットオーバー: 移行の監視またはカットオーバーで問題が発生している場合。
- Target Provisioning: ターゲット Azure SQL Managed Instanceのプロビジョニングに問題がある場合。
- [次へ] を使用して、サポートリクエストフォームの残りの手順に進み、[作成] を選択してサポートリクエストを送信します。
製品グループにフィードバックを提供する
移行エクスペリエンスの向上に役立つフィードバックを製品グループに提供できます。 フィードバックを送信するには、次のリンクを使用します。