Skip to content

Commit 1c149bc

Browse files
Merge pull request #221926 from MashaMSFT/202212_dms
moving things around to emphasize ADS version of DMS
2 parents 4def974 + 9425342 commit 1c149bc

14 files changed

+178
-87
lines changed

articles/dms/dms-overview.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.reviewer: craigg
99
ms.service: dms
1010
ms.workload: data-services
1111
ms.topic: overview
12-
ms.date: 09/28/2021
12+
ms.date: 01/05/2023
1313
---
1414
# What is Azure Database Migration Service?
1515

@@ -32,6 +32,8 @@ For up-to-date info about the regional availability of Azure Database Migration
3232

3333
For up-to-date info about Azure Database Migration Service pricing, see [Azure Database Migration Service pricing](https://azure.microsoft.com/pricing/details/database-migration/).
3434

35+
36+
3537
## Next steps
3638

3739
* [Status of migration scenarios supported by Azure Database Migration Service](./resource-scenario-status.md)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
author: MashaMSFT
3+
ms.service: dms
4+
ms.topic: include
5+
ms.date: 12/19/2022
6+
ms.author: mathoma
7+
---
8+
9+
Azure SQL Database offline migration utilizes Azure Data Factory (ADF) pipelines for data movement and thus abides by ADF limitations. A corresponding ADF is created when a database migration service is also created. Thus factory limits apply per service.
10+
11+
- The machine where the SHIR is installed acts as the compute for migration. Make sure this machine can handle the cpu and memory load of the data copy. To learn more, review [SHIR recommendations](/azure/data-factory/create-self-hosted-integration-runtime).
12+
- 100,000 table per database limit.
13+
- 10,000 concurrent database migrations per service.
14+
- Migration speed heavily depends on the target Azure SQL Database SKU and the self-hosted Integration Runtime host.
15+
- Azure SQL Database migration scales poorly with table numbers due to ADF overhead in starting activities. If a database has thousands of tables, there will be a couple of seconds of startup time for each, even if they're composed of one row with 1 bit of data.
16+
- Azure SQL Database table names with double byte characters currently aren't supported for migration. Mitigation is to rename tables before migration; they can be changed back to their original names after successful migration.
17+
- Tables with large blob columns may fail to migrate due to timeout.
18+
- Database names with SQL Server reserved are currently not supported.
19+
- Database names that include semicolons are currently not supported.
20+
- Computed columns do not get migrated.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
author: MashaMSFT
3+
ms.service: dms
4+
ms.topic: include
5+
ms.date: 12/19/2022
6+
ms.author: mathoma
7+
---
8+
9+
- If migrating a single database, the database backups must be placed in a flat-file structure inside a database folder (including container root folder), and the folders can't be nested, as it's not supported.
10+
- If migrating multiple databases using the same Azure Blob Storage container, you must place backup files for different databases in separate folders inside the container.
11+
- Overwriting existing databases using DMS in your target Azure SQL Managed Instance isn't supported.
12+
- Configuring high availability and disaster recovery on your target to match source topology isn't supported by DMS.
13+
- The following server objects aren't supported:
14+
- Logins
15+
- SQL Server Agent jobs
16+
- Credentials
17+
- SSIS packages
18+
- Server roles
19+
- Server audit
20+
- You can't use an existing self-hosted integration runtime created from Azure Data Factory for database migrations with DMS. Initially, the self-hosted integration runtime should be created using the Azure SQL migration extension in Azure Data Studio and can be reused for further database migrations.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
author: MashaMSFT
3+
ms.service: dms
4+
ms.topic: include
5+
ms.date: 12/19/2022
6+
ms.author: mathoma
7+
---
8+
9+
- If migrating a single database, the database backups must be placed in a flat-file structure inside a database folder (including container root folder), and the folders can't be nested, as it's not supported.
10+
- If migrating multiple databases using the same Azure Blob Storage container, you must place backup files for different databases in separate folders inside the container.
11+
- Overwriting existing databases using DMS in your target SQL Server on Azure Virtual Machine isn't supported.
12+
- Configuring high availability and disaster recovery on your target to match source topology isn't supported by DMS.
13+
- The following server objects aren't supported:
14+
- Logins
15+
- SQL Server Agent jobs
16+
- Credentials
17+
- SSIS packages
18+
- Server roles
19+
- Server audit
20+
21+
- You can't use an existing self-hosted integration runtime created from Azure Data Factory for database migrations with DMS. Initially, the self-hosted integration runtime should be created using the Azure SQL migration extension in Azure Data Studio and can be reused for further database migrations.
22+
- VM with SQL Server 2008 and below as target versions aren't supported when migrating to SQL Server on Azure Virtual Machines.
23+
- If you're using VM with SQL Server 2012 or SQL Server 2014, you need to store your source database backup files on an Azure Storage Blob Container instead of using the network share option. Store the backup files as page blobs since block blobs are only supported in SQL 2016 and after.
24+
- You must make sure the SQL IaaS Agent Extension in the target Azure Virtual Machine is in Full mode instead of Lightweight mode.
25+
- SQL IaaS Agent Extension only supports management of Default Server Server Instance or Single Named Instance,
26+
- There is a temporary limit of 80 databases per target Azure Virtual Machine. A workaround to break the limit (reset the counter) is to Uninstall and Reinstall SQL IaaS Agent Extension in the target Azure Virtual Machine.
27+
- Apart from configuring the Networking/Firewall of your Storage Account to allow your VM to access backup files, you also need to configure Networking/Firewall of your VM to allow outbound connection to your storage account.

articles/dms/known-issues-azure-sql-migration-azure-data-studio.md

Lines changed: 42 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,27 @@ ms.service: dms
1111
ms.workload: data-services
1212
ms.custom: "seo-lt-2019"
1313
ms.topic: troubleshooting
14-
ms.date: 10/19/2022
14+
ms.date: 01/05/2023
1515
---
1616

1717
# Known issues, limitations, and troubleshooting
1818

19-
Known issues and limitations associated with the Azure SQL Migration extension for Azure Data Studio.
19+
Known issues and troubleshooting steps associated with the Azure SQL Migration extension for Azure Data Studio.
2020

2121
> [!NOTE]
2222
> When checking migration details using the Azure Portal, Azure Data Studio or PowerShell / Azure CLI you might see the following error: *Operation Id {your operation id} was not found*. This can either be because you provided an operationId as part of an api parameter in your get call that does not exist, or the migration details of your migration were deleted as part of a cleanup operation.
2323
2424

25-
### Error code: 2007 - CutoverFailedOrCancelled
25+
## Error code: 2007 - CutoverFailedOrCancelled
26+
2627
- **Message**: `Cutover failed or cancelled for database <DatabaseName>. Error details: The restore plan is broken because firstLsn <First LSN> of log backup <URL of backup in Azure Storage container>' is not <= lastLsn <last LSN> of Full backup <URL of backup in Azure Storage container>'. Restore to point in time.`
2728

2829
- **Cause**: The error might occur due to the backups being placed incorrectly in the Azure Storage container. If the backups are placed in the network file share, this error could also occur due to network connectivity issues.
2930

3031
- **Recommendation**: Ensure the database backups in your Azure Storage container are correct. If you're using network file share, there might be network-related issues and lags that are causing this error. Wait for the process to be completed.
3132

32-
### Error code: 2009 - MigrationRestoreFailed
33+
## Error code: 2009 - MigrationRestoreFailed
34+
3335
- **Message**: `Migration for Database 'DatabaseName' failed with error cannot find server certificate with thumbprint.`
3436

3537
- **Cause**: The source SQL Server instance certificate from a database protected by Transparent Data Encryption (TDE) hasn't been migrated to the target Azure SQL Managed Instance or SQL Server on Azure Virtual Machine before migrating data.
@@ -88,7 +90,8 @@ Known issues and limitations associated with the Azure SQL Migration extension f
8890
> [!NOTE]
8991
> For more information on general troubleshooting steps for Azure SQL Managed Instance errors, see [Known issues with Azure SQL Managed Instance](/azure/azure-sql/managed-instance/doc-changes-updates-known-issues)
9092
91-
### Error code: 2012 - TestConnectionFailed
93+
## Error code: 2012 - TestConnectionFailed
94+
9295
- **Message**: `Failed to test connections using provided Integration Runtime. Error details: 'Remote name could not be resolved.'`
9396

9497
- **Cause**: The Self-Hosted Integration Runtime can't connect to the service back end. This issue is caused by network settings in the firewall.
@@ -114,55 +117,62 @@ Known issues and limitations associated with the Azure SQL Migration extension f
114117
- **Recommendation**: See [Troubleshoot Self-Hosted Integration Runtime](../data-factory/self-hosted-integration-runtime-troubleshoot-guide.md) for general troubleshooting steps for Integration Runtime connectivity errors.
115118

116119

117-
### Error code: 2014 - IntegrationRuntimeIsNotOnline
120+
## Error code: 2014 - IntegrationRuntimeIsNotOnline
121+
118122
- **Message**: `Integration Runtime <IR Name> in resource group <Resource Group Name> Subscription <SubscriptionID> isn't online.`
119123

120124
- **Cause**: The Self-Hosted Integration Runtime isn't online.
121125

122126
- **Recommendation**: Make sure the Self-hosted Integration Runtime is registered and online. To perform the registration, you can use scripts from [Automating self-hosted integration runtime installation using local PowerShell scripts](../data-factory/self-hosted-integration-runtime-automation-scripts.md). Also, see [Troubleshoot self-hosted integration runtime](../data-factory/self-hosted-integration-runtime-troubleshoot-guide.md) for general troubleshooting steps for Integration Runtime connectivity errors.
123127

124128

125-
### Error code: 2030 - AzureSQLManagedInstanceNotReady
129+
## Error code: 2030 - AzureSQLManagedInstanceNotReady
130+
126131
- **Message**: `Azure SQL Managed Instance <Instance Name> isn't ready.`
127132

128133
- **Cause**: Azure SQL Managed Instance not in ready state.
129134

130135
- **Recommendation**: Wait until the Azure SQL Managed Instance has finished deploying and is ready, then retry the process.
131136

132137

133-
### Error code: 2033 - SqlDataCopyFailed
138+
## Error code: 2033 - SqlDataCopyFailed
139+
134140
- **Message**: `Migration for Database <Database> failed in state <state>.`
135141

136142
- **Cause**: ADF pipeline for data movement failed.
137143

138144
- **Recommendation**: Check the MigrationStatusDetails page for more detailed error information.
139145

140146

141-
### Error code: 2038 - MigrationCompletedDuringCancel
147+
## Error code: 2038 - MigrationCompletedDuringCancel
148+
142149
- **Message**: `Migration cannot be canceled as Migration was completed during the cancel process. Target server: <Target server> Target database: <Target database>.`
143150

144151
- **Cause**: A cancellation request was received, but the migration was completed successfully before the cancellation was completed.
145152

146153
- **Recommendation**: No action required migration succeeded.
147154

148155

149-
### Error code: 2039 - MigrationRetryNotAllowed
156+
## Error code: 2039 - MigrationRetryNotAllowed
157+
150158
- **Message**: `Migration isn't in a retriable state. Migration must be in state WaitForRetry. Current state: <State>, Target server: <Target Server>, Target database: <Target database>.`
151159

152160
- **Cause**: A retry request was received when the migration wasn't in a state allowing retrying.
153161

154162
- **Recommendation**: No action required migration is ongoing or completed.
155163

156164

157-
### Error code: 2040 - MigrationTimeoutWaitingForRetry
165+
## Error code: 2040 - MigrationTimeoutWaitingForRetry
166+
158167
- **Message**: `Migration retry timeout limit of 8 hours reached. Target server: <Target Server>, Target database: <Target Database>.`
159168

160169
- **Cause**: Migration was idle in a failed, but retrievable state for 8 hours and was automatically canceled.
161170

162171
- **Recommendation**: No action is required; the migration was canceled.
163172

164173

165-
### Error code: 2041 - DataCopyCompletedDuringCancel
174+
## Error code: 2041 - DataCopyCompletedDuringCancel
175+
166176
- **Message**: `Data copy finished successfully before canceling completed. Target schema is in bad state. Target server: <Target Server>, Target database: <Target Database>.`
167177

168178
- **Cause**: Cancel request was received, and the data copy was completed successfully, but the target database schema hasn't been returned to its original state.
@@ -178,7 +188,8 @@ WHERE STEP in (5,7,8) ORDER BY STEP DESC;
178188
```
179189

180190

181-
### Error code: 2042 - PreCopyStepsCompletedDuringCancel
191+
## Error code: 2042 - PreCopyStepsCompletedDuringCancel
192+
182193
- **Message**: `Pre Copy steps finished successfully before canceling completed. Target database Foreign keys and temporal tables have been altered. Schema migration may be required again for future migrations. Target server: <Target Server>, Target database: <Target Database>.`
183194

184195
- **Cause**: Cancel request was received and the steps to prepare the target database for copy were completed successfully. The target database schema hasn't been returned to its original state.
@@ -191,67 +202,31 @@ WHERE STEP in (3,4,6);
191202
```
192203

193204

194-
### Error code: 2043 - CreateContainerFailed
205+
## Error code: 2043 - CreateContainerFailed
206+
195207
- **Message**: `Create container <ContainerName> failed with error Error calling the endpoint '<URL>'. Response status code: 'NA - Unknown'. More details: Exception message: 'NA - Unknown [ClientSideException] Invalid Url:<URL>.`
196208

197209
- **Cause**: The request failed due to an underlying issue such as network connectivity, a DNS failure, a server certificate validation, or a timeout.
198210

199211
- **Recommendation**: For more troubleshooting steps, see [Troubleshoot Azure Data Factory and Synapse pipelines](../data-factory/data-factory-troubleshoot-guide.md#error-code-2108).
200212

213+
## Azure SQL Database limitations
214+
215+
Migrating to Azure SQL Database by using the Azure SQL extension for Azure Data Studio has the following limitations:
216+
217+
[!INCLUDE [sql-db-limitations](includes/sql-database-limitations.md)]
218+
219+
## Azure SQL Managed Instance limitations
220+
221+
Migrating to Azure SQL Managed Instance by using the Azure SQL extension for Azure Data Studio has the following limitations:
222+
223+
[!INCLUDE [sql-mi-limitations](includes/sql-managed-instance-limitations.md)]
224+
225+
## SQL Server on Azure VMs limitations
226+
227+
Migrating to SQL Server on Azure VMs by using the Azure SQL extension for Azure Data Studio has the following limitations:
201228

202-
## Database Migration Service issues
203-
Migrations that were completed before early December 2022 may be missing migration details. This action doesn't have a negative effect on new or ongoing migrations.
204-
205-
## Azure SQL Database Migration limitations
206-
207-
The Azure SQL Database offline migration (Preview) utilizes Azure Data Factory (ADF) pipelines for data movement and thus abides by ADF limitations. A corresponding ADF is created when a database migration service is also created. Thus factory limits apply per service.
208-
The machine where the SHIR is installed acts as the compute for migration. Make sure this machine can handle the cpu and memory load of the data copy. To learn more, review [SHIR recommendations](../data-factory/create-self-hosted-integration-runtime.md).
209-
- 100,000 table per database limit.
210-
- 10,000 concurrent database migrations per service.
211-
- Migration speed heavily depends on the target Azure SQL Database SKU and the self-hosted Integration Runtime host.
212-
- Azure SQL Database migration scales poorly with table numbers due to ADF overhead in starting activities. If a database has thousands of tables, there will be a couple of seconds of startup time for each, even if they're composed of one row with 1 bit of data.
213-
- Azure SQL Database table names with double-byte characters currently aren't supported for migration. Mitigation is to rename tables before migration; they can be changed back to their original names after successful migration.
214-
- Tables with large blob columns may fail to migrate due to timeout.
215-
- Database names with SQL Server reserved are currently not supported.
216-
- Database names that include semicolons are currently not supported.
217-
- Computed columns don't get migrated.
218-
219-
## Azure SQL Managed Instance known issues and limitations
220-
221-
- If migrating a single database, the database backups must be placed in a flat-file structure inside a database folder (including the container root folder), and the folders can't be nested, as it's not supported.
222-
- If migrating multiple databases using the same Azure Blob Storage container, you must place backup files for different databases in separate folders inside the container.
223-
- Overwriting existing databases using DMS in your target Azure SQL Managed Instance isn't supported.
224-
- Configuring high availability and disaster recovery on your target to match source topology isn't supported by DMS.
225-
- The following server objects aren't supported:
226-
- Logins
227-
- SQL Server Agent jobs
228-
- Credentials
229-
- SSIS packages
230-
- Server roles
231-
- Server audit
232-
- You can't use an existing self-hosted integration runtime created from Azure Data Factory for database migrations with DMS. Initially, the self-hosted integration runtime should be created using the Azure SQL migration extension in Azure Data Studio and can be reused for further database migrations.
233-
234-
## SQL Server on Azure Virtual Machine known issues and limitations
235-
236-
- If migrating a single database, the database backups must be placed in a flat-file structure inside a database folder (including the container root folder), and the folders can't be nested, as it's not supported.
237-
- If migrating multiple databases using the same Azure Blob Storage container, you must place backup files for different databases in separate folders inside the container.
238-
- Overwriting existing databases using DMS in your target SQL Server on Azure Virtual Machine isn't supported.
239-
- Configuring high availability and disaster recovery on your target to match source topology isn't supported by DMS.
240-
- The following server objects aren't supported:
241-
- Logins
242-
- SQL Server Agent jobs
243-
- Credentials
244-
- SSIS packages
245-
- Server roles
246-
- Server audit
247-
248-
- You can't use an existing self-hosted integration runtime created from Azure Data Factory for database migrations with DMS. Initially, the self-hosted integration runtime should be created using the Azure SQL migration extension in Azure Data Studio and can be reused for further database migrations.
249-
- VM with SQL Server 2008 and below as target versions aren't supported when migrating to SQL Server on Azure Virtual Machines.
250-
- If you're using VM with SQL Server 2012 or SQL Server 2014, you need to store your source database backup files on an Azure Storage Blob Container instead of using the network share option. Store the backup files as page blobs since block blobs are only supported in SQL 2016 and after.
251-
- You must make sure the [SQL IaaS Agent Extension](/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management) in the target Azure Virtual Machine is in **Full** mode instead of **Lightweight** mode.
252-
- [SQL IaaS Agent Extension](/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management)only supports management of **Default Server Server Instance** or **Single Named Instance**,
253-
- There's a temporary limit of 80 databases per target Azure Virtual Machine. A workaround to break the limit (reset the counter) is to **Uninstall** and **Reinstall** [SQL IaaS Agent Extension](/azure/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management) in the target Azure Virtual Machine.
254-
- Apart from configuring the Networking/Firewall of your Storage Account to allow your VM to access backup files, you also need to configure the Networking/Firewall of your VM to allow outbound connection to your storage account.
229+
[!INCLUDE [sql-vm-limitations](includes/sql-virtual-machines-limitations.md)]
255230

256231
## Next steps
257232

0 commit comments

Comments
 (0)