Memigrasikan database MySQL Anda ke Azure Database for MySQL - Server Fleksibel menggunakan cadangan dan pemulihan

BERLAKU UNTUK: Azure Database for MySQL - Server Tunggal Database Azure untuk MySQL - Server Fleksibel

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Artikel ini menjelaskan dua cara umum untuk mencadangkan dan memulihkan database di server fleksibel Azure Database for MySQL.

  • Cadangkan dan pulihkan dari baris perintah (menggunakan mysqldump).
  • Cadangkan dan pulihkan menggunakan PHPMyAdmin.

Anda juga dapat merujuk ke Panduan Migrasi Database untuk informasi terperinci dan kasus penggunaan tentang memigrasikan database ke server fleksibel Azure Database for MySQL. Panduan ini menyediakan panduan yang mengarahkan perencanaan dan eksekusi migrasi MySQL yang berhasil ke Azure.

Sebelum Anda mulai

Untuk menelusuri panduan ini, Anda perlu:

Tip

Jika Anda ingin memigrasikan database besar dengan ukuran database lebih dari 1 TB, sebaiknya pertimbangkan untuk menggunakan alat komunitas seperti mydumper/myloader yang mendukung ekspor dan impor paralel. Pelajari cara memigrasikan database MySQL besar.

Penggunaan umum untuk pencadangan dan pemulihan

Kasus penggunaan umum yaitu:

  • Beralih dari penyedia layanan terkelola lainnya - Sebagian besar penyedia layanan terkelola mungkin tidak menyediakan akses ke file penyimpanan fisik karena alasan keamanan sehingga pencadangan dan pemulihan logis adalah satu-satunya opsi untuk bermigrasi.

  • Migrasi dari lingkungan lokal atau Komputer virtual - Server fleksibel Azure Database for MySQL tidak mendukung pemulihan cadangan fisik, yang membuat pencadangan dan pemulihan logis sebagai pendekatan HANYA.

  • Memindahkan penyimpanan cadangan Anda dari penyimpanan redundan secara lokal ke penyimpanan geo-redundan - Server fleksibel Azure Database for MySQL memungkinkan konfigurasi penyimpanan redundan lokal atau geo-redundan untuk cadangan hanya diizinkan selama pembuatan server. Setelah server diprovisikan, Anda tidak dapat mengubah opsi redundansi penyimpanan cadangan. Untuk memindahkan penyimpanan cadangan Anda dari penyimpanan redundan lokal ke geo-redundan, pencadangan dan pemulihan adalah SATU-SATUNYA opsi.

  • Migrasi dari mesin penyimpanan alternatif ke InnoDB - Server fleksibel Azure Database for MySQL hanya mendukung mesin Penyimpanan InnoDB, dan karenanya tidak mendukung mesin penyimpanan alternatif. Jika tabel Anda dikonfigurasi dengan mesin penyimpanan lain, konversikan ke format mesin InnoDB sebelum migrasi ke server fleksibel Azure Database for MySQL.

    Misalnya, jika Anda memiliki WordPress atau WebApp menggunakan tabel MyISAM, pertama-tama konversi tabel tersebut dengan bermigrasi ke format InnoDB sebelum memulihkan ke server fleksibel Azure Database for MySQL. Gunakan klausa ENGINE=InnoDB untuk mengatur mesin yang akan digunakan saat membuat tabel baru, lalu transfer data ke tabel yang kompatibel sebelum Anda memulihkannya.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    

Penting

  • Untuk menghindari masalah kompatibilitas, pastikan bahwa versi MySQL yang sama digunakan pada sistem sumber dan tujuan saat mencadangkan database. Misalnya, jika server MySQL Anda yang ada adalah versi 5.7, maka Anda harus bermigrasi ke instans server fleksibel Azure Database for MySQL yang dikonfigurasi untuk menjalankan versi 5.7. Perintah mysql_upgrade tidak berfungsi dalam instans server fleksibel Azure Database for MySQL, dan tidak didukung.
  • Jika Anda perlu melakukan peningkatan di seluruh versi MySQL, pertama-tama cadangkan atau ekspor database versi lama Anda ke versi MySQL yang lebih baru di lingkungan Anda sendiri. Kemudian jalankan mysql_upgrade sebelum mencoba migrasi ke instans server fleksibel Azure Database for MySQL.

Pertimbangan performa

