Skip to content

Commit a7ed2c4

Browse files
Merge pull request #273564 from aditivgupta/azdef
Updates
2 parents aadb9a4 + e701fdd commit a7ed2c4

File tree

2 files changed

+35
-15
lines changed

2 files changed

+35
-15
lines changed

articles/mysql/migrate/migrate-single-flexible-in-place-auto-migration.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ The in-place migration provides a highly resilient and self-healing offline migr
1919

2020
* **Target Flexible Server is deployed**, inheriting all feature set and properties (including server parameters and firewall rules) from source Single Server. Source Single Server is set to read-only and backup from source Single Server is copied to the target Flexible Server.
2121
* **DNS switch and cutover** are performed successfully within the planned maintenance window with minimal downtime, allowing maintenance of the same connection string post-migration. Client applications seamlessly connect to the target flexible server without any user driven manual updates. In addition to both connection string formats (Single and Flexible Server) being supported on migrated Flexible Server, both username formats – username@server_name and username are also supported on the migrated Flexible Server.
22-
* The **migrated Flexible Server is online** and can now be managed via Azure portal/CLI. Stopped Single Server is deleted 7 days after the migration.
22+
* The **migrated Flexible Server is online** and can now be managed via Azure portal/CLI. Stopped Single Server is deleted seven days after the migration.
2323

2424
> [!NOTE]
2525
> If your Single Server instance has General Purpose V1 storage, your scheduled instance will undergo an additional restart operation 12 hours prior to the scheduled migration time. This restart operation serves to enable the log_bin server parameter needed to upgrade the instance to General Purpose V2 storage before undergoing the in-place auto-migration.
2626
2727
## Eligibility
28+
2829
* If you own a Single Server workload with Basic, General Purpose or Memory Optimized SKU, data storage used <= 20 GiB and no complex features (CMK, AAD, Read Replica, Private Link) enabled, you can now nominate yourself (if not already scheduled by the service) for auto-migration by submitting your server details through this [form](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR4lhLelkCklCuumNujnaQ-ZUQzRKSVBBV0VXTFRMSDFKSUtLUDlaNTA5Wi4u).
2930

