Skip to content

Commit 70cce54

Browse files
authored
Merge pull request #49907 from HJToland3/known-issues-both
known issues article additions
2 parents 27ad8f6 + 073da8a commit 70cce54

File tree

7 files changed

+206
-0
lines changed

7 files changed

+206
-0
lines changed

articles/dms/TOC.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
## [Monitor migration activity](how-to-monitor-migration-activity.md)
1515

1616
# Resources
17+
## [Known Issues - Online migration to Azure SQL DB](known-issues-azure-sql-online.md)
18+
## [Known Issues - Online migration to Azure DB for MySQL](known-issues-azure-mysql-online.md)
1719
## [User Voice Feedback](https://feedback.azure.com/forums/906100-azure-database-migration-service)
1820
## [Azure Roadmap](https://azure.microsoft.com/roadmap/)
1921
## [Database Migration Guide](https://aka.ms/datamigration)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
title: Article about known issues/migration limitations with online migrations to Azure Database for MySQL | Microsoft Docs
3+
description: Learn about known issues/migration limitations with online migrations to Azure Database for MySQL.
4+
services: database-migration
5+
author: HJToland3
6+
ms.author: jtoland
7+
manager:
8+
ms.reviewer:
9+
ms.service: database-migration
10+
ms.workload: data-services
11+
ms.custom: mvc
12+
ms.topic: article
13+
ms.date: 08/24/2018
14+
---
15+
16+
# Known issues/migration limitations with online migrations to Azure DB for MySQL
17+
18+
Known issues and limitations associated with online migrations from MySQL to Azure Database for MySQL are described in the following sections.
19+
20+
## Online migration configuration
21+
- The source MySQL Server version must be version 5.6.35, 5.7.18 or later
22+
- Azure Database for MySQL supports:
23+
- MySQL community edition
24+
- InnoDB engine
25+
- Same version migration. Migrating MySQL 5.6 to Azure Database for MySQL 5.7 isn't supported.
26+
- Enable binary logging in my.ini (Windows) or my.cnf (Unix)
27+
- Set Server_id to any number larger or equals to 1, for example, Server_id=1 (only for MySQL 5.6)
28+
- Set log-bin = <path> (only for MySQL 5.6)
29+
- Set binlog_format = row
30+
- Expire_logs_days = 5 (recommended - only for MySQL 5.6)
31+
- User must have the ReplicationAdmin role.
32+
- Collations defined for the source MySQL database are the same as the ones defined in target Azure Database for MySQL.
33+
- Schema must match between source MySQL database and target database in Azure Database for MySQL.
34+
- Schema in target Azure Database for MySQL must not have foreign keys. Use the following query to drop foreign keys:
35+
```
36+
SET group_concat_max_len = 8192;
37+
SELECT SchemaName, GROUP_CONCAT(DropQuery SEPARATOR ';\n') as DropQuery, GROUP_CONCAT(AddQuery SEPARATOR ';\n') as AddQuery
38+
FROM
39+
(SELECT
40+
KCU.REFERENCED_TABLE_SCHEMA as SchemaName, KCU.TABLE_NAME, KCU.COLUMN_NAME,
41+
CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' DROP FOREIGN KEY ', KCU.CONSTRAINT_NAME) AS DropQuery,
42+
CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' ADD CONSTRAINT ', KCU.CONSTRAINT_NAME, ' FOREIGN KEY (`', KCU.COLUMN_NAME, '`) REFERENCES `', KCU.REFERENCED_TABLE_NAME, '` (`', KCU.REFERENCED_COLUMN_NAME, '`) ON UPDATE ',RC.UPDATE_RULE, ' ON DELETE ',RC.DELETE_RULE) AS AddQuery
43+
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU, information_schema.REFERENTIAL_CONSTRAINTS RC
44+
WHERE
45+
KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
46+
AND KCU.REFERENCED_TABLE_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
47+
AND KCU.REFERENCED_TABLE_SCHEMA = ['schema_name']) Queries
48+
GROUP BY SchemaName;
49+
```
50+
51+
Run the drop foreign key (which is the second column) in the query result.
52+
- Schema in target Azure Database for MySQL must not have any triggers. To drop triggers in target database:
53+
```
54+
SELECT Concat('DROP TRIGGER ', Trigger_Name, ';') FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA = 'your_schema';
55+
```
56+
57+
## Datatype limitations
58+
- **Limitation**: If there's a JSON datatype in the source MySQL database, migration will fail during continuous sync.
59+
60+
**Workaround**: Modify JSON datatype to medium text or longtext in source MySQL database.
61+
62+
- **Limitation**: If there's no primary key on tables, continuous sync will fail.
63+
64+
**Workaround**: Temporarily set a primary key for the table for migration to continue. You can remove the primary key after data migration is complete.
65+
66+
## LOB limitations
67+
Large Object (LOB) columns are columns that could grow large in size. For MySQL, Medium text, Longtext, Blob, Mediumblob, Longblob, etc. are some of the datatypes of LOB.
68+
69+
- **Limitation**: If LOB data types are used as primary keys, migration will fail.
70+
71+
**Workaround**: Replace primary key with other datatypes or columns that aren't LOB.
72+
73+
- **Limitation**: If the length of Large Object (LOB) column is bigger than 32 KB, data might be truncated at the target. You can check the length of LOB column using this query:
74+
```
75+
SELECT max(length(description)) as LEN from catalog;
76+
```
77+
78+
**Workaround**: If you have LOB object that is bigger than 32 KB, contact engineering team at [[email protected]](mailto:[email protected]).
79+
80+
## Other limitations
81+
- A password string that has opening and closing curly brackets { } at the beginning and end of the password string isn't supported. This limitation applies to both connecting to source MySQL and target Azure Database for MySQL.
82+
- The following DDLs aren't supported:
83+
- All partition DDLs
84+
- Drop table
85+
- Rename table
86+
- Using the *alter table <table_name> add column <column_name>* statement to add columns to the beginning or to the middle of a table isn't supported. THe *alter table <table_name> add column <column_name>* adds the column at the end of the table.
87+
- Indexes created on only part of the column data aren't supported. The following statement is an example that creates an index using only part of the column data:
88+
```
89+
CREATE INDEX partial_name ON customer (name(10));
90+
```
91+
92+
- In DMS, the limit of databases to migrate in one single migration activity is four.
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: Article about known issues/migration limitations with online migrations to Azure SQL Database | Microsoft Docs
3+
description: Learn about known issues/migration limitations with online migrations to Azure SQL Database.
4+
services: database-migration
5+
author: HJToland3
6+
ms.author: jtoland
7+
manager:
8+
ms.reviewer:
9+
ms.service: database-migration
10+
ms.workload: data-services
11+
ms.custom: mvc
12+
ms.topic: article
13+
ms.date: 08/24/2018
14+
---
15+
16+
# Known issues/migration limitations with online migrations to Azure SQL DB
17+
18+
Known issues and limitations associated with online migrations from SQL Server to Azure SQL Database are described below.
19+
20+
- Migration of temporal tables not supported
21+
22+
**Symptom**
23+
24+
If your source database consists of one or more temporal tables, your database migration fails during the “Full data load” operation and you may see the following message:
25+
26+
{ "resourceId":"/subscriptions/<subscription id>/resourceGroups/migrateready/providers/Microsoft.DataMigration/services/<DMS Service name>", "errorType":"Database migration error", "errorEvents":"["Capture functionalities could not be set. RetCode: SQL_ERROR SqlState: 42000 NativeError: 13570 Message: [Microsoft][SQL Server Native Client 11.0][SQL Server]The use of replication is not supported with system-versioned temporal table '[Application. Cities]' Line: 1 Column: -1 "]" }
27+
28+
![Temporal table errors example](media\known-issues-azure-sql-online\dms-temporal-tables-errors.png)
29+
30+
**Workaround**
31+
32+
1. Find the temporal tables in your source schema using the query below.
33+
```
34+
select name,temporal_type,temporal_type_desc,* from sys.tables where temporal_type <>0
35+
```
36+
2. Exclude these tables from the **Configure migration settings** blade, on which you specify tables for migration.
37+
3. Rerun the migration activity.
38+
39+
**Resources**
40+
41+
For more information, see the article [Temporal Tables](https://docs.microsoft.com/sql/relational-databases/tables/temporal-tables?view=sql-server-2017).
42+
43+
- Migration of tables includes one or more columns with the hierarchyid data type
44+
45+
**Symptom**
46+
47+
You may see a SQL Exception suggesting “ntext is incompatible with hierarchyid” during the “Full data load” operation:
48+
49+
![hierarchyid errors example](media\known-issues-azure-sql-online\dms-hierarchyid-errors.png)
50+
51+
**Workaround**
52+
53+
1. Find the user tables that include columns with the hierarchyid data type using the query below.
54+
55+
```
56+
select object_name(object_id) 'Table name' from sys.columns where system_type_id =240 and object_id in (select object_id from sys.objects where type='U')
57+
```
58+
59+
2. Exclude these tables from the **Configure migration settings** blade, on which you specify tables for migration.
60+
3. Rerun the migration activity.
61+
62+
- Migration failures with various integrity violations with active triggers in the schema during “Full data load” or “Incremental data sync”
63+
64+
**Workaround**
65+
1. Find the triggers that are currently active in the source database using the query below:
66+
```
67+
select * from sys.triggers where is_disabled =0
68+
```
69+
2. Disable the triggers on your source database using the steps provided in the article [DISABLE TRIGGER (Transact-SQL)](https://docs.microsoft.com/sql/t-sql/statements/disable-trigger-transact-sql?view=sql-server-2017).
70+
3. Re-Run the migration activity.
71+
72+
- Support for LOB data types
73+
74+
**Symptom**
75+
76+
If the length of Large Object (LOB) column is bigger than 32 KB, data might get truncated at the target. You can check the length of LOB column using the query below:
77+
78+
```
79+
SELECT max(len(ColumnName)) as LEN from TableName
80+
```
81+
82+
**Workaround**
83+
84+
If you have an LOB column that is bigger than 32 KB, contact the engineering team at [[email protected]](mailto:[email protected]).
85+
86+
- Issues with timestamp columns
87+
88+
**Symptom**
89+
90+
DMS doesn't migrate the source timestamp value; instead, DMS generates a new timestamp value in the target table.
91+
92+
**Workaround**
93+
94+
If you need DMS to migrate the exact timestamp value stored in the source table, contact the engineering team at [[email protected]](mailto:[email protected]).
95+
96+
- Data migration errors do not provide additional details on the Database detailed status blade.
97+
98+
**Symptom**
99+
100+
When you encounter the migration failures in the Databases details status view, selecting the **Data migration errors** link on the top ribbon may not provide additional details specific to the migration failures.
101+
102+
![data migration errors no details example](media\known-issues-azure-sql-online\dms-data-migration-errors-no-details.png)
103+
104+
**Workaround**
105+
106+
To get to specific failure details, follow the steps below.
107+
108+
1. Close the Database detailed status blade to display the Migration activity screen.
109+
110+
![migration activity screen](media\known-issues-azure-sql-online\dms-migration-activity-screen.png)
111+
112+
2. Select **See error details** to view specific error messages that help you to troubleshoot migration errors.
123 KB
Loading
179 KB
Loading
227 KB
Loading
154 KB
Loading

0 commit comments

Comments
 (0)