-
Notifications
You must be signed in to change notification settings - Fork 2.9k
/
Copy pathfrequently-asked-questions-faq.yml
473 lines (367 loc) · 48.2 KB
/
frequently-asked-questions-faq.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
### YamlMime:FAQ
metadata:
title: 'Frequently asked questions (FAQ) for SQL Server on Azure VMs'
description: This article provides answers to frequently asked questions about running SQL Server on Azure VMs.
services: virtual-machines-windows
documentationcenter: ''
author: MashaMSFT
editor: ''
tags: azure-service-management
ms.assetid: 2fa5ee6b-51a6-4237-805f-518e6c57d11b
ms.service: azure-vm-sql-server
ms.subservice: service-overview
ms.topic: faq
ms.tgt_pltfrm: vm-windows-sql-server
ms.workload: iaas-sql-server
ms.date: 07/31/2023
ms.author: mathoma
ms.reviewer: randolphwest, dpless
title: Frequently asked questions for SQL Server on Azure VMs
summary: |
[!INCLUDE[appliesto-sqlvm](../../includes/appliesto-sqlvm.md)]
> [!div class="op_single_selector"]
> * [Windows](frequently-asked-questions-faq.yml)
> * [Linux](../linux/frequently-asked-questions-faq.yml)
This article provides answers to some of the most common questions about running [SQL Server on Azure Virtual Machines (VMs)](https://azure.microsoft.com/services/virtual-machines/sql-server/).
[!INCLUDE [support-disclaimer](../../includes/support-disclaimer.md)]
sections:
- name: Images
questions:
- question: |
What SQL Server virtual machine gallery images are available?
answer: |
Azure maintains virtual machine images for all supported major releases of SQL Server on all editions for both Windows and Linux. For more information, see the complete list of [Windows VM images](sql-server-on-azure-vm-iaas-what-is-overview.md#licensing) and [Linux VM images](../linux/sql-server-on-linux-vm-what-is-iaas-overview.md#create).
- question: |
Are existing SQL Server virtual machine gallery images updated?
answer: SQL Server images in the virtual machine gallery are updated with the latest OS and SQL Server updates regularly, typically once a month. After deployment, keeping the OS and SQL Server up to date can be done manually or automated through [Azure Update Manager](../azure-update-manager-sql-vm.md).
- question: |
Can SQL Server virtual machine images get removed from the gallery?
answer: |
Yes. Only one image per major version and edition is maintained in Azure. For example, when a new SQL Server service pack is released, a new image is added to the gallery for that service pack and the SQL Server image for the previous service pack is immediately removed from the Azure portal. However, it's still available for provisioning from PowerShell for the next three months. After three months, the previous service pack image is no longer available. This removal policy also applies if a SQL Server version becomes unsupported when it reaches the end of its lifecycle.
- question: |
Is it possible to deploy an older image of SQL Server that isn't visible in the Azure portal?
answer: |
Yes, by using PowerShell. For more information about deploying SQL Server VMs using PowerShell, see [How to provision SQL Server virtual machines with Azure PowerShell](create-sql-vm-powershell.md).
- question: |
Is it possible to create a generalized Azure Marketplace SQL Server image of my SQL Server VM and use it to deploy VMs?
answer: |
Yes, but you must then [register each SQL Server VM with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) to manage your SQL Server VM in the portal, as well as utilize features such as automated patching and automatic backups. When registering with the extension, you also need to specify the license type for each SQL Server VM.
- question: |
How do I generalize SQL Server on Azure VM and use it to deploy new VMs?
answer: |
You can deploy a Windows Server VM (without SQL Server installed on it) and use the [SQL sysprep](/sql/database-engine/install-windows/install-sql-server-using-sysprep) process to generalize SQL Server on Azure VM (Windows) with the SQL Server installation media. Customers who have [Software Assurance](https://www.microsoft.com/licensing/licensing-programs/software-assurance-default?rtc=1&activetab=software-assurance-default-pivot%3aprimaryr3) can obtain their installation media from the [Volume Licensing Center](https://www.microsoft.com/Licensing/servicecenter/default.aspx). Customers who don't have Software Assurance can use the setup media from an Azure Marketplace SQL Server VM image that has the desired edition.
Alternatively, use one of the SQL Server images from Azure Marketplace to generalize SQL Server on Azure VM. You must delete the following registry key in the source image before creating your own image. Failure to do so can result in the bloating of the SQL Server setup bootstrap folder and/or SQL IaaS Agent extension in failed state.
Registry Key path:
`Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SysPrepExternal\Specialize`
> [!NOTE]
> SQL Server on Azure VMs, including those deployed from custom generalized images, should be [registered with the SQL IaaS Agent extension](./sql-agent-extension-manually-register-single-vm.md?tabs=azure-cli%252cbash) to meet compliance requirements and to utilize optional features such as automated patching and automatic backups. The extension also allows you to [specify the license type](./licensing-model-azure-hybrid-benefit-ahb-change.md?tabs=azure-portal) for each SQL Server VM.
- question: |
Can I use my own VHD to deploy a SQL Server VM?
answer: |
Yes, but you must then [register each SQL Server VM with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) to manage your SQL Server VM in the portal, as well as utilize features such as automated patching and automatic backups.
- question: |
Is it possible to set up configurations not shown in the virtual machine gallery (for example Windows 2008 R2 + SQL Server 2012)?
answer: |
No. For virtual machine gallery images that include SQL Server, you must select one of the provided images either through the Azure portal or via [PowerShell](create-sql-vm-powershell.md). However, you have the ability to deploy a [supported](/lifecycle/products/?terms=windows%20server) Windows VM and self-install a [supported](/lifecycle/products/?terms=sql%20server) SQL Server version to it. You must then [register your SQL Server VM with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) to manage your SQL Server VM in the Azure portal, as well as utilize features such as automated patching and automatic backups.
- question: |
I can't find the version and edition of SQL Server that I want from the images available on Azure Marketplace.
answer: |
If the version and edition of SQL Server you're looking for isn't available in the **Images** drop-down on Azure Marketplace, deploy a Windows-only Azure virtual machine, and then manually install the version and edition of SQL Server you want. Register your SQL Server VM with the [SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) if you want to manage your SQL Server VM from the Azure portal.
- question: |
I can't find the version of Windows, such as Azure Edition, among the SQL Server images available on Azure Marketplace.
answer: |
If the version of Windows you're looking for isn't available in the SQL Server images found in the **Images** drop-down of Azure Marketplace, deploy a Windows-only Azure virtual machine with the desired edition, and then manually install the version and edition of SQL Server you want. Register your SQL Server VM with the [SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) if you want to manage your SQL Server VM from the Azure portal.
- question: |
Is there a free edition of SQL Server available on Azure Marketplace?
answer: |
Developer and Express editions of SQL Server are available on Azure Marketplace, which doesn't charge you for the SQL Server license. If the Express or Developer edition isn't available for the version of SQL Server you're looking for, deploy a Windows-only Azure virtual machine, and then manually install the version and edition of SQL Server you want. Register your SQL Server VM with the [SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) if you want to manage your SQL Server VM from the Azure portal.
- question: |
Why is my SQL Server on Azure VM failing to deploy?
answer: |
There are certain VM sizes that deploy with an uninitialized ephemeral drive, which leads to the SQL Server on Azure VM deployment failing during provisioning with the error [System Drive returned status not ready for use](/troubleshoot/sql/azure-sql/sql-deployment-fails-drive-not-ready). To resolve this issue, either choose a different VM size, or deploy the VM as just a Windows Server image and then manually install SQL Server.
- name: Creation
questions:
- question: |
How do I create an Azure virtual machine with SQL Server?
answer: |
The easiest method is to create a virtual machine that includes SQL Server. For a tutorial on signing up for Azure and creating a SQL Server VM from the portal, see [Provision a SQL Server virtual machine in the Azure portal](create-sql-vm-portal.md). You can select a virtual machine image that uses pay-per-second SQL Server licensing, or you can use an image that allows you to bring your own SQL Server license. You also have the option of manually installing SQL Server on a VM with either a freely licensed edition (Developer or Express) or by reusing an on-premises license. Be sure to [register your SQL Server VM with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md) to manage your SQL Server VM in the portal, as well as utilize features such as automated patching and automatic backups. If you bring your own license, you must have [License Mobility through Software Assurance on Azure](https://azure.microsoft.com/pricing/license-mobility/). For more information, see [Pricing guidance for SQL Server Azure VMs](pricing-guidance.md).
- question: |
How can I migrate my on-premises SQL Server database to the cloud?
answer: |
First create an Azure virtual machine with a SQL Server instance. Then migrate your on-premises databases to that instance. For data migration strategies, see [Migration guide: SQL Server to SQL Server on Azure Virtual Machines](../../migration-guides/virtual-machines/sql-server-to-sql-on-azure-vm-individual-databases-guide.md).
- question: |
Can I use Azure Virtual Machine Scale Sets with SQL Server on Azure VMs?
answer: |
No. Using [Azure Virtual Machine Scale Sets](/azure/virtual-machine-scale-sets/overview) is not supported with SQL Server on Azure VMs. Additionally, enabling the [Automatic guest patching feature](/azure/virtual-machines/automatic-vm-guest-patching) can lead to potential corruption, data loss, and availability issues.
- question: |
My SQL Server is failing to install on an Azure VM with the error `Could not find the Database Engine startup handle.`. What should I do?
answer: |
This is likely because your disk drive is configured with an 8-KB sector size which [isn't supported](/troubleshoot/sql/azure-sql/sql-installation-fails-sector-size-error-azure-vm). Reinstall SQL Server after you change the disk drive to a 4-KB sector size.
- name: Licensing
questions:
- question: |
How can I install my licensed copy of SQL Server on an Azure VM?
answer: |
There are three ways to do this. If you're an Enterprise Agreement (EA) customer, you can provision one of the [virtual machine images](sql-server-on-azure-vm-iaas-what-is-overview.md#licensing). If you have [Software Assurance](https://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-default), you can enable the [Azure Hybrid Benefit](licensing-model-azure-hybrid-benefit-ahb-change.md) on an existing pay-as-you-go (PAYG) image. Or you can copy the SQL Server installation media to a Windows Server VM, and then install SQL Server on the VM. Be sure to register your SQL Server VM with the [extension](sql-agent-extension-manually-register-single-vm.md) for features such as portal management, automated backup and automated patching.
- question: |
Does a customer need SQL Server Client Access Licenses (CALs) to connect to a SQL Server pay-as-you-go image that is running on Azure Virtual Machines?
answer: No. Customers need CALs when they use bring-your-own-license and move their SQL Server SA server / CAL VM to Azure VMs.
- question: |
Can I change a VM to use my own SQL Server license if it was created from one of the pay-as-you-go gallery images?
answer: |
Yes. You can easily switch a pay-as-you-go (PAYG) gallery image to bring-your-own-license (BYOL) by enabling the [Azure Hybrid Benefit](https://azure.microsoft.com/pricing/hybrid-benefit/faq/). For more information, see [How to change the licensing model for a SQL Server VM](licensing-model-azure-hybrid-benefit-ahb-change.md). Currently, this facility is only available for public and Azure Government cloud customers.
- question: |
Will switching licensing models require any downtime for SQL Server?
answer: |
No. [Changing the licensing model](licensing-model-azure-hybrid-benefit-ahb-change.md) doesn't require any downtime for SQL Server as the change is effective immediately and doesn't require a restart of the VM.
- question: |
Is it possible to switch licensing models on a SQL Server VM deployed using classic model?
answer: No. Changing licensing models isn't supported on a classic VM. You can migrate your VM to the Azure Resource Manager model and register with the SQL IaaS Agent extension. Once the VM is registered with the SQL IaaS Agent extension, licensing model changes are available on the VM.
- question: |
Can I use the Azure portal to manage multiple instances on the same VM?
answer: |
No. Through the SQL IaaS Agent extension, you can manage a single default instance, a single named instance, or, if the SQL Server VM has multiple instances, then one of those instances must be the default instance for it to be managed by the Azure portal. For more information on these limitations, see [SQL Server IaaS agent extension](sql-server-iaas-agent-extension-automate-management.md#multiple-instance-support).
- question: |
Can CSP subscriptions activate the Azure Hybrid Benefit?
answer: |
Yes, Azure Cloud Solution Provider (CSP) customers can use the Azure Hybrid Benefit by first deploying a pay-as-you-go VM and then converting it to [bring-your-own-license](licensing-model-azure-hybrid-benefit-ahb-change.md), if they have active Software Assurance.
- question: |
Do I have to pay to license SQL Server on an Azure VM if it's only being used for standby/failover?
answer: |
To have a free passive license for a standby secondary availability group or failover clustered instance, you must meet all of the following criteria as outlined by the [Product Licensing Terms](https://www.microsoft.com/licensing/product-licensing/products):
1. You have [license mobility](https://www.microsoft.com/licensing/licensing-programs/software-assurance-license-mobility?activetab=software-assurance-license-mobility-pivot:primaryr2) through [Software Assurance](https://www.microsoft.com/licensing/licensing-programs/software-assurance-default?activetab=software-assurance-default-pivot%3aprimaryr3).
1. The passive SQL Server instance doesn't serve SQL Server data to clients or run active SQL Server workloads. It's only used to synchronize with the primary server and otherwise maintain the passive database in a warm standby state. If it's serving data, such as reports to clients running active SQL Server workloads, or performing any work other than what is specified in the product terms, it must be a paid licensed SQL Server instance. The following activity is permitted on the secondary instance: database consistency checks or CheckDB, full backups, transaction log backups, and monitoring resource usage data. You can also run the primary and corresponding disaster recovery instance simultaneously for brief periods of disaster recovery testing every 90 days.
1. The active SQL Server license is covered by Software Assurance and allows for **one** passive secondary SQL Server instance, with up to the same amount of compute as the licensed active server, only.
1. The secondary SQL Server VM utilizes the [Disaster Recovery](business-continuity-high-availability-disaster-recovery-hadr-overview.md#free-dr-replica-in-azure) license in the Azure portal.
- question: |
What is considered a passive instance?
answer: |
The passive SQL Server instance doesn't serve SQL Server data to clients or run active SQL Server workloads. It's only used to synchronize with the primary server and otherwise maintain the passive database in a warm standby state. If it's serving data, such as reports to clients running active SQL Server workloads, or performing any work other than what is specified in the product terms, it must be a paid licensed SQL Server instance. The following activity is permitted on the secondary instance: database consistency checks or CheckDB, full backups, transaction log backups, and monitoring resource usage data. You can also run the primary and corresponding disaster recovery instance simultaneously for brief periods of disaster recovery testing every 90 days.
- question: |
What scenarios can utilize the Disaster Recovery (DR) benefit?
answer: |
The [SQL Server Licensing Guide](https://go.microsoft.com/fwlink/p/?linkid=2215573) provides scenarios in which the Disaster Recovery Benefit can be utilized. Refer to your Product Terms and talk to your licensing contacts or account manager for more information.
- question: |
Which subscriptions support the Disaster Recovery (DR) benefit?
answer: |
Comprehensive programs that offer Software Assurance equivalent subscription rights as a fixed benefit support the DR benefit. This includes, but isn't limited to, the Open Value (OV), Open Value Subscription (OVS), Enterprise Agreement (EA), Enterprise Agreement Subscription (EAS), and the Server and Cloud Enrollment (SCE). Refer to the [product terms](https://www.microsoft.com/licensing/product-licensing/products) and talk to your licensing contacts or account manager for more information.
- question: |
Why is my license type for my SQL VM 'Centrally Managed'?
answer: |
SQL Server VMs deployed to subscriptions with [Centrally managed Azure Hybrid Benefit](licensing-model-azure-hybrid-benefit-ahb-change.md#integration-with-centrally-managed-azure-hybrid-benefit) enabled show the license type as 'Centrally Managed'. This means that the Azure Hybrid Benefit is managed centrally by the organization's Enterprise Agreement (EA) or Microsoft Customer Agreement (MCA) administrator.
- question: |
Why do I see that my licenses are assigned at a scope level when I try to modify the license for my SQL Server VM?
answer: |
Changing the license type for individual SQL Server VMs deployed to subscriptions with [Centrally managed Azure Hybrid Benefit](licensing-model-azure-hybrid-benefit-ahb-change.md#integration-with-centrally-managed-azure-hybrid-benefit) isn't supported as the licensing is managed at the subscription level - a message displays such as `Your organization manages licenses assigned to Azure at a scope level such as Azure subscription instead of each individual resources.`
- name: Administration
questions:
- question: |
Can I install a second instance of SQL Server on the same VM? Can I change installed features of the default instance?
answer: |
Yes. The SQL Server installation media is located in a folder on the **C** drive. Run **Setup.exe** from that location to add new SQL Server instances or to change other installed features of SQL Server on the machine. Some features, such as Automated Backup, Automated Patching, and Azure Key Vault Integration, only operate against the default instance, or a named instance that was configured properly (See Question 3). Customers using [Software Assurance through the Azure Hybrid Benefit](licensing-model-azure-hybrid-benefit-ahb-change.md) or the **pay-as-you-go** licensing model can install multiple instances of SQL Server on the virtual machine without incurring extra licensing costs. Additional SQL Server instances can strain system resources unless configured correctly.
- question: |
What is the maximum number of instances on a VM?
answer: |
SQL Server 2012 to SQL Server 2019 can support [50 instances](/sql/sql-server/editions-and-components-of-sql-server-version-15#RDBMSSP) on a stand-alone server. This is the same limit regardless of in Azure on-premises. See [best practices](./performance-guidelines-best-practices-checklist.md) to learn how to better prepare your environment.
- question: |
Microsoft Visual C++ Redistributable installed with SQL Server is flagged as end of life or obsolete?
answer: |
When you provision SQL Server on Azure VM, the SQL Server setup program installs a Microsoft Visual C++ Redistributable, which is required for SQL Server components to run properly. Your security software might send alerts about end of life or obsolete software components due to the version of the Microsoft Visual C++ Redistributable components that were installed by SQL Server, particularly for older versions of SQL Server (SQL Server 2016 and earlier). According to the support lifecycle policy, Microsoft Visual C++ Redistributable components are supported [as long as the product that installed them is supported](/troubleshoot/sql/database-engine/install/windows/visual-c-redistributable-installed-sql-server-flagged-end-of-life-obsolete). As long as your installed version of SQL Server is still supported, you can safely ignore this warning. We recommend not removing VC++ as it can break some SQL Server functionality.
- question: |
Can I uninstall the default instance of SQL Server?
answer: |
Yes, but there are some considerations. First, SQL Server-associated billing may continue to occur depending on the license model for the VM. Second, as stated in the previous answer, there are features that rely on the [SQL Server IaaS Agent Extension](sql-server-iaas-agent-extension-automate-management.md). If you uninstall the default instance without also removing the IaaS Agent extension, the extension continues to look for the default instance and might generate event log errors from the following two sources: **Microsoft SQL Server Credential Management** and **Microsoft SQL Server IaaS Agent**. One of the errors might be similar to the following:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server wasn't found or wasn't accessible.
If you do decide to uninstall the default instance, also uninstall the [SQL Server IaaS Agent Extension](sql-server-iaas-agent-extension-automate-management.md) as well.
- question: |
Can I use a named instance of SQL Server with the IaaS extension?
answer: |
Yes, if the named instance is the only instance on the SQL Server, and if the original default instance was [uninstalled properly](sql-server-iaas-agent-extension-automate-management.md#named-instance-support). If there's no default instance, and there are multiple named instances on a single SQL Server VM, the SQL Server IaaS agent extension fails to install.
- question: |
Can I remove SQL Server and the associated license billing from a SQL Server VM?
answer: |
Yes, but you need to take additional steps to avoid being charged for your SQL Server instance as described in [Pricing guidance](pricing-guidance.md). If you want to completely remove the SQL Server instance, you can migrate to another Azure VM without SQL Server preinstalled on the VM and delete the current SQL Server VM. If you want to keep the VM but stop SQL Server billing, follow these steps:
1. Back up all of your data, including system databases, if necessary.
1. Uninstall SQL Server completely, including the SQL IaaS Agent extension (if present).
1. Install the free [SQL Express edition](https://www.microsoft.com/sql-server/sql-server-downloads).
1. Register with the SQL IaaS Agent extension.
1. [Change the edition of SQL Server](change-sql-server-edition.md#change-edition-property-for-billing) in the [Azure portal](https://portal.azure.com) to Express to stop billing.
1. (Optional) Disable the Express SQL Server service by disabling service startup.
- question: |
Can I use the Azure portal to manage multiple instances on the same VM?
answer: |
No. Portal management is provided by the SQL IaaS Agent extension, which relies on the SQL Server IaaS Agent extension. As such, the same limitations apply to the portal as the extension. The portal can either only manage one default instance, or one named instance as long as it's configured correctly. For more information, see [SQL Server IaaS Agent extension](sql-server-iaas-agent-extension-automate-management.md)
- question: |
Is Microsoft Entra Domain Services supported with SQL Server on Azure VMs?
answer: |
No. Using Microsoft Entra Domain Services isn't currently supported with SQL Server on Azure VMs. Use an Active Directory domain account instead.
- question: |
Are SQL Server on Azure VMs FIPS compliant?
answer: |
To be [FIPS compliant](security-considerations-best-practices.md#fips-compliance) with SQL Server on Azure VMs, you should be on Windows Server 2022, which has FIPS enabled by default. Windows Server 2019 can also be FIPS compliant if FIPS is manually enabled using the policy specified in Security Technical Implementation Guide (STIG) finding V-93511.
- name: Updating and patching
questions:
- question: |
How do I change to a different version/edition of SQL Server in an Azure VM?
answer: |
Customers can change their version/edition of SQL Server by using setup media that contains their desired version or edition of SQL Server. Once the edition has been changed, use the Azure portal to modify the edition property of the VM to accurately reflect billing for the VM. For more information, see [change edition of a SQL Server VM](change-sql-server-edition.md). There's no billing difference for different versions of SQL Server, so once the version of SQL Server has been changed, no further action is needed.
- question: |
How do I get the SQL Server installation media?
answer: |
For SQL Server VMs deployed through Azure Marketplace, the installation media is located at `C:\SQLServerFull`. You can run `Setup.exe` from that location to add new SQL Server instances or to change other installed features of SQL Server on the machine. You can also copy this setup media to other virtual machines to install, or upgrade, that same version, and edition of SQL Server. Customers who have [Software Assurance](https://www.microsoft.com/licensing/licensing-programs/software-assurance-default) can obtain their installation media from the [Volume Licensing Center](https://www.microsoft.com/Licensing/servicecenter/default.aspx).
- question: |
How do I install SQL Server for pay-as-you-go licensing to an existing Azure VM?
answer: |
To install SQL Server with pay-as-you-go (PAYG) licensing to an existing Azure VM, use installation media from an existing SQL Server VM that has the desired edition. Deploy a new SQL Server VM from the Azure Marketplace if you don't already have a SQL Server VM with the desired edition. Copy the folder `C:\SQLServerFull` from the existing VM to your target VM, then install SQL Server from the copied folder to avoid potential issues related to product license keys. After SQL Server is installed, [Register with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md#register-with-extension) and [validate the edition](change-sql-server-edition.md#change-edition-property-for-billing) of SQL Server used for billing in the Azure portal. Be sure to delete the SQL Server VM that was used to copy the installation media to avoid billing for the unused VM.
- question: |
How are updates and service packs applied on a SQL Server VM?
answer: |
Virtual machines give you control over the host machine, including when and how you apply updates. For the operating system, you can manually apply windows updates, or you can enable a scheduling service called [Automated Patching](automated-patching.md). Automated Patching installs any updates that are marked important, including SQL Server updates in that category. Other optional updates to SQL Server must be installed manually.
- question: |
Can I upgrade my SQL Server instance after registering it with the SQL IaaS Agent extension?
answer: |
If the OS is Windows Server 2008 R2 or later, yes. You can use any setup media to upgrade the version and edition of SQL Server, and then you can [register with the SQL IaaS Agent extension](sql-agent-extension-manually-register-single-vm.md#register-with-extension). Doing so gives you access to all the [benefits](sql-server-iaas-agent-extension-automate-management.md#feature-benefits) of the SQL IaaS Agent extension such as portal manageability, automated backups, and automated patching. If the OS version is Windows Server 2008, the extension is only supported with limited functionality.
- question: |
How can I get free extended security updates for my end of support instances?
answer: |
You can get [free extended security updates](sql-server-extend-end-of-support.md) by moving your SQL Server as-is to an Azure virtual machine. Updates are available through the Windows Update channel. For more information, see [end of support options](/sql/sql-server/end-of-support/sql-server-end-of-support-overview).
- name: General
questions:
- question: |
Are SQL Server failover cluster instances (FCI) supported on Azure VMs?
answer: |
Yes. You can configure a [failover cluster instance](failover-cluster-instance-overview.md) using [Azure shared disks](failover-cluster-instance-azure-shared-disks-manually-configure.md), [premium file shares (PFS)](failover-cluster-instance-premium-file-share-manually-configure.md), or [storage spaces direct (S2D)](failover-cluster-instance-storage-spaces-direct-manually-configure.md) for the storage subsystem. Premium file shares provide IOPS and throughput capacities that meet the needs of many workloads. For IO-intensive workloads, consider using storage spaces direct based on managed premium or ultra-disks. Alternatively, you can use third-party clustering or storage solutions as described in [High availability and disaster recovery for SQL Server on Azure Virtual Machines](business-continuity-high-availability-disaster-recovery-hadr-overview.md#failover-cluster-instances-ha).
> [!IMPORTANT]
> SQL Server FCIs registered with the extension don't support features that require the agent, such as automated backup, patching, and advanced portal management. Review [feature benefits](sql-server-iaas-agent-extension-automate-management.md#feature-benefits) to learn more.
- question: |
What is the difference between SQL Server VMs and the SQL Database service?
answer: |
Conceptually, running SQL Server on an Azure virtual machine isn't that different from running SQL Server in a remote datacenter. In contrast, [Azure SQL Database](../../database/sql-database-paas-overview.md) offers database-as-a-service. With SQL Database, you don't have access to the machines that host your databases. For a full comparison, see [Choose a cloud SQL Server option: Azure SQL (PaaS) Database or SQL Server on Azure VMs (IaaS)](../../azure-sql-iaas-vs-paas-what-is-overview.md).
- question: |
How do I install SQL Data tools on my Azure VM?
answer: |
Download and install the SQL Data tools from [Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2013](https://www.microsoft.com/download/details.aspx?id=42313).
- question: |
Are distributed transactions with MSDTC supported on SQL Server VMs?
answer: Yes. Local DTC is supported for SQL Server 2016 SP2 and greater. However, applications must be tested when utilizing Always On availability groups, as transactions in-flight during a failover fail and must be retried. Clustered DTC is available starting with Windows Server 2019.
- question: |
Does Azure SQL virtual machine move or store customer data out of region?
answer: No. In fact, Azure SQL virtual machine and the SQL IaaS Agent extension don't store any customer data. Review the [SQL IaaS Agent extension privacy statements](sql-server-iaas-agent-extension-automate-management.md#in-region-data-residency) to learn more.
- question: |
What Azure Load Balancer SKU should be used for a cross-cluster migration of an availability group?
answer: To perform a [cross-cluster migration of an availability group](http://download.microsoft.com/download/d/2/0/d20e1c5f-72ea-4505-9f26-fef9550efd44/alwayson%20ag%20os%20upgrade.docx) on SQL Server on Azure VMs, use the standard [Azure Load Balancer SKU](/azure/load-balancer/skus).
- question: |
Can I use Azure premium file share to host my database files on a standalone instance of SQL Server?
answer: Yes. Azure premium file shares are supported for both failover cluster instances and standalone instances of SQL Server using the [SMB protocol](/sql/database-engine/install-windows/install-sql-server-with-smb-fileshare-as-a-storage-option).
- question: |
Can I use Premium SSD v2 with my SQL Server on Azure VMs?
answer: Yes, for specific virtual machines in supported regions. Review [Premium SSDv2 with SQL Server on Azure VMs](storage-configuration-premium-ssd-v2.md) to learn more. If you would like to use Premium SSD v2 with a virtual machine type or region that isn't in the list, you might be able to do so by first deploying the VM, and then adding the Premium SSD v2 drives after the VM is created.
- question: |
Why do I see "Not extendable" when I try to make changes to my storage in the SQL virtual machines resource?
answer: Storage is only extendable for SQL Server VMs that were deployed from a SQL Server image in Azure Marketplace, and not currently supported for [Premium SSD v2](storage-configuration-premium-ssd-v2.md#adjust-performance-values) disks.
- name: SQL Server IaaS Agent extension
questions:
- question: |
Should I register my SQL Server VM provisioned from a SQL Server image in Azure Marketplace?
answer: No. Microsoft automatically registers VMs provisioned from the SQL Server images in Azure Marketplace. Registering with the extension is required only if the VM was *not* provisioned from the SQL Server images in Azure Marketplace and SQL Server was self-installed.
- question: |
Is the SQL IaaS Agent extension available for all customers?
answer: Yes. Customers should register their SQL Server VMs with the extension if they didn't use a SQL Server image from Azure Marketplace and instead self-installed SQL Server, or if they brought their custom VHD. VMs owned by all types of subscriptions (Direct, Enterprise Agreement, and Cloud Solution Provider) can register with the SQL IaaS Agent extension.
- question: |
What are the prerequisites to register with the SQL IaaS Agent extension?
answer: Check the [prerequisites](sql-agent-extension-manually-register-single-vm.md#prerequisites) for details.
- question: |
What Azure permissions are necessary to register with the extension?
answer: The client credentials used to register the virtual machine should exist in any of the following Azure roles - **Virtual Machine contributor**, **Contributor**, or **Owner**.
- question: |
Will registering with the SQL IaaS Agent extension install an agent on my VM?
answer: |
Not initially. When you first register with the SQL IaaS Agent extension, binaries are copied to the SQL Server VM providing you with limited functionality. Once you enable a feature that relies on it, the SQL IaaS Agent is installed to the VM. Check the [table of benefits](sql-server-iaas-agent-extension-automate-management.md#feature-benefits) for information about limited functionality.
- question: |
What permissions does the SQL Server IaaS agent extension use?
answer: October 2022 introduced the least privilege permissions model for the extension, granting minimal permissions necessary for each feature used by the extension. SQL Server VMs deployed after October 2022 via Azure Marketplace have the least privilege permissions model enabled by default. The extension uses sysadmin rights for SQL Server VMs that were deployed prior to October 2022, or self-installed SQL Server VMs that haven't manually enabled the least privilege model in the Azure portal. Review [SQL IaaS Agent extension permissions](sql-server-iaas-agent-extension-automate-management.md#permissions-models) to learn more.
- question: |
Why do I see SQL virtual machines resource in the Azure portal? Who created it? Do I get billed for this?
answer: The [SQL virtual machines resource](manage-sql-vm-portal.md) is a free resource that allows you to manage your SQL Server VM from the Azure portal. The SQL virtual machines resource is created when you deploy a SQL Server VM image from Azure Marketplace, or manually register a SQL Server VM with the [SQL IaaS Agent extension](sql-server-iaas-agent-extension-automate-management.md). Azure can also create this resource automatically for existing VMs if a SQL Server instance is detected. There's no cost associated with SQL virtual machines resource.
- question: |
Will registering with the SQL IaaS Agent extension restart SQL Server on my VM?
answer: No, starting September 2021, restarting the SQL Server service is no longer required when registering with the [SQL IaaS Agent extension](sql-server-iaas-agent-extension-automate-management.md).
- question: |
Can I register with the SQL IaaS Agent extension without specifying the SQL Server license type?
answer: No. The SQL Server license type isn't an optional property when you're registering with the SQL IaaS Agent extension. You have to set the SQL Server license type as pay-as-you-go or Azure Hybrid Benefit when registering with the SQL IaaS Agent extension. If you have any of the free versions of SQL Server installed, such as Developer or Evaluation edition, you must register with pay-as-you-go licensing. Azure Hybrid Benefit is only available for paid versions of SQL Server such as Enterprise and Standard editions.
- question: |
What is the default license type when using the automatic registration feature?
answer: The license type automatically defaults to that of the VM image. If you use a pay-as-you-go image for your VM, then your license type is `PAYG`, otherwise your license type is `AHUB` by default.
- question: |
Is it possible to register self-deployed SQL Server VMs with the SQL IaaS Agent extension?
answer: |
Yes. If you deployed SQL Server from your own media, and installed the SQL IaaS Agent extension you can register your SQL Server VM with the extension to get the manageability benefits provided by the SQL IaaS Agent extension.
- question: |
Is it possible to repair the SQL IaaS Agent extension?
answer: |
Yes. Navigate to the **SQL virtual machines** resource for your SQL Server VM, and choose **Repair** under **Support & troubleshooting** to open the [repair](sql-agent-extension-troubleshoot-known-issues.md#repair-extension) page and repair the extension.
- question: |
Can I register with the SQL IaaS Agent extension from the Azure portal?
answer: No. Registering a single VM with the SQL IaaS Agent extension isn't available in the Azure portal. Registering with the SQL IaaS Agent extension is only supported with the Azure CLI or Azure PowerShell.
- question: |
Can I register a VM with the SQL IaaS Agent extension before SQL Server is installed?
answer: No. A VM must have at least one SQL Server (Database Engine) instance to successfully register with the SQL IaaS Agent extension. If there's no SQL Server instance on the VM, the new Microsoft.SqlVirtualMachine resource is in a failed state.
- question: |
Can I register a VM with the SQL IaaS Agent extension if there are multiple SQL Server instances?
answer: Yes, provided there's a default instance on the VM. The SQL IaaS Agent extension registers only one SQL Server (Database Engine) instance. The SQL IaaS Agent extension registers the default SQL Server instance in the case of multiple instances.
- question: |
Can I register a SQL Server failover cluster instance with the SQL IaaS Agent extension?
answer: Yes. SQL Server failover cluster instances on an Azure VM can be registered with the SQL IaaS Agent extension with [limited functionality](sql-server-iaas-agent-extension-automate-management.md#feature-benefits).
- question: |
Can I register my VM with the SQL IaaS Agent extension if an Always On availability group is configured?
answer: Yes. There are no restrictions to registering a SQL Server instance on an Azure VM with the SQL IaaS Agent extension if you're participating in an Always On availability group configuration.
- question: |
What is the cost for registering with the SQL IaaS Agent extension?
answer: None. There's no fee associated with registering with the SQL IaaS Agent extension. Managing your SQL Server VM with the extension is free.
- question: |
What is the performance impact of using SQL IaaS Agent extension?
answer: |
Once you enable a feature that requires installing the agent, there's minimal impact from the two services that are installed to the OS. These can be monitored via task manager and seen in the built-in Windows Services console.
The two service names are:
- `SQLIaaSExtension` (Display name - `Microsoft SQL Server IaaS Agent`)
- `SqlIaaSExtensionQuery` (Display name - `Microsoft SQL Server IaaS Query Service`)
- question: |
How do I remove the extension?
answer: |
Remove the extension by [deleting the extension](sql-agent-extension-manually-register-single-vm.md#delete-the-extension) from the SQL Server VM
- question: |
Will registering my VM with the new SQL IaaS Agent extension bring additional costs?
answer: No. The SQL IaaS Agent extension just enables additional manageability for SQL Server on Azure VM with no additional charges.
- question: |
Is the SQL IaaS Agent extension available for all customers?
answer: |
Yes, as long as the SQL Server VM was deployed on the public cloud using the Resource Manager model, and not the classic model. All other customers are able to register with the new SQL IaaS Agent extension. However, only customers with the [Software Assurance](https://www.microsoft.com/licensing/licensing-programs/software-assurance-default?activetab=software-assurance-default-pivot%3aprimaryr3) benefit can use their own license by activating the [Azure Hybrid Benefit (AHB)](https://azure.microsoft.com/pricing/hybrid-benefit/) on a SQL Server VM.
- question: |
What happens to the extension ('Microsoft.SqlVirtualMachine') resource if the VM resource is moved or dropped?
answer: When the Microsoft.Compute/VirtualMachine resource is dropped or moved, then the associated Microsoft.SqlVirtualMachine resource is notified to asynchronously replicate the operation.
- question: |
What happens to the VM if the extension ('Microsoft.SqlVirtualMachine') resource is dropped?
answer: The Microsoft.Compute/VirtualMachine resource isn't impacted when the Microsoft.SqlVirtualMachine resource is dropped. However, the licensing changes default back to the original image source.
- question: |
Is the extension necessary to receive Extended Security Updates (ESU)?
answer: No. [Extended Security Updates (ESU)](/sql/sql-server/end-of-support/sql-server-extended-security-updates) are applied automatically to the VM whether or not your SQL Server VM has registered with the SQL IaaS Agent extension.
- question: |
What happened to management modes of the SQL IaaS Agent extension?
answer: Management modes were removed from the SQL IaaS Agent extension architecture. Starting in March 2023, registering with the SQL IaaS Agent extension initially just copies the binaries to the SQL Server VM and offers [limited functionality](sql-server-iaas-agent-extension-automate-management.md#feature-benefits). Once you enable a feature that relies on it, the SQL IaaS Agent is installed to the SQL Server VM.
- question: |
Can I register my virtual machine image if I'm using Reporting Services, Power BI Report Server, or Analysis Services?
answer: No. The SQL IaaS Agent extension isn't supported with the following images - SQL Server Reporting Services, SQL Server Power BI Report Server, SQL Server Analysis Services.
additionalContent: |
## Resources
**Windows VMs**:
* [Overview of SQL Server on Windows VMs](sql-server-on-azure-vm-iaas-what-is-overview.md)
* [Provision SQL Server on Windows VMs](create-sql-vm-portal.md)
* [Migration guide: SQL Server to SQL Server on Azure Virtual Machines](../../migration-guides/virtual-machines/sql-server-to-sql-on-azure-vm-individual-databases-guide.md)
* [High Availability and Disaster Recovery for SQL Server on Azure Virtual Machines](business-continuity-high-availability-disaster-recovery-hadr-overview.md)
* [Performance best practices for SQL Server on Azure Virtual Machines](./performance-guidelines-best-practices-checklist.md)
* [Application Patterns and Development Strategies for SQL Server on Azure Virtual Machines](application-patterns-development-strategies.md)
**Linux VMs**:
* [Overview of SQL Server on a Linux VM](../linux/sql-server-on-linux-vm-what-is-iaas-overview.md)
* [Provision SQL Server on a Linux VM](../linux/sql-vm-create-portal-quickstart.md)
* [FAQ (Linux)](../linux/frequently-asked-questions-faq.yml)
* [SQL Server on Linux documentation](/sql/linux/sql-server-linux-overview)