Use la herramienta mysqldump para migrar datos desde una base de datos MariaDB autogestionada hacia una instancia de ApsaraDB RDS for MariaDB.
Contexto
ApsaraDB RDS for MariaDB es totalmente compatible con MariaDB nativo. Por lo tanto, migrar su base de datos a una instancia de RDS es similar a migrar datos entre dos servidores MariaDB.
Este tema toma como ejemplo una base de datos autogestionada que se ejecuta en Linux 7 y MariaDB 10.2.4.
Notas de uso
Después de la migración, los nombres de las tablas se convierten a minúsculas y dejan de distinguir entre mayúsculas y minúsculas.
Requisitos previos
Ya cuenta con configured an IP address whitelist y applied for a public endpoint para su instancia de ApsaraDB RDS for MariaDB.
Procedimiento
Use una herramienta cliente para connect to your ApsaraDB RDS for MariaDB instance y cree una base de datos vacía. En este ejemplo, la base de datos se llama test001. En el cliente MySQL-Front, conéctese a la instancia de MariaDB y ejecute el comando
create database test001;en el SQL Editor para crear la base de datos de destino. Tras ejecutar el comando, la base de datos test001 aparecerá en la lista de bases de datos del panel izquierdo.-
Inicie sesión en su servidor Linux local y use la herramienta
mysqldumppara exportar los datos de la base de datos a un archivo de datos.mysqldump -h localhost -u <source_username> -p --opt --default-character-set=utf8 --hex-blob <source_database_name> --skip-triggers > /tmp/<source_database_name>.sqlEjemplo:
NotaLa cuenta
userdel siguiente ejemplo debe tener permisos específicos. Para obtener instrucciones, consulte Configuración de permisos.mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers > /tmp/testdb.sqlImportanteNo actualice los datos durante la exportación. Este paso solo exporta los datos de la base de datos, no los procedimientos almacenados, los desencadenadores ni las funciones.
-
Use
mysqldumppara exportar los procedimientos almacenados, los desencadenadores y las funciones.mysqldump -h localhost -u <source_username> -p --opt --default-character-set=utf8 --hex-blob <source_database_name> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/<source_database_name>_trigger.sqlEjemplo:
mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdb_trigger.sqlNotaSi su base de datos no usa procedimientos almacenados, desencadenadores ni funciones, omita este paso. Al exportar estos objetos, elimine la cláusula
DEFINERpara garantizar la compatibilidad con ApsaraDB RDS for MariaDB. -
Ejecute los siguientes comandos para importar los archivos exportados a la instancia de ApsaraDB RDS for MariaDB de destino.
mysql -h <rds_public_endpoint> -P <rds_port> -u <privileged_account> -p <target_database_name> < /tmp/<source_database_name>.sql mysql -h <rds_public_endpoint> -P <rds_port> -u <privileged_account> -p <target_database_name> < /tmp/<source_database_name>_trigger.sqlEjemplo:
mysql -h rm-bpxxxxx.mariadb.rds.aliyuncs.com -P 3306 -u testuser -p test001 < /tmp/testdb.sql mysql -h rm-bpxxxxx.mariadb.rds.aliyuncs.com -P 3306 -u testuser -p test001 < /tmp/testdb_trigger.sql Actualice su herramienta cliente y revise las tablas de la base de datos de destino para comprobar que los datos se migraron correctamente.