Bagikan melalui


Melakukan migrasi database besar ke Azure Database for MySQL menggunakan mydumper/myloader

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang merupakan status End Of Life (EOL). Harap pertimbangkan penggunaan dan perencanaan Anda yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

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

Azure Database for MySQL adalah layanan terkelola yang Anda gunakan untuk menjalankan, mengelola, dan menskalakan database MySQL dengan ketersediaan tinggi di cloud. Untuk memigrasikan database MySQL yang lebih besar dari 1 TB ke Azure Database for MySQL, pertimbangkan untuk menggunakan alat komunitas seperti mydumper/myloader, yang memberikan keuntungan berikut:

  • Paralelisme, untuk membantu mengurangi waktu migrasi.
  • Performa yang lebih baik, dengan menghindari rutinitas konversi tataan karakter yang mahal.
  • Format output, dengan file terpisah untuk tabel, metadata, dll., yang memudahkan untuk melihat/mengurai data. Konsistensi, dengan mempertahankan rekam jepret di semua utas.
  • Posisi log primer dan replika yang akurat.
  • Manajemen yang mudah, karena mendukung Perl Compatible Regular Expressions (PCRE) untuk menentukan penyertaan dan pengecualian database dan tabel.
  • Skema dan data berjalan bersama- sama. Tidak perlu menanganinya secara terpisah seperti alat migrasi logis lainnya.

Mulai cepat ini menunjukkan kepada Anda cara menginstal, mencadangkan, dan memulihkan database MySQL dengan menggunakan mydumper/myloader.

Prasyarat

Sebelum Anda mulai memigrasikan database MySQL, Anda perlu:

  1. Membuat server Azure Database for MySQL menggunakan portal Azure.

  2. Membuat Azure VM yang menjalankan Linux dengan menggunakan portal Azure (lebih disukai Ubuntu).

    Catatan

    Sebelum menginstal alat, pertimbangkan poin-poin berikut:

    • Jika sumber Anda berada secara lokal dan memiliki koneksi bandwidth tinggi ke Azure (menggunakan ExpressRoute), pertimbangkan untuk menginstal alat pada Azure VM.
    • Jika Anda memiliki tantangan dalam bandwidth antara sumber dan target, pertimbangkan untuk menginstal mydumper di dekat sumber dan myloader di dekat server target. Anda dapat menggunakan alat Azcopy untuk memindagkan dara dari lokal atau solusi cloud lain ke Azure.
  3. Instal klien mysql, lakukan langkah-langkah berikut:

  • Perbarui indeks paket di Azure VM yang menjalankan Linux dengan menjalankan perintah berikut:
sudo apt update
  • Instal paket klien mysql dengan menjalankan perintah berikut:
sudo apt install mysql-client

Instal mydumper/myloader

Untuk menginstal mydumper/myloader, lakukan langkah berikut.

  1. Bergantung pada distribusi OS Anda, unduh paket yang sesuai untuk mydumper/myloader, dengan menjalankan perintah berikut:

    wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Catatan

    $(lsb_release -cs) membantu mengidentifikasi distribusi Anda.

  2. Untuk menginstal paket .deb untuk mydumper, jalankan perintah berikut:

    sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Tip

    Perintah yang Anda gunakan untuk menginstal paket akan berbeda berdasarkan pada distribusi Linux yang Anda miliki karena alat penginstal berbeda. Mydumper/myloader tersedia untuk distribusi berikut Fedora, RedHat, Ubuntu, Debian, CentOS, openSUSE, dan MacOSX. Untuk mengetahui informasi selengkapnya, lihat Cara menginstal mydumper

Membuat cadangan menggunakan mydumper

  • Untuk membuat cadangan menggunakan mydumper, jalankan perintah berikut:

    mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl  --regex '^(<Db_name>\.)' -L mydumper-logs.txt
    

Perintah ini menggunakan variabel berikut:

  • --host: Host tempat terhubung

  • --user: Nama pengguna dengan hak istimewa yang diperlukan

  • --password: Kata sandi pengguna

  • --rows: Cara membagi tabel menjadi potongan dari banyak baris ini

  • --outputdir: Direktori tempat membuat file output

  • --regex: Regex untuk Pencocokan database.

  • --trx-consistency-only: Khusus konsistensi transaksi

  • --threads: Jumlah utas yang akan digunakan, default 4. Direkomendasikan menggunakan nilai yang sama dengan 2x dari vCore komputer.

    Catatan

    Untuk mengetahui informasi selengkapnya tentang opsi lain, Anda dapat menggunakan mydumper, jalankan perintah berikut: mydumper --help . Untuk mengetahui detail selengkapnya, lihat dokumentasi mydumper\myloader
    Untuk mencadangkan beberapa database secara paralel, Anda dapat memodifikasi variabel regex seperti yang ditunjukkan dalam contoh: regex '^(DbName1.|DbName2.)

Memulihkan database Anda menggunakan myloader

  • Untuk memulihkan database yang Anda cadangkan menggunakan mydumper, jalankan perintah berikut:

    myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
    

Perintah ini menggunakan variabel berikut:

  • --host: Host tempat terhubung
  • --user: Nama pengguna dengan hak istimewa yang diperlukan
  • --password: Kata sandi pengguna
  • --directory: Lokasi tempat cadangan disimpan.
  • --queries-per-transaction: Merekomendasikan pengaturan untuk nilai yang tidak lebih dari 500
  • --threads: Jumlah utas yang akan digunakan, default 4. Merekomendasikan penggunaan nilai yang sama dengan 2x dari vCore komputer

Tip

Untuk mengetahui informasi selengkapnya tentang opsi lain, Anda dapat menggunakan myloader, jalankan perintah berikut: myloader --help

Setelah database dipulihkan, selalu disarankan untuk memvalidasi konsistensi data antara sumber dan database target.

Catatan

Kirimkan masalah atau umpan balik apa pun mengenai alat mydumper/myloader di sini.