You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add FAQ to Arc Agent extension article [PLEASE SQUASH!] (#36035)
* Add FAQ to Arc Agent extension article
* Add sections on feature usage and table management for Arc SQL Extension
* Clarify table recreation process in agent extension documentation
* Refine documentation for Azure SQL Server extension system objects, enhancing clarity on managed items and table behavior.
* Clarify connection behavior in agent extension documentation for least privilege mode
* Fix formatting in agent extension documentation by removing trailing comma from tables list
---------
Co-authored-by: Raki <46581776+mdrakiburrahman@users.noreply.github.com>
Co-authored-by: Mike Ray <15928587+MikeRayMSFT@users.noreply.github.com>
|`C:\Windows\System32\Tasks\Microsoft\SqlServerExtension`| XML for scheduled task for providing privileges |
34
-
|`C:\Windows\ServiceProfiles\SqlServerExtension\AppData\Local\Microsoft SQL Server Extension Agent\*`| When configured for [least privilege](configure-least-privilege.md)<br/><br/> Feature application |
35
-
|`C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent\*`| When not configured for [least privilege](configure-least-privilege.md)<br/></br> Feature application |
39
+
|`C:\Windows\ServiceProfiles\SqlServerExtension\AppData\Local\Microsoft SQL Server Extension Agent\*`| When configured for [least privilege](configure-least-privilege.md)<br/><br />Feature application |
40
+
|`C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent\*`| When not configured for [least privilege](configure-least-privilege.md)<br/><br />Feature application |
| Service name | Display name | Process name | Description |
43
-
|:-----|:-----|:-----|:----- |
44
-
| SqlServerExtension|Microsoft Sql Server Extension Service | SqlServerExtension.exe | Connects your SQL Server instance to Azure. |
45
-
| himds | Azure Hybrid Instance Metadata Service |`himds.exe`| Synchronizes metadata with Azure and hosts a local REST API for extensions and applications to access the metadata and request Microsoft Entra managed identity tokens |
46
-
| GCArcService | Machine configuration Arc Service |`gc_arc_service.exe` (gc_service.exe earlier than version 1.36) | Audits and enforces Azure machine configuration policies on the machine. |
47
-
| ExtensionService | Machine configuration Extension Service |`gc_extension_service.exe` (gc_service.exe earlier than version 1.36) | Installs, updates, and manages extensions on the machine. |
48
+
| --- | --- | --- | --- |
49
+
|`SqlServerExtension`|Microsoft SQL Server Extension Service | SqlServerExtension.exe | Connects your SQL Server instance to Azure. |
50
+
|`himds`| Azure Hybrid Instance Metadata Service |`himds.exe`| Synchronizes metadata with Azure and hosts a local REST API for extensions and applications to access the metadata and request Microsoft Entra managed identity tokens |
51
+
|`GCArcService`| Machine configuration Arc Service |`gc_arc_service.exe` (gc_service.exe earlier than version 1.36) | Audits and enforces Azure machine configuration policies on the machine. |
52
+
|`ExtensionService`| Machine configuration Extension Service |`gc_extension_service.exe` (gc_service.exe earlier than version 1.36) | Installs, updates, and manages extensions on the machine. |
48
53
49
54
## Virtual service accounts
50
55
51
-
| Virtual Account | Description |
52
-
|------------------|-------------|
56
+
| Virtual Account | Description |
57
+
|---|---|
53
58
|`NT SERVICE\himds`| Unprivileged account used to run the Hybrid Instance Metadata Service. |
54
59
|`NT Service\SQLServerExtension`| Unprivileged account used to run the SQL Server Extension Service in least privilege mode. |
55
60
@@ -58,7 +63,7 @@ This article lists system objects - files, registry keys, Windows services and t
58
63
Base key: `HKEY_LOCAL_MACHINE`
59
64
60
65
| Key | Description & notes |
61
-
|:-----|:----- |
66
+
| --- | --- |
62
67
|`SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER`| Microsoft Entra ID registry key |
|`SOFTWARE\Microsoft\SystemCertificates`| Windows certificate registry key |
@@ -70,9 +75,55 @@ In each instance of SQL Server enabled by Azure Arc, the extension creates the f
70
75
-`dq.arcJobTriggers00`
71
76
-`dt.arcJobDefinitions`
72
77
73
-
These tables store background job definition and execution history. Background jobs perform scheduled and user-initiated actions. These tables allow long-running jobs to automatically resume in the event that the Azure Extension for SQL Server is restarted.
78
+
These tables store background job definition and execution history. Background jobs perform scheduled and user-initiated actions. These tables allow long-running jobs to automatically resume if the Azure Extension for SQL Server is restarted.
79
+
80
+
Additionally, the table `dbo.SQLServerAzureArcProperties` contains the resource identity for the SQL Server instance in Azure Resource Manager. This table can be used to detect if the SQL Server instance is Arc-enabled, and if so, what the identity of the resource is in Azure.
81
+
82
+
## Frequently asked questions
83
+
84
+
### Where are these background jobs?
85
+
86
+
The background jobs are used to perform long-running tasks that can persist state if the computer restarts. The logic of the jobs is stored in the extension, while state is stored in `msdb`. For example, a migration assessment job can take a long time to execute, so the state is stored in `msdb`.
87
+
88
+
### What security context do the jobs run under?
89
+
90
+
For least privilege mode, the jobs run under the `C:\Program Files\SQL Server Extension\SqlServerExtension.Service.exe` service context. The service connects to the `msdb` database on [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] with the `NT Service\SQLServerExtension` account. This service has the minimum permissions required to operate on `msdb`.
91
+
92
+
If the agent extension is not in least privilege mode, the connection is made using the `LocalSystem` account.
93
+
94
+
### How long are the rows on this table retained for? What is the purge policy?
95
+
96
+
The maximum job lifetime is 15 days. This setting is currently not user configurable via the Azure Resource Manager API. After 15 days, the engine automatically purges old jobs that are finished executing.
97
+
98
+
A given job has a maximum lifetime of one day before it fails. This period limits the lifetime a job can remain on the system.
99
+
100
+
### How large are these tables expected to grow?
101
+
102
+
The tables are expected to be small. The retention period is finite, and there's only a few jobs.
103
+
104
+
### What indexes do I need on these tables?
105
+
106
+
Indexes don't help performance. The tables should be trivially sized as they're tied to the number of features/jobs running at a given point in time.
107
+
108
+
### Which features use these tables and jobs?
109
+
110
+
Various features of the Arc SQL Extension features use background jobs to store state.
111
+
112
+
Including:
113
+
114
+
- Best Practice Assessment
115
+
- Migration Assessment
116
+
- Database Backup/Restore
117
+
118
+
The tables allow the extension to continue expensive operations (such as discovery) that can take long periods of time, without starting from scratch each time.
119
+
120
+
### What happens if these tables are inadvertently dropped or if corruption occurs in these tables?
121
+
122
+
If the tables are dropped, state is lost, and the extension deployer recreates the table. If the tables are corrupted by mutating state the jobs are reading from, the extension might fail.
123
+
124
+
### How can these tables be manually recreated if they're missing?
74
125
75
-
Additionally, the table `dbo.SQLServerAzureArcProperties` contains the resource identity for the SQL Server instance in Azure Resource Manager. This table can be used to detect if the SQL Server instance is Arc-enabled, and if so, what the identity of the resource is in Azure.
126
+
Any Arc action that invokes the extension deployer - such as an ARM settings change, or an upgrade - recreates the tables.
0 commit comments