次の方法で共有


SQL Server システム オブジェクトの Azure 拡張機能

適用対象:SQL Server

この記事では、Azure Extension for SQL Serverがデプロイし管理するシステムオブジェクトを一覧にしています。 これには次のようなものがあります。

  • Files
  • レジストリ キー
  • Windows サービス
  • Tables

Windows サーバー ファイル

Path Description
%ProgramFiles%\AzureConnectedMachineAgent\* azcmagent CLI とインスタンス メタデータ サービスの実行可能ファイル
%ProgramFiles%\AzureConnectedMachineAgent\GCArcService\GC\* 拡張機能サービスの実行可能ファイル
%ProgramData%\AzureConnectedMachineAgent\* azcmagent CLI およびインスタンス メタデータ サービスの構成、ログ、ID トークン ファイル
%ProgramData%\Application Data\Microsoft\Crypto\RSA\MachineKeys Windows 証明書の秘密キー

SQL Server ファイル

Path 説明とメモ
%ProgramFiles%\SQL Server Extension\* 拡張プログラム ファイル
%SYSTEMDRIVE%\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer\<extension_version>\* 拡張機能の実行可能ファイル
%SYSTEMDRIVE%\Windows\system32\extensionUpload\* 使用状況ファイル
C:\Windows\System32\Tasks\Microsoft\SqlServerExtension 特権を提供するためのスケジュールされたタスクの XML
C:\Windows\ServiceProfiles\SqlServerExtension\AppData\Local\Microsoft SQL Server Extension Agent\* 最小特権用に構成されている場合

機能アプリケーション
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent\* 最小特権用に構成されていない場合

機能アプリケーション

Note

現時点では、最小特権構成は既定では適用されません。

拡張機能バージョンが 1.1.2859.223 以上の既存のサーバーでは、最終的に最小限の特権構成が適用されます。 この拡張機能は、2024 年 11 月にリリースされました。 最小特権の自動適用を防ぐには、 1.1.2859.223後に拡張機能のアップグレードをブロックします。

Windows サービス

サービス名 [表示名] プロセス名 Description
SqlServerExtension Microsoft SQL Server 拡張サービス SqlServerExtension.exe SQL Server インスタンスを Azure に接続します。
himds Azure ハイブリッド インスタンス メタデータ サービス himds.exe メタデータを Azure と同期させ、拡張機能とアプリケーション用のローカル REST API をホストしてメタデータにアクセスし、Microsoft Entra マネージド ID トークンを要求します
GCArcService マシン構成 Arc サービス gc_arc_service.exe (gc_service.exe バージョン 1.36 より前) マシン上で Azure マシン構成ポリシーを監査し、適用します。
ExtensionService マシン構成拡張機能サービス gc_extension_service.exe (gc_service.exe バージョン 1.36 より前) マシン上で、拡張の機能のインストール、更新、管理を行います。

仮想サービス アカウント

仮想アカウント Description
NT SERVICE\himds Hybrid Instance Metadata Service を実行するために使用される特権のないアカウント。
NT Service\SQLServerExtension SQL Server 拡張機能サービスを最小特権モードで実行するために使用される特権のないアカウント。

レジストリ キー

基本キー: HKEY_LOCAL_MACHINE

Key 説明とメモ
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER Microsoft Entra ID レジストリ キー
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\PurviewConfig Purview レジストリ キー
SOFTWARE\Microsoft\SystemCertificates Windows 証明書レジストリ キー

Tables

Azure Arc によって有効になっている SQL Server の各インスタンスで、拡張機能によって次のテーブルが msdbに作成されます。

  • dq.arcJobTriggers00
  • dt.arcJobDefinitions

これらのテーブルには、バックグラウンド ジョブ定義と実行履歴が格納されます。 バックグラウンド ジョブは、スケジュールされたアクションとユーザー開始アクションを実行します。 これらのテーブルにより、SQL ServerのAzure Extensionが再起動されると、長時間実行中のジョブが自動的に再開されます。

さらに、テーブル dbo.SQLServerAzureArcProperties には、Azure Resource Manager の SQL Server インスタンスのリソース ID が含まれています。 このテーブルを使用して、SQL Server インスタンスが Arc 対応かどうかを検出し、有効な場合はリソースの ID を Azure で検出できます。

よく寄せられる質問

そのバックグラウンドジョブはどこにあるのでしょうか?

バックグラウンドジョブは、コンピュータが再起動しても状態が永続する長期間実行されるタスクを実行するために使用されます。 ジョブのロジックは拡張に格納され、状態は msdbに保存されます。 例えば、移行評価ジョブの実行に時間がかかることがあるため、状態は msdbに保存されます。

これらの仕事はどのようなセキュリティコンテキストの下で動作しますか?

最小特権モードでは、ジョブは C:\Program Files\SQL Server Extension\SqlServerExtension.Service.exe サービスコンテキスト内で実行されます。 サービスはNT Service\SQLServerExtensionアカウントでSQL Server上のmsdbデータベースに接続します。 このサービスは msdbで運用するために必要な最低限の許可を持っています。

エージェント拡張が最小特権モードでない場合は、 LocalSystem アカウントを使って接続が行われます。

このテーブルの列はどのくらいの期間保持されますか? パージポリシーとは何ですか?

最大勤務期間は15日です。 この設定は現在、Azure Resource Manager APIを通じてユーザーが設定できません。 15日後、エンジンは実行が完了した古いジョブを自動的にパージします。

あるジョブは失敗するまで最大1日の寿命があります。 この期間は、ジョブがシステム上で残る期間を制限します。

これらのテーブルはどのくらい大きくなる見込みですか?

テーブルは小規模であることが期待されています。 定着期間は限られており、求人も限られています。

これらのテーブルにはどんなインデックスが必要ですか?

インデックスはパフォーマンス向上には役立ちません。 テーブルは、ある時点で実行されている機能やジョブの数に紐づいているので、簡単にサイズを付けるべきです。

どの機能がこれらのテーブルやジョブを使っていますか?

Arc SQL Extensionのさまざまな機能は、バックグラウンドジョブを使って状態を保存します。

対象:

  • ベストプラクティス評価
  • 移住評価
  • データベースのバックアップ/リストア

テーブルにより、拡張は長時間かかる高コストな操作(ディスカバリーなど)を、毎回一からやり直すことなく継続できるようにします。

これらのテーブルが誤ってドロップされたり、破損が起きた場合はどうなりますか?

テーブルが削除されると状態が失われ、拡張デプロイャがテーブルを再作成します。 もしテーブルが作業の読み取り先の状態が変異して破損すると、拡張が失敗する可能性があります。

これらのテーブルが欠けているのに、どうやって手動で再作成できますか?

拡張機能デプロイャを呼び出すArcアクション(ARMの設定変更やアップグレードなど)はテーブルを再作成します。