Details
-
Epic
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
-
None
-
None
-
MySQL to MariaDB automation
Description
Missing Tools and Feature Requests
1. Config Upgrade Tool
*Purpose: *Create a tool that converts MySQL config files to work with both MariaDB and MySQL.
Reference: MDEV-32745 config upgrade helper
Status: Done for 11.8. Currently in testing.
2. External Query Parser Tool
*Purpose: *Create a tool that checks that all queries in an external file (global query log) can be parsed by MariaDB.
Requirements:
Must function without having the MariaDB server up and running.
Implementation Idea: Extract the MariaDB parser from the server to run against the file.
Use Case: A user intending to perform an automatic upgrade can run MySQL with the general log enabled, then check if all recorded queries will work with MariaDB after a specified time.
3. Migration Recommendation & Implementation Tool
Purpose: Create a tool that checks the MySQL installation and recommends changes required to prepare for migration to MariaDB.
Features:
Option to automatically apply the recommended changes.
Checklist information is already detailed within this document.
4. 'Copy-mysql-to-mariadb' Tool
Operational Modes: Needs two options (or two distinct programs):
Dump: Run on the MySQL side.
Restore: Run on the MariaDB side.
Functional Workflow:
Execute mysqldump --tab on the MySQL instance (or a backup).
Copy data to a different computer or instance.
Install MariaDB.
Import data using mariadb-import.
Convert tables in the mysql directory (users, stored procedures, etc.) to MariaDB format.
Setup replication from the original MySQL to MariaDB.
*Optional: *Verify data between MySQL and MariaDB.
Optional: Provide an option to stop replication from MySQL to MariaDB and setup replication from MariaDB to MySQL. This serves as a final step when the user switches to MariaDB but requires a fallback.
Proposed Migration Tool Strategy
Unified Migration Script
The objective is to provide one single script that the user runs to navigate through every necessary step of the migration process.
Supported Migration Typologies
The tool should support the following migration scenarios:
*In-place Upgrade: *Performing an in-place upgrade of MySQL < 8.0 to MariaDB.
*Side-by-Side Installation: *Install a MariaDB server alongside MySQL, bring it up to date, and setup replication from MySQL to MariaDB.
Slave Migration: * Install a MariaDB server on the same computer as a MySQL slave.
Migrate data to MariaDB.
Decommission the MySQL slave and set MariaDB to replicate from the MySQL master.
Optionally: Delete the original MySQL data.
*Fresh Remote Installation: *Install MariaDB on a separate "fresh" computer and stream changes to it. Once up to date, setup replication from MySQL to MariaDB.
*Master-Slave Swap: *Add an option to swap the MySQL master and MariaDB slave. This includes setting up replication from the MariaDB node to all remaining MySQL nodes.
Cluster Migration: Moving a MySQL group replication cluster to a MariaDB Galera cluster.
Method: Use typology #4 for the first node, then create new MariaDB nodes using Galera SST.
User Interface and Experience
The tool should function similarly to 'fdisk':
The user is presented with a set of options.
Once an option is chosen, the tool guides the user through the different steps.
The script should be capable of performing all steps automatically if the user does not wish to perform them explicitly.
Attachments
Issue Links
- relates to
-
MDEV-28906 MySQL 8.0 desired compatibility
-
- Open
-