Gunakan alat mysqldump untuk memigrasikan data dari database MariaDB yang dikelola sendiri ke instans ApsaraDB RDS for MariaDB.
Latar Belakang
ApsaraDB RDS for MariaDB sepenuhnya kompatibel dengan MariaDB asli. Oleh karena itu, migrasi database Anda ke instans RDS mirip dengan migrasi data antara dua server MariaDB.
Topik ini menggunakan contoh database yang dikelola sendiri yang berjalan di Linux 7 dan MariaDB 10.2.4.
Catatan Penggunaan
Setelah migrasi, nama tabel dikonversi menjadi huruf kecil dan menjadi tidak peka terhadap huruf besar/kecil (case-insensitive).
Prasyarat
Anda telah mengonfigurasi daftar putih alamat IP dan mengajukan titik akhir publik untuk instans ApsaraDB RDS for MariaDB Anda.
Prosedur
-
Gunakan klien untuk menghubungkan ke instans ApsaraDB RDS for MariaDB Anda dan buat database kosong. Pada contoh ini, database diberi nama test001. Di klien MySQL-Front, hubungkan ke instans MariaDB dan jalankan perintah
create database test001;di SQL Editor untuk membuat database target. Setelah perintah dijalankan, database test001 akan muncul dalam daftar database di panel kiri. -
Masuk ke server Linux lokal Anda dan gunakan alat
mysqldumpuntuk mengekspor data database ke file.mysqldump -h localhost -u <source_username> -p --opt --default-character-set=utf8 --hex-blob <source_database_name> --skip-triggers > /tmp/<source_database_name>.sqlContoh:
CatatanAkun
userpada contoh berikut harus memiliki izin tertentu. Untuk petunjuk selengkapnya, lihat Pengaturan izin.mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers > /tmp/testdb.sqlPentingJangan melakukan pembaruan data selama proses ekspor. Langkah ini hanya mengekspor data database, bukan prosedur tersimpan, pemicu, atau fungsi.
-
Gunakan
mysqldumpuntuk mengekspor prosedur tersimpan, pemicu, dan fungsi.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.sqlContoh:
mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdb_trigger.sqlCatatanJika database Anda tidak menggunakan prosedur tersimpan, pemicu, atau fungsi, lewati langkah ini. Saat mengekspor objek-objek tersebut, hapus klausa
DEFINERagar kompatibel dengan ApsaraDB RDS for MariaDB. -
Jalankan perintah berikut untuk mengimpor file yang telah diekspor ke instans ApsaraDB RDS for MariaDB target.
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.sqlContoh:
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 -
Segarkan klien Anda dan periksa tabel-tabel di database target untuk memverifikasi bahwa data telah berhasil dimigrasikan.