Topik ini menjelaskan cara memindahkan data dari database MariaDB yang dikelola sendiri ke instans ApsaraDB RDS untuk MariaDB.
Informasi latar belakang
ApsaraDB RDS untuk MariaDB sepenuhnya kompatibel dengan layanan database MariaDB asli. Proses memindahkan data dari database MariaDB yang dikelola sendiri ke instans RDS mirip dengan proses memindahkan data antara dua server database MariaDB.
Dalam topik ini, server database yang menampung database MariaDB yang dikelola sendiri menjalankan Linux 7 dan MariaDB 10.2.4.
Catatan penggunaan
Setelah migrasi selesai, nama tabel tidak peka terhadap huruf besar atau kecil. Semua nama tabel disediakan dalam huruf kecil.
Prasyarat
Daftar putih alamat IP dikonfigurasi dan titik akhir publik diperoleh untuk instans RDS. Untuk informasi lebih lanjut, lihat Konfigurasikan Daftar Putih Alamat IP dan Ajukan Permohonan atau Lepaskan Titik Akhir Publik.
Prosedur
Gunakan alat koneksi jarak jauh untuk masuk ke instans RDS dan buat database kosong. Database ini adalah database tujuan ke mana data dipindahkan. Sebagai contoh, Anda dapat membuat database kosong bernama test001. Untuk informasi lebih lanjut, lihat Hubungkan ke Instans ApsaraDB RDS untuk MariaDB.
Masuk ke server database lokal. Kemudian, gunakan alat mysqldump yang disediakan dengan MariaDB untuk mengekspor data dari database lokal sebagai file. File ini dikenal sebagai file data.
mysqldump -h localhost -u <Nama pengguna akun database yang dikelola sendiri> -p --opt --default-character-set=utf8 --hex-blob <Nama database yang dikelola sendiri> --skip-triggers > /tmp/<Nama database yang dikelola sendiri>.sqlContoh perintah
CatatanPengguna yang digunakan dalam langkah-langkah berikutnya harus memiliki izin yang diperlukan. Untuk informasi lebih lanjut, lihat mariadb-dump/mysqldump.
mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers > /tmp/testdb.sqlPentingJangan perbarui data selama proses ekspor. Pada langkah ini, hanya data yang diekspor. Prosedur tersimpan, pemicu, dan fungsi tidak diekspor.
Gunakan alat mysqldump untuk mengekspor prosedur tersimpan, pemicu, dan fungsi sebagai file. File ini dikenal sebagai file prosedur tersimpan.
mysqldump -h localhost -u <Nama pengguna akun database yang dikelola sendiri> -p --opt --default-character-set=utf8 --hex-blob <Nama database yang dikelola sendiri> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/<Nama database yang dikelola sendiri>_trigger.sqlContoh perintah
mysqldump -h localhost -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdb_trigger.sqlCatatanJika database MariaDB yang dikelola sendiri tidak berisi prosedur tersimpan, pemicu, atau fungsi, Anda dapat melewati langkah ini. Dalam proses ekspor ini, Anda harus menghapus DEFINER untuk memastikan kompatibilitas dengan ApsaraDB RDS untuk MariaDB.
Jalankan perintah berikut untuk mengimpor file data dan file prosedur tersimpan ke instans RDS:
mysql -h <Titik akhir publik instans RDS> -P <Port publik instans RDS> -u <Nama pengguna akun istimewa instans RDS> -p <Nama database tujuan pada instans RDS> < /tmp/<Nama database yang dikelola sendiri>.sql mysql -h <Titik akhir publik instans RDS> -P <Port publik instans RDS> -u <Nama pengguna akun istimewa instans RDS> -p <Nama database tujuan pada instans RDS < /tmp/<Nama database yang dikelola sendiri>trigger.sqlContoh perintah
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.sqlSegarkan alat koneksi jarak jauh dan lihat tabel dalam database tujuan instans RDS. Jika tabel berisi data, migrasi berhasil.