Untuk mengoptimalkan performa, perhatikan pertimbangan ini saat mencadangkan database besar:

  • Gunakan opsi exclude-triggers di mysqldump saat membuang database. Kecualikan pemicu dari file cadangan untuk menghindari eksekusi perintah pemicu selama pemulihan data.
  • Gunakan opsi single-transaction untuk mengatur mode isolasi transaksi ke REPEATABLE READ dan mengirim pernyataan START TRANSACTION SQL ke server sebelum mencadangkan data. Mencadangkan banyak tabel dalam satu transaksi menyebabkan penggunaan penyimpanan tambahan selama pemulihan Opsi single-transaction dan opsi lock-tables saling eksklusif karena LOCK TABLES menyebabkan transaksi yang tertunda diterapkan secara implisit. Untuk mencadangkan tabel besar, gabungkan opsi single-transaction dengan opsi quick.
  • Gunakan sintaks beberapa baris extended-insert yang menyertakan beberapa daftar VALUE. Hal ini akan menghasilkan file cadangan yang lebih kecil dan mempercepat sisipan saat file dimuat ulang.
  • Gunakan opsi order-by-primary di mysqldump saat Anda mencadangkan database, sehingga data ditulis dalam urutan kunci utama.
  • Gunakan opsi disable-keys di mysqldump saat Anda mencadangkan data, untuk menonaktifkan batasan kunci asing sebelum dimuat. Menonaktifkan pemeriksaan kunci asing akan memberikan keuntungan kinerja yang signifikan. Aktifkan batasan dan periksa data setelah pemuatan untuk memastikan integritas referensial.
  • Gunakan tabel partisi bila sesuai.
  • Muat data secara paralel. Hindari terlalu banyak paralelisme yang akan menyebabkan Anda mencapai batas sumber daya, dan pantau sumber daya dengan menggunakan metrik yang tersedia di portal Microsoft Azure.
  • Gunakan opsi defer-table-indexes di mysqldump saat mencadangkan database, sehingga pembuatan indeks terjadi setelah data tabel dimuat.
  • Salin file cadangan ke blob/penyimpanan Azure dan lakukan pemulihan dari sana, yang seharusnya jauh lebih cepat daripada melakukan pemulihan di Internet.

Membuat database pada instans server fleksibel Azure Database for MySQL target

Buat database kosong pada instans server fleksibel Azure Database for MySQL target tempat Anda ingin memigrasikan data. Gunakan alat seperti MySQL Workbench atau mysql.exe untuk membuat database. Database bisa memiliki nama yang sama dengan database yang berisi data yang dicadangkan, atau Anda bisa membuat database dengan nama yang berbeda.

Untuk tersambung, temukan informasi koneksi di Gambaran Umum instans server fleksibel Azure Database for MySQL Anda.

Find the connection information in the Azure portal

Tambahkan informasi koneksi ke MySQL Workbench.

MySQL Workbench Connection String

Menyiapkan instans server fleksibel Azure Database for MySQL target untuk pemuatan data cepat

Untuk menyiapkan instans server fleksibel Azure Database for MySQL target untuk pemuatan data yang lebih cepat, parameter dan konfigurasi server berikut perlu diubah.

  • max_allowed_packet – diatur ke 1073741824 (yaitu 1GB) untuk mencegah masalah luapan karena baris panjang.
  • slow_query_log – atur ke OFF untuk menonaktifkan log kueri lambat. Ini menghilangkan overhead yang disebabkan oleh pengelogan kueri yang lambat selama pemuatan data.
  • query_store_capture_mode - atur ke NONE untuk menonaktifkan Query Store. Ini menghilangkan overhead yang disebabkan oleh aktivitas pengambilan sampel oleh Penyimpanan Kueri.
  • innodb_buffer_pool_size – – Tingkatkan server ke 32 vCore Memory Optimized SKU dari tingkat Harga portal selama migrasi untuk meningkatkan ukuran innodb_buffer_pool_size. Innodb_buffer_pool_size hanya dapat ditingkatkan dengan meningkatkan komputasi untuk instans server fleksibel Azure Database for MySQL.
  • innodb_io_capacity & innodb_io_capacity_max - Ubah ke 9000 dari parameter Server di portal Microsoft Azure untuk meningkatkan pemanfaatan IO untuk mengoptimalkan kecepatan migrasi.
  • innodb_write_io_threads & innodb_write_io_threads - Ubah ke 4 dari parameter Server di portal Microsoft Azure untuk meningkatkan kecepatan migrasi.
  • Meningkatkan tingkat Penyimpanan – IOP untuk server fleksibel Azure Database for MySQL meningkat secara progresif dengan peningkatan tingkat penyimpanan. Untuk pemuatan yang lebih cepat, sebaiknya tingkatkan tingkat penyimpanan untuk meningkatkan IOP yang diprovisikan. Ingat bahwa skala penyimpanan hanya dapat ditingkatkan, tidak diturunkan.

Setelah migrasi selesai, Anda dapat mengembalikan parameter server dan konfigurasi tingkat komputasi ke nilai sebelumnya.

Melakukan pencadangan dan pemulihan menggunakan utilitas mysqldump

Membuat cadangan dari baris perintah dengan menggunakan mysqldump

Untuk mencadangkan database MySQL yang ada di server lokal atau di komputer virtual, jalankan perintah berikut dengan menggunakan mysqldump:

mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

Parameter yang akan digunakan adalah:

  • [uname] Nama pengguna database Anda
  • [pass] Kata sandi untuk database Anda (perhatikan bahwa tidak ada spasi antara -p dan kata sandi)
  • [dbname] Nama database Anda
  • [backupfile.sql] Nama file untuk cadangan database Anda
  • [--opt] Opsi mysqldump