3031
## Configure migration alerts and review migration schedule
@@ -37,7 +38,7 @@ Following described are the ways to check and configure automigration notificati
3738
* Configure **service health alerts** to receive in-place migration schedule and progress notifications via email/SMS by following steps [here](../single-server/concepts-planned-maintenance-notification.md#to-receive-planned-maintenance-notification).
3839
* Check the in-place migration **notification on the Azure portal** by following steps [here](../single-server/concepts-planned-maintenance-notification.md#check-planned-maintenance-notification-from-azure-portal).
3940

40-
Following described are the ways to review your migration schedule once you have received the in-place automigration notification:
41+
Following described are the ways to review your migration schedule once you receive the in-place automigration notification:
4142

4243
> [!NOTE]
4344
> The migration schedule will be locked 7 days prior to the scheduled migration window after which you’ll be unable to reschedule.
@@ -47,12 +48,13 @@ Following described are the ways to review your migration schedule once you have
4748
* If you wish to defer the migration, you can defer by a month at a time by navigating to the Migration blade of your single server instance on the Azure portal and rescheduling the migration by selecting another migration window within a month.
4849
* If your Single Server has **General Purpose SKU**, you have the other option to enable **High Availability** when reviewing the migration schedule. As High Availability can only be enabled during create time for a MySQL Flexible Server, it's highly recommended that you enable this feature when reviewing the migration schedule.
4950

50-
## Pre-requisite checks for in-place auto-migration
51+
## Prerequisite checks for in-place auto-migration
5152

52-
* The Single Server instance should be in **ready state** and should not be in stopped state during the planned maintenance window for automigration to take place.
53+
* The Single Server instance should be in **ready state** and shouldn't be in stopped state during the planned maintenance window for automigration to take place.
5354
* For Single Server instance with **SSL enabled**, ensure you have all three certificates (**[BaltimoreCyberTrustRoot](https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem), [DigiCertGlobalRootG2 Root CA](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem) and [DigiCertGlobalRootCA Root CA](https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem)**) available in the trusted root store. Additionally, if you have the certificate pinned to the connection string create a combined CA certificate with all three certificates before scheduled auto-migration to ensure business continuity post-migration.
54-
* The MySQL engine doesn't guarantee any sort order if there is no 'SORT' clause present in queries. Post in-place automigration, you may observe a change in the sort order. If preserving sort order is crucial, ensure your queries are updated to include 'SORT' clause before the scheduled in-place automigration.
55+
* The MySQL engine doesn't guarantee any sort order if there's no 'SORT' clause present in queries. Post in-place automigration, you may observe a change in the sort order. If preserving sort order is crucial, ensure your queries are updated to include 'SORT' clause before the scheduled in-place automigration.
5556
* If your source Azure Database for MySQL Single Server has engine version v8.x, ensure to upgrade your source server's .NET client driver version to 8.0.32 to avoid any encoding incompatibilities post migration to Flexible Server.
57+
* If your source Azure Database for MySQL Single Server has firewall rule names exceeding 80 characters, rename them to ensure length of name is fewer than 80 characters. (The firewall rule name length supported on Flexible Server is 80 characters whereas on Single Server the allowed length is 12 8 characters.)
5658

5759
## How is the target MySQL Flexible Server auto-provisioned?
5860

@@ -76,7 +78,7 @@ Following described are the ways to review your migration schedule once you have
7678
* For Single Servers with less than 20 GiB storage, the storage size is set to 20 GiB as that is the minimum storage limit on Azure Database for MySQL - Flexible Server.
7779
* Both username formats – username@server_name (Single Server) and username (Flexible Server) are supported on the migrated Flexible Server.
7880
* Both connection string formats – Single Server and Flexible Server are supported on the migrated Flexible Server.
79-
* For Single Server instance with Query store enabled, the server parameter 'slow_query_log' on target instance is set to ON to ensure feature parity when migrating to Flexible Server. Please note, for certain workloads this could impact performance and if you observe any performance degradation, set this server parameter to 'OFF' on the Flexible Server instance.
81+
* For Single Server instance with Query store enabled, the server parameter 'slow_query_log' on target instance is set to ON to ensure feature parity when migrating to Flexible Server. For certain workloads this could impact performance and if you observe any performance degradation, set this server parameter to 'OFF' on the Flexible Server instance.
8082

8183
## Post-migration steps
8284

@@ -87,6 +89,13 @@ Following described are the ways to review your migration schedule once you have
8789
* Monitoring page settings (Alerts, Metrics, and Diagnostic settings)
8890
* Any Terraform/CLI scripts you host to manage your Single Server instance should be updated with Flexible Server references.
8991
* For Single Server instance with Query store enabled, the server parameter 'slow_query_log' on target instance is set to ON to ensure feature parity when migrating to Flexible Server. Please note, for certain workloads this could impact performance and if you observe any performance degradation, set this server parameter to 'OFF' on the Flexible Server instance.
92+
* For Single Server instance with Advance Threat Protection enabled, consider configuring the following properties post auto-migration in the following table to maintain parity as you're auto-migrated to Azure Defender for Cloud :
93+
94+
| **Property** | **Configuration** |
95+
|---|---|
96+
| properties.disabledAlerts | You can disable specific alert types by using the Microsoft Defender for Cloud platform. For more information, see the article [Suppress alerts from Microsoft Defender for Cloud guide](../../defender-for-cloud/alerts-suppression-rules.md). |
97+
| properties.emailAccountAdmins, properties.emailAddresses | You can centrally define email notification for Microsoft Defender for Cloud Alerts for all resources in a subscription. For more information, see the article [Quickstart: Configure email notifications for security alerts](../../defender-for-cloud/configure-email-notifications.md). |
98+
| properties.retentionDays, properties.storageAccountAccessKey, properties.storageEndpoint | The Microsoft Defender for Cloud platform exposes alerts through Azure Resource Graph. You can export alerts to a different store and manage retention separately. For more about continuous export, see the article [Set up continuous export in the Azure portal - Microsoft Defender for Cloud](../../defender-for-cloud/continuous-export.md?tabs=azure-portal). |
9099

91100
## Frequently Asked Questions (FAQs)
92101

@@ -107,18 +116,11 @@ Following described are the ways to review your migration schedule once you have
107116

108117
**Q. How can I defer the scheduled migration?​**
109118

110-
**A.** You can review the migration schedule by navigating to the Migration blade of your Single Server instance. If you wish to defer the migration, you can defer by a month at the most by navigating to the Migration blade of your single server instance on the Azure portal and re-scheduling the migration by selecting another migration window within a month. Note that the migration details will be locked 7 days prior to the scheduled migration window after which you're unable to reschedule. This in-place migration can be deferred monthly until 16 September 2024.
111-
112-
**Q. What are some post-migration activities I need to perform?​**
113-
114-
**A.** Following are some post-migration activities:
115-
116-
* Monitoring page settings (Alerts, Metrics, and Diagnostic settings)
117-
* Any Terraform/CLI scripts you host to manage your Single Server instance should be updated with Flexible Server references.
119+
**A.** You can review the migration schedule by navigating to the Migration blade of your Single Server instance. If you wish to defer the migration, you can defer by a month at the most by navigating to the Migration blade of your single server instance on the Azure portal and re-scheduling the migration by selecting another migration window within a month. The migration details will be locked 7 days prior to the scheduled migration window after which you're unable to reschedule. This in-place migration can be deferred monthly until 16 September 2024.
118120

119121
**Q. What username and connection string would be supported for the migrated Flexible Server? ​​**
120122

121-
**A.** Both username formats - username@server_name (Single Server format) and username (Flexible Server format) will be supported for the migrated Flexible Server, and hence you aren't required to update them to maintain your application continuity post migration. Additionally, both connection string formats (Single and Flexible server format) will also be supported for the migrated Flexible Server.
123+
**A.** Both username formats - username@server_name (Single Server format) and username (Flexible Server format) are supported for the migrated Flexible Server, and hence you aren't required to update them to maintain your application continuity post migration. Additionally, both connection string formats (Single and Flexible server format) are also supported for the migrated Flexible Server.
122124

123125
**Q. How to enable HA (High Availability) for my auto-migrated server??​**
124126

articles/mysql/migrate/migrate-single-flexible-mysql-import-cli.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,23 @@ az account set --subscription <subscription id>
6464
- If the Single Server instance has ' Infrastructure Double Encryption' enabled, enabling Customer Managed Key (CMK) on target Flexible Server instance is recommended to support similar functionality. You can choose to enable CMK on target server with Azure Database for MySQL Import CLI input parameters or post migration as well.
6565
- If the Single Server instance has 'Query Store' enabled, enabling slow query logs on target Flexible Server instance is recommended to support similar functionality. You can configure slow query logs on the target flexible server by following steps [here](/azure/mysql/flexible-server/tutorial-query-performance-insights#configure-slow-query-logs-by-using-the-azure-portal). You can then view query insights by using [workbooks template](/azure/mysql/flexible-server/tutorial-query-performance-insights#view-query-insights-by-using-workbooks).
6666
- If your Single Server instance has Legacy Storage architecture (General Purpose storage V1), you need to set the parameter log_bin=ON for your Single Server instance before initiating the import operation. In order to do so, create a read replica for your Single Server instance and then delete it. This operation will set the parameter log_bin to ON and you can then trigger an import operation to migrate to Flexible Server.
67+
- If your Single Server instance has engine version v8.0, consider performing the following actions to avoid any breaking changes due to community minor version differences between the Single and Flexible Server instance :
68+
69+
- Run the following statement to check if your instance could be impacted by erroneous histogram information. If the corresponding tables are output, we recommend that you refer to [https://dev.mysql.com/blog-archive/histogram-statistics-in-mysql/](https://dev.mysql.com/blog-archive/histogram-statistics-in-mysql/) to delete the histogram information, and then recreate it on the Flexible Server. It's worth noting that the histogram inf` is only statistical information about the columns, and this information only exists in system tables, so deleting the histogram info will not affect the table data.
70+
71+
```sql
72+
SELECT DISTINCT SCHEMA_NAME, TABLE_NAME FROM `information_schema`.`column_statistics`;
73+
```
74+
75+
- Run the following command to check for tables that could have their table column order be disorganized. If this check identifies any affected tables, you need to dump all the data from these tables and then import it back. Failure to do so can lead to the sequence of columns in the binlog not matching the sequence of columns in the user tables. This discrepancy can prevent users from setting up replication, restoring data, enabling High Availability (HA), and other operations.
76+
77+
```sql
78+
SELECT table_schema, table_name, COUNT(*) AS column_count, MAX(ORDINAL_POSITION) AS max_ordinal_position
79+
FROM information_schema.columns
80+
GROUP BY table_schema, table_name
81+
HAVING column_count != max_ordinal_position;
82+
```
83+
6784
- Only instance-level import is supported. No option to import selected databases within an instance is provided.
6885
- Below items should be copied from source to target by the user post the Import operation:
6986
- Read-Replicas
@@ -251,6 +268,7 @@ Below is the benchmarked performance based on varying number of tables for 10 Gi
251268
252269
- Copy the following properties from the source Single Server to target Flexible Server post Azure Database for MySQL Import operation is completed successfully:
253270
- Read-Replicas
271+
- Server parameter value for event_scheduler
254272
- Monitoring page settings (Alerts, Metrics, and Diagnostic settings)
255273
- Any Terraform/CLI scripts you host to manage your Single Server instance should be updated with Flexible Server references.
256274

0 commit comments

Comments
 (0)