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
Copy file name to clipboardExpand all lines: articles/migrate/assessments-overview-migrate-to-azure-db-mysql.md
+43-35Lines changed: 43 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,11 +11,11 @@ ms.date: 02/24/2025
11
11
12
12
This article provides an overview of assessments for migrating on-premises MySQL database instances from a VMware, Microsoft Hyper-V, and Physical environment to Azure Database for MySQL using the [Azure Migrate: Discovery and assessment tool](migrate-services-overview.md).
13
13
14
-
## What is an assessment?
14
+
## Overview
15
15
16
16
An assessment with the Discovery and assessment tool provides a point-in-time snapshot of data, measuring the readiness and estimating the impact of migrating on-premises servers, databases, and web apps to Azure, while also offering recommendations on suitable Azure SKUs and associated costs.
17
17
18
-
### Types of assessments
18
+
### Assessment Types
19
19
20
20
The Azure Migrate: Discovery and assessment tool supports the following types of assessments:
21
21
@@ -36,46 +36,46 @@ After you [discover MySQL instances and their attributes](tutorial-discover-mysq
36
36
MySQL assessments are performed on the **performance-based** sizing criteria, making recommendations based on collected performance data of MySQL instances, including CPU utilization, Memory utilization, IOPS, IO Count, total number of connections and read-write ratio.
37
37
38
38
> [!NOTE]
39
-
> The assessments only include MySQL database instances that are in online status. For any other status, the assessment ignores the readiness, sizing, and cost calculation for such instances. In case you wish to assess such instances, change the status of the instance and recalculate the assessment later.
39
+
> The assessments only include MySQL database instances that are in online status. For instances with any other status, the assessment ignores the readiness, sizing, and cost calculation. In case you wish to assess such instances, change the status of the instance and recalculate the assessment later.
40
40
41
-
## How do I assess my on-premises MySQL instances?
41
+
## Assess on-premises MySQL instances
42
42
43
43
You can assess your on-premises MySQL instances using the configuration and utilization data collected by lightweight Azure Migrate appliances, which discover the instances and databases and send the data to the Azure Migrate service.
44
44
45
-
1. Deploy the Azure Migrate appliances to discover the MySQL instances: [Refer this tutorial](tutorial-discover-mysql-database-instances.md) to learn more about the steps to deploy the Azure Migrate appliances and discover the MySQL instances that you want to assess.
46
-
1. Create a MySQL assessment: Refer this [tutorial](create-mysql-assessment.md)for steps to create a new assessment and review the reports.
45
+
1. Deploy the Azure Migrate appliances to discover the MySQL instances: [Refer this tutorial](tutorial-discover-mysql-database-instances.md) to deploy the Azure Migrate appliances and discover the MySQL instances that you want to assess.
46
+
1. Create a MySQL assessment: Refer this [tutorial](create-mysql-assessment.md) to create a new assessment and review the reports.
47
47
48
-
## What are the properties used to create and customize a MySQL assessment?
48
+
## Properties to create and customize a MySQL assessment
49
49
50
50
The Azure Database for MySQL assessment properties includes:
51
51
52
52
**Section** | **Setting** | **Details**
53
53
--- | --- | ---
54
54
Target and pricing settings | **Target location** | The Azure region to which you want to migrate. Azure Database for MySQL configuration and cost recommendations are based on the location that you specify.
55
-
Target and pricing settings | **Environment type** | The environment for the MySQL deployments to apply Azure Database for MySQL configuration and cost recommendations applicable to Production or Dev/Test.
55
+
Target and pricing settings | **Environment type** | The environment for the MySQL deployments to apply Azure Database for MySQL configuration and cost recommendations applicable to Production or Development/Testing.
56
56
Target and pricing settings | **Licensing program** | The Azure offer if you're enrolled. Currently, the field is Pay-as-you-go by default, which gives you retail Azure prices.
57
57
Target and pricing settings | **Currency** | The billing currency for your account.
58
58
Target and pricing settings | **Savings options** | Specify the reserved capacity savings option that you want the assessment to consider to optimize your Azure compute cost. <br/><br> Azure reservations (one year or three years reserved) are a good option for the most consistently running resources. <br/><br> When you select None, the Azure compute cost is based on the Pay-as-you-go rate or based on actual usage. <br/><br> You need to select pay-as-you-go in the offer/licensing program to be able to use Reserved Instances. When you select any savings option other than None, the Discount (%) setting isn’t applicable. The monthly cost estimates are calculated by multiplying 744 hours with the hourly price of the recommended SKU.
59
59
Target and pricing settings | **Discount (%)** | Any subscription-specific discounts you receive on top of the Azure offer. The default setting is 0%.
60
60
Assessment criteria | **Sizing criteria** | Set to be **Performance-based** by default, which means Azure Migrate collects performance metrics pertaining to MySQL instances to recommend an optimal-sized Azure Database for MySQL instance configuration.
61
-
Assessment criteria | **Performance history** | Indicate the data duration on which you want to base the assessment. (Default is one day).
62
-
Assessment criteria | **Percentile utilization** | Indicate the percentile value you want to use for the performance sample. (Default is 95th percentile).
61
+
Assessment criteria | **Performance history** | Indicate the data duration on which you want to base the assessment (Default is one day).
62
+
Assessment criteria | **Percentile utilization** | Indicate the percentile value you want to use for the performance sample (Default is 95th percentile).
63
63
Assessment criteria | **Comfort factor** | Indicate the buffer you want to use during assessment. This accounts for issues like seasonal usage, short performance history, and likely increases in future usage.
64
-
Azure DB for MySQL – Flexible Server sizing | **Service Tier** | Choose the most appropriate service tier option to accommodate your business needs for migration to Azure Database for MySQL. <br/><br> By default, all three service tiers are selected. Azure Migrate recommends the best suited service tier for your servers based on your Environment Type and the collected performance data. <br/><br> Select only *General Purpose* if you want an Azure Database for MySQL configuration designed for business workloads that require balanced computing and memory with scalable I/O throughput. <br/><br> Select only*Business Critical* if you want an Azure Database for MySQL configuration designed for high-performance database workloads that require in-memory performance for faster transaction processing and higher concurrency.
64
+
Azure DB for MySQL – Flexible Server sizing | **Service Tier** | Choose the most appropriate service tier option to accommodate your business needs for migration to Azure Database for MySQL. <br/><br> By default, all three service tiers are selected. Azure Migrate recommends the best suited service tier for your servers based on your Environment Type and the collected performance data. <br/><br> Select *General Purpose* if you want an Azure Database for MySQL configuration designed for business workloads that require balanced computing and memory with scalable I/O throughput. <br/><br> Select *Business Critical* if you want an Azure Database for MySQL configuration designed for high-performance database workloads that require in-memory performance for faster transaction processing and higher concurrency.
65
65
66
66
67
-
## How is the performance data calculated for MySQL instances?
67
+
## Performance data calculation for MySQL instances
68
68
69
69
The appliance collects performance data for compute settings with these steps:
70
70
71
-
1. The appliance collects a real-time sample point. For MySQL instances, it collects a sample point every 30 seconds.
72
-
1. The appliance aggregates the sample data points collected every 30 seconds over 10 minutes. To create the data point, the appliance selects the peak values from all samples. It sends the max and means for each counter to Azure.
73
-
1. Azure Migrate stores all the 10-minute data points for the last month.
74
-
1. When you create an assessment, Azure Migrate identifies the appropriate data point to use for right-sizing. Identification is based on the percentile values for performance history and percentile utilization.
71
+
- The appliance collects a real-time sample point. For MySQL instances, it collects a sample point every 30 seconds.
72
+
- The appliance aggregates the sample data points collected every 30 seconds over 10 minutes. To create the data point, the appliance selects the peak values from all samples. It sends the max and means for each counter to Azure.
73
+
- Azure Migrate stores all the 10-minute data points for the last month.
74
+
- When you create an assessment, Azure Migrate identifies the appropriate data point to use for right-sizing. Identification is based on the percentile values for performance history and percentile utilization.
75
75
- For example, if the performance history spans a week and the utilization is at 95th percentile, the assessment sorts the 10-minute sample points for the last week. It sorts them in ascending order and picks the 95th percentile value for right-sizing.
76
76
- The 95th percentile value ensures you ignore any outliers, which might be included if you picked the 99th percentile.
77
77
- If you want to pick the peak usage for the period and don't want to miss any outliers, select the 99th percentile for percentile utilization.
78
-
1. This value is multiplied by the comfort factor to get the effective performance utilization data for these metrics that the appliance collects:
78
+
- This value is multiplied by the comfort factor to get the effective performance utilization data for these metrics that the appliance collects:
79
79
- CPU utilization (%)
80
80
- Memory utilization (%)
81
81
- IOPS and IO Count
@@ -87,14 +87,15 @@ The appliance collects performance data for compute settings with these steps:
87
87
Readiness to migrate a MySQL instance to Azure Database for MySQL is determined through various feature compatibility checks between the source and target instances. These checks include:
88
88
89
89
- Supported versions, editions, storage engines, plugins, configuration or parameter values, user permissions and privileges.
90
-
- Maximum supported storage size, vCores, Memory, IOPS, InnoDB buffer pool size, connections, tablespace number, and size.
90
+
- Maximum supported storage size, vCores, Memory, IOPS, DB buffer pool size, connections, tablespace number, and size.
91
91
- Security settings, and more.
92
92
93
93
An instance is then marked as:
94
-
-**Ready**, if no major compatibility issues were found between source and target MySQL instances.
95
-
-**Ready with conditions**, if there are non-critical compatibility issues such as degraded or unsupported features, that don't block the migration to Azure Database for MySQL. Azure Migrate displays the migration warnings with impact details and recommended remediation guidelines.
96
-
-**Not ready**, if there are any compatibility issues that may block the migration to Azure Database for MySQL. Azure Migrate displays the migration issues with impact details and recommended remediation guidance.
97
-
-**Unknown**, if the discovery is still in progress or there are any discovery issues in the source instance.
94
+
-**Ready**: If no major compatibility issues were found between source and target MySQL instances.
95
+
-**Ready with conditions**: If there are non-critical compatibility issues such as degraded or unsupported features, that don't block the migration to Azure Database for MySQL. Azure Migrate displays the migration warnings with impact details and recommended remediation guidelines.
96
+
-**Not ready**: If there are any compatibility issues that may block the migration to Azure Database for MySQL. Azure Migrate displays the migration issues with impact details and recommended remediation guidance.
97
+
-**Unknown**: If the discovery is still in progress or there are any discovery issues in the source instance.
98
+
98
99
99
100
## Calculate sizing
100
101
@@ -103,24 +104,24 @@ After the assessment determines the readiness, for every server that is either *
103
104
### Compute sizing
104
105
105
106
During the discovery process, Azure Migrate collects the MySQL instance configuration and performance data that includes:
106
-
- vCores (allocated) and CPU utilization (%): CPU utilization for a MySQL instance is the percentage of allocated CPU utilized by the MySQL instance on the server.
107
-
- Memory (allocated) and memory utilization (%): The amount of memory allocated to the MySQL instance, and its utilization percentage.
108
-
- IOPS: Calculated by adding the Read and Write IOPS for each instance.
107
+
-**vCores (allocated) and CPU utilization (%)**: CPU utilization for a MySQL instance is the percentage of allocated CPU utilized by the MySQL instance on the server.
108
+
-**Memory (allocated) and memory utilization (%)**: The amount of memory allocated to the MySQL instance, and its utilization percentage.
109
+
-**IOPS**: Calculated by adding the Read and Write IOPS for each instance.
109
110
- Total number of connections made to the MySQL instance.
110
-
- Read-write ratio: Used to determine whether the workload is memory-intensive or CPU-intensive, which in turn helps decide the appropriate service tier.
111
+
-**Read-write ratio**: Used to determine whether the workload is memory-intensive or CPU-intensive, which in turn helps decide the appropriate service tier.
111
112
112
-
The assessment aggregates all the configuration and performance data and tries to find the best match across the [various Azure Database for MySQL service tiers and configurations](https://learn.microsoft.com/azure/mysql/flexible-server/concepts-service-tiers-storage), selecting a configuration that can match or exceed the MySQL instance performance requirements, optimizing the cost.
113
+
The assessment aggregates all the configuration and performance data and tries to find the best match across the [various Azure Database for MySQL service tiers and configurations](https://learn.microsoft.com/azure/mysql/flexible-server/concepts-service-tiers-storage), selecting a configuration that can match or exceed the MySQL instance performance requirements, and optimizing the cost.
113
114
114
115
### Storage sizing
115
-
Azure Migrate calculates the total disk space used by the MySQL instance (including database files, temporary files, transaction logs, and the MySQL server logs) and suggests the recommended storage to provision in Azure Database for MySQL. For Burstable and General Purpose service tiers, the storage range spans from a minimum of 20 GiB to a maximum of 16 TiB, while for the Business Critical service tier, the storage support extends up to 32 TiB. In all service tiers, storage is scaled in 1-GiB increments and can be scaled up (but not down) after the server is created.
116
+
Azure Migrate calculates the total disk space used by the MySQL instance (including database files, temporary files, transaction logs, and the MySQL server logs) and suggests the recommended storage to provision in Azure Database for MySQL. For Burstable and General Purpose service tiers, the storage range spans from a minimum of 20 GiB to a maximum of 16 TiB, while for the Business Critical service tier, the storage support extends up to 32 TiB. In all service tiers, storage is scaled in 1GiB increments and can be scaled up (but not down) after the server is created.
116
117
117
118
### IOPS sizing
118
119
Azure Migrate recommends the [Autoscale IOPS feature in Azure Database for MySQL](https://learn.microsoft.com/azure/mysql/flexible-server/concepts-service-tiers-storage#autoscale-iops), which enables the MySQL instance to automatically scale the database instance’s performance (IO) seamlessly and independent of the selected storage size, depending on the workload needs. With Autoscale IOPS, you pay only for the IO the server uses, eliminating the need to provision and pay for resources that aren't fully utilized, thereby saving time and money.
119
120
120
121
## Confidence ratings
121
122
122
123
Each MySQL assessment is associated with a confidence rating. The rating ranges from one (lowest) to five (highest) stars. The confidence rating helps you estimate the reliability of the size recommendations Azure Migrate provides.
123
-
-The confidence rating is assigned to an assessment. The rating is based on the availability of data points that are needed to compute the assessment.
124
+
- The rating is based on the availability of data points that are needed to compute the assessment.
124
125
- For performance-based sizing, the assessment collects performance data of all the MySQL instances and databases, which include:
125
126
- CPU utilization (%)
126
127
- Memory utilization (%)
@@ -143,15 +144,22 @@ Each MySQL assessment is associated with a confidence rating. The rating ranges
143
144
Here are a few reasons why an assessment could get a low confidence rating:
144
145
145
146
- You didn't profile your environment for the duration for which you're creating the assessment. For example, if you create the assessment with performance duration set to one day, you must wait at least a day after you start discovery for all the data points to get collected.
146
-
- The Assessment isn't able to collect the performance data for some or all the servers in the assessment period. For a high confidence rating, ensure that:
147
+
- The Assessment isn't able to collect the performance data for some or all the servers in the assessment period.
148
+
149
+
**Recalculate** the assessment to reflect the latest changes in confidence rating.
150
+
151
+
- Some database instances were created during the time for which the assessment was calculated. For example, you created an assessment for the performance history of the last month, but some instances were created only a week ago. In this case, the performance data for the new servers won't be available for the entire duration and the confidence rating would be low.
152
+
153
+
### High confidence ratings
154
+
155
+
Here are a few reasons why an assessment could have a high confidence rating:
156
+
147
157
- Servers are powered on during the assessment.
148
158
- Outbound connections on ports 3306 are allowed.
149
159
- If Azure Migrate connection status of the MySQL agent in Azure Migrate is Connected, check the last heartbeat.
150
160
- Azure Migrate connection status for all MySQL instances is Connected in the discovered MySQL instance section.
151
161
152
-
**Recalculate** the assessment to reflect the latest changes in confidence rating.
153
-
154
-
- Some database instances were created during the time for which the assessment was calculated. For example, you created an assessment for the performance history of the last month, but some instances were created only a week ago. In this case, the performance data for the new servers won't be available for the entire duration and the confidence rating would be low.
162
+
**Recalculate** the assessment to reflect the latest changes in confidence rating.
155
163
156
164
> [!NOTE]
157
165
> As MySQL assessments are performance-based assessments, if the confidence rating of any assessment is fewer than five stars, we recommend that you wait at least a day for the appliance to profile the environment and then recalculate the assessment. Otherwise, performance-based sizing might be unreliable.
@@ -169,6 +177,6 @@ To calculate the compute, storage and IO costs for an Azure Database for MySQL c
169
177
170
178
## Next steps
171
179
172
-
-[Learn how to run a MySQL assessment.](create-mysql-assessment.md)
173
-
-[Get started on your MySQL migration journey to Azure Database for MySQL.](https://learn.microsoft.com/training/modules/choose-tool-to-migrate-data-to-azure-database-for-mysql/)
180
+
-[Learn how to run a MySQL assessment](create-mysql-assessment.md).
181
+
-[Get started on your MySQL migration journey to Azure Database for MySQL](https://learn.microsoft.com/training/modules/choose-tool-to-migrate-data-to-azure-database-for-mysql/).
0 commit comments