Misalnya, untuk mencadangkan database bernama 'testdb' di server MySQL Anda dengan nama pengguna 'testuser' dan tanpa kata sandi ke file testdb_backup.sql, gunakan perintah berikut. Perintah akan mencadangkan database testdb ke dalam file yang disebut testdb_backup.sql, yang berisi semua pernyataan SQL yang diperlukan untuk membuat ulang database. Pastikan bahwa nama pengguna 'testuser' memiliki setidaknya hak istimewa SELECT untuk tabel yang dicadangkan, SHOW VIEW untuk tampilan yang dicadangkan, TRIGGER untuk pemicu yang dicadangkan, dan LOCK TABLES jika --single-transactionopsi tidak digunakan.

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'testuser'@'hostname' IDENTIFIED BY 'password';

Sekarang jalankan mysqldump untuk membuat cadangan database testdb

mysqldump -u root -p testdb > testdb_backup.sql

Guna memilih tabel tertentu untuk dicadangkan di database Anda, cantumkan nama tabel, dipisahkan oleh spasi. Misalnya, untuk mencadangkan table1 dan table2 saja dari 'testdb', ikuti contoh ini:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Untuk mencadangkan lebih dari satu database sekaligus, gunakan pengalih --database dan cantumkan nama database, dipisahkan oleh spasi.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Memulihkan database MySQL Anda menggunakan command-line

Setelah Anda membuat database target, Anda bisa menggunakan perintah mysql untuk memulihkan data ke database yang baru dibuat dari file cadangan.

mysql -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Dalam contoh ini, pulihkan data ke database yang baru dibuat pada instans server fleksibel Azure Database for MySQL target.

Berikut adalah contoh cara menggunakan mysql ini untuk Server Tunggal:

mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Berikut adalah contoh cara menggunakan mysql ini untuk Server Fleksibel:

mysql -h mydemoserver.mysql.database.azure.com -u myadmin -p testdb < testdb_backup.sql

Melakukan pencadangan dan pemulihan menggunakan PHPMyAdmin

Ikuti langkah-langkah berikut untuk mencadangkan dan memulihkan database menggunakan PHPMyadmin.

Catatan

Untuk server tunggal, nama pengguna harus dalam format ini , 'username@servername' tetapi untuk server fleksibel Anda cukup menggunakan 'nama pengguna'. Jika Anda menggunakan 'username@servername' untuk server fleksibel, koneksi akan gagal.

Mengekspor dengan PHPMyadmin

Untuk mengekspor, Anda dapat menggunakan alat umum phpMyAdmin, yang mungkin sudah diinstal secara lokal di lingkungan Anda. Untuk mengekspor database MySQL Anda menggunakan PHPMyAdmin:

  1. Buka phpMyAdmin.
  2. Pilih database Anda. Klik nama database dalam daftar di sebelah kiri.
  3. Pilih ink Ekspor. Halaman baru tampaknya menampilkan cadangan database.
  4. Di area Ekspor, pilih tautan Pilih Semua untuk memilih tabel di database Anda.
  5. Di area opsi SQL, pilih opsi yang sesuai.
  6. Pilih opsi Simpan sebagai file dan opsi pemadatan terkait, lalu pilih tombol Buka. Kotak dialog akan muncul yang meminta Anda untuk menyimpan file secara lokal.

Mengimpor menggunakan PHPMyAdmin

Mengimpor database mirip dengan proses mengekspor. Anda dapat melakukan tindakan berikut:

  1. Buka phpMyAdmin.
  2. Di halaman penyiapan phpMyAdmin, pilih Tambahkan untuk menambahkan instans server fleksibel Azure Database for MySQL Anda. Berikan detail koneksi dan info masuk.
  3. Buat database dengan nama yang tepat, lalu pilih di panel kiri. Untuk menulis ulang database yang sudah ada, pilih nama database, pilih semua kotak centang di samping nama tabel, dan pilih Hilangkan untuk menghapus tabel yang sudah ada.
  4. Klik link SQL untuk menampilkan halaman tempat Anda dapat memasukkan perintah SQL atau mengunggah file SQL Anda.
  5. Pilih tombol telusur untuk menemukan file database.
  6. Pilih tombol Buka untuk mengekspor cadangan, menjalankan perintah SQL, dan membuat ulang database Anda.

Masalah Umum

Untuk mengetahui masalah yang diketahui, tips dan trik, sebaiknya lihat blog komunitas teknologi kami.

Langkah berikutnya

  • Koneksi aplikasi ke server fleksibel Azure Database for MySQL.
  • Untuk informasi selengkapnya tentang memigrasikan database ke server fleksibel Azure Database for MySQL, lihat Panduan Migrasi Database.
  • Jika Anda ingin memigrasikan database besar dengan ukuran database lebih dari 1 TB, Anda mungkin ingin mempertimbangkan untuk menggunakan alat komunitas seperti mydumper/myloader yang mendukung ekspor dan impor paralel. Pelajari cara memigrasikan database MySQL besar.