Tutorial: Memigrasikan MySQL ke Azure Database for MySQL secara online menggunakan DMS
Anda dapat menggunakan Azure Database Migration Service untuk melakukan migrasi tanpa hambatan dari instans MySQL eksternal Anda ke Azure Database for MySQL dengan kemampuan migrasi data berkecepatan tinggi. Dalam tutorial ini, Anda memigrasikan database sampel dari instans MySQL 5.7 lokal ke Azure Database for MySQL (v5.7) menggunakan aktivitas migrasi offline di Azure Database Migration Service. Meskipun artikel mengasumsikan sumber menjadi instans database MySQL dan target menjadi Azure Database for MySQL, artikel tersebut dapat digunakan untuk bermigrasi dari satu Azure Database for MySQL ke instans lain hanya dengan mengubah nama dan kredensial server sumber. Selain itu, migrasi dari server MySQL versi lebih lama (v5.6 dan yang lebih lama) ke versi yang lebih baru juga didukung.
Catatan
Untuk versi skrip berbasis PowerShell dari pengalaman migrasi ini, lihat migrasi offline yang dapat ditulis ke Azure Database for MySQL.
Amazon Relational Database Service (RDS) untuk MySQL dan Amazon Aurora (berbasis MySQL) juga didukung sebagai sumber migrasi.
Dalam tutorial ini, Anda akan mempelajari cara:
- Buat instans DMS.
- Buat proyek migrasi MySQL di DMS.
- Migrasikan skema MySQL menggunakan DMS.
- Menjalankan migrasi.
- Memantau migrasinya.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda perlu:
Memiliki akun Azure dengan langganan aktif. Buat akun secara gratis.
Memiliki database MySQL lokal dengan versi 5.7 atau lebih baru. Jika belum, maka unduh dan instal edisi komunitas MySQL 5.7.
Buat Microsoft Azure Virtual Network for Azure Database Migration Service dengan menggunakan model penyebaran Azure Resource Manager, yang menyediakan konektivitas antar-situs ke server sumber lokal Anda dengan menggunakan ExpressRoute atau VPN. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan virtual, lihat Dokumentasi Jaringan Virtual, terutama artikel mulai cepat yang disertai detail langkah demi langkah.
Selama penyiapan networkNet virtual, jika Anda menggunakan ExpressRoute dengan peering jaringan ke Microsoft, tambahkan titik akhir layanan berikut ke subnet tempat layanan akan diprovisikan:
- Titik akhir database target (misalnya, titik akhir SQL, titik akhir Cosmos DB, serta sebagainya)
- Titik akhir penyimpanan
- Titik akhir bus layanan
Konfigurasi ini diperlukan karena Azure Database Migration Service tidak memiliki konektivitas internet.
Pastikan aturan Kelompok Keamanan Jaringan pada jaringan virtual tidak memblokir port keluar 443 ServiceTag untuk ServiceBus, Storage, dan AzureMonitor. Untuk mengetahui detail selengkapnya tentang pemfilteran lalu lintas NSG jaringan virtual, lihat artikel Memfilter lalu lintas jaringan dengan kelompok keamanan jaringan.
Buka firewall Windows Anda untuk mengizinkan koneksi dari Virtual Network for Azure Database Migration Service agar dapat mengakses MySQL Server sumber, yang secara default adalah port TCP 3306.
Saat menggunakan appliance firewall di depan database sumber Anda, Anda mungkin perlu menambahkan aturan firewall untuk mengizinkan koneksi dari Virtual Network untuk Azure Database Migration Service mengakses database sumber untuk migrasi.
Buat aturan firewall tingkat server atau konfigurasi titik akhir layanan VNET untuk Azure Database for MySQL target untuk memungkinkan akses Virtual Network for Azure Database Migration Service ke database target.
MySQL sumber harus menggunakan edisi komunitas MySQL yang didukung. Untuk menentukan versi instans MySQL, dalam utilitas MySQL atau MySQL Workbench, jalankan perintah berikut:
SELECT @@VERSION;
Azure Database for MySQL hanya mendukung tabel InnoDB. Untuk mengonversi tabel MyISAM ke InnoDB, lihat artikel Mengonversi Tabel dari MyISAM ke InnoDB
Pengguna harus memiliki hak istimewa untuk membaca data pada database sumber.
Agar berhasil menyelesaikan migrasi skema, di server sumber, pengguna yang melakukan migrasi memerlukan hak istimewa berikut:
- Hak istimewa "SELECT" di tingkat server pada sumbernya.
- Jika memigrasikan tampilan, pengguna harus memiliki hak istimewa "TAMPILKAN TAMPILAN" di server sumber dan hak istimewa "CREATE VIEW" di server target.
- Jika memigrasikan pemicu, pengguna harus memiliki hak istimewa "TRIGGER" pada server sumber dan target.
- Jika memigrasikan rutinitas (prosedur dan/atau fungsi), pengguna harus memiliki hak istimewa "CREATE ROUTINE" dan "ALTER ROUTINE" yang diberikan di tingkat server pada target.
- Jika memigrasikan peristiwa, pengguna harus memiliki hak istimewa "PERISTIWA" di server sumber dan target.
- Jika memigrasikan pengguna/login, pengguna harus memiliki hak istimewa "CREATE USER" di server target.
- Hak istimewa "DROP" di tingkat server pada target, untuk menghilangkan tabel yang mungkin sudah ada. Misalnya, saat mencoba kembali migrasi.
- Hak istimewa "REFERENSI" di tingkat server pada target, untuk membuat tabel dengan kunci asing.
- Jika bermigrasi ke MySQL 8.0, pengguna harus memiliki hak istimewa "SESSION_VARIABLES_ADMIN" di server target.
- Hak istimewa "CREATE" di tingkat server pada target.
- Hak istimewa "INSERT" di tingkat server pada target.
- Hak istimewa "PERBARUI" di tingkat server pada target.
- Hak istimewa "HAPUS" di tingkat server pada target.
Mengukur instans Azure Database for MySQL target
Untuk menyiapkan server Azure Database for MySQL target untuk beban data yang lebih cepat menggunakan Azure Database Migration Service, parameter server berikut dan perubahan konfigurasi direkomendasikan.
max_allowed_packet – set to 1073741824 (yaitu 1 GB) untuk mencegah masalah koneksi karena baris panjang.
slow_query_log – atur ke OFF untuk menonaktifkan log kueri lambat. Tindakan ini akan menghilangkan overhead yang disebabkan oleh pengelogan kueri yang lambat selama pemuatan data.
query_store_capture_mode - atur ke NONE untuk menonaktifkan Query Store. Tindakan ini akan menghilangkan overhead yang disebabkan oleh aktivitas pengambilan sampel oleh Query Store.
innodb_buffer_pool_size – Innodb_buffer_pool_size hanya dapat ditingkatkan dengan meningkatkan skala komputasi untuk server Azure Database for MySQL. Tingkatkan skala server ke vCore 64 SKU Tujuan Umum dari tingkat Harga portal selama migrasi untuk meningkatkan innodb_buffer_pool_size.
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 skala tingkat Penyimpanan - IOP untuk server Azure Database for MySQL meningkat secara progresif dengan peningkatan tingkat penyimpanan.
- Dalam opsi penyebaran Server Tunggal, untuk pemuatan yang lebih cepat, kami sarankan untuk meningkatkan tingkat penyimpanan guna meningkatkan IOP yang disediakan.
- Dalam opsi penyebaran Server Fleksibel, kami sarankan Anda menskalakan (menambah atau mengurangi) IOPS terlepas dari ukuran penyimpanan.
- Ukuran penyimpanan hanya dapat ditingkatkan skalanya, bukan ke bawah.
Pilih ukuran komputasi dan tingkat komputasi untuk server fleksibel target berdasarkan tingkat harga server tunggal sumber dan VCore berdasarkan detail dalam tabel berikut.
Tingkat Harga Server Tunggal VCore Server Tunggal Ukuran Komputasi Server Fleksibel Tingkat Komputasi Server Fleksibel Dasar 1 1 Tujuan Umum Standard_D16ds_v4 Dasar 1 2 Tujuan Umum Standard_D16ds_v4 Tujuan Umum 1 4 Tujuan Umum Standard_D16ds_v4 Tujuan Umum 1 8 Tujuan Umum Standard_D16ds_v4 Tujuan Umum 16 Tujuan Umum Standard_D16ds_v4 Tujuan Umum 32 Tujuan Umum Standard_D32ds_v4 Tujuan Umum 64 Tujuan Umum Standard_D64ds_v4 Memori Dioptimalkan 4 Kritis Bisnis Standard_E4ds_v4 Memori Dioptimalkan 8 Kritis Bisnis Standard_E8ds_v4 Memori Dioptimalkan 16 Kritis Bisnis Standard_E16ds_v4 Memori Dioptimalkan 32 Kritis Bisnis Standard_E32ds_v4 1 Untuk migrasi, pilih komputasi General Purpose 16 vCores untuk server fleksibel target untuk migrasi yang lebih cepat. Perkecil ukuran komputasi yang diinginkan untuk server target setelah migrasi selesai dengan mengikuti rekomendasi ukuran komputasi di bagian Melakukan aktivitas pascamigrasi di artikel ini.
Setelah migrasi selesai, Anda dapat mengembalikan parameter server dan konfigurasi ke nilai sebelumnya yang diperlukan beban kerja Anda.
Menyiapkan DMS
Dengan server fleksibel target Anda yang disebarkan dan dikonfigurasi, Anda selanjutnya perlu menyiapkan DMS untuk memigrasikan server tunggal Anda ke server fleksibel.
Mendaftarkan penyedia sumber
Untuk mendaftarkan penyedia sumber daya Microsoft.DataMigration, lakukan langkah-langkah berikut.
Sebelum membuat instans DMS pertama Anda, masuk ke portal Azure, lalu cari dan pilih Langganan.
Pilih langganan yang ingin Anda gunakan untuk membuat instans DMS, lalu pilih Penyedia sumber daya.
Cari istilah "Migrasi", lalu, untuk Microsoft.DataMigration, pilih Daftar.
Membuat instans Database Migration Service
Di portal Azure, pilih + Buat sumber daya, cari Azure Database Migration Service, lalu pilih Azure Database Migration Service dari daftar dropdown.
Pada layar Azure Database Migration Service, pilih Buat.
Pada layar Buat Layanan Migrasi, tentukan nama layanan, langganan, dan grup sumber daya baru atau yang sudah ada.
Pilih tingkat harga dan pindah ke layar jaringan. Kemampuan migrasi offline hanya tersedia di tingkat harga Premium.
Untuk mengetahui informasi selengkapnya tentang tingkat biaya dan harga, lihat halaman harga.
Pilih jaringan virtual yang ada dari daftar atau sediakan nama jaringan virtual baru yang akan dibuat. Pindah ke layar tinjau + buat. Secara opsional, Anda dapat menambahkan tag ke layanan menggunakan layar tag.
Jaringan virtual memberi Azure Database Migration Service akses ke SQL Server sumber dan instans Azure SQL Database target.
Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan virtual di portal Microsoft Azure, lihat artikel Membuat jaringan virtual menggunakan portal Microsoft Azure.
Tinjau konfigurasi, lalu pilih Buat untuk membuat layanan.
Membuat proyek migrasi
Setelah layanan dibuat, temukan layanan di portal Azure, buka lalu buat proyek migrasi baru.
Di portal Azure, pilih Semua layanan, cari Azure Database Migration Service, lalu pilih Azure Database Migration Services.
Pilih instans layanan migrasi Anda dari hasil pencarian dan pilih + Proyek Migrasi Baru.
Di layar Proyek migrasi baru, tentukan nama untuk proyek, di kotak pilihan Jenis server sumber, pilih MySQL, di kotak pilihan Jenis server target, pilih Azure Database for MySQL, dan di kotak pilihan Jenis aktivitas migrasi, pilih Migrasi data. Pilih Buat dan jalankan aktivitas.
Sebagai gantinya, Anda dapat memilih Hanya buat proyek untuk membuat proyek migrasi sekarang dan menjalankan migrasi nanti.
Mengonfigurasi proyek migrasi
Pada layar Pilih sumber, tentukan detail koneksi untuk instans MySQL sumber, dan pilih Berikutnya : Pilih target>>
Pada layar Pilih target, tentukan detail koneksi untuk instans Azure Database for MySQL target, dan pilih Berikutnya : Pilih database>>
Pada layar Pilih database, petakan database sumber dan target untuk migrasi, dan pilih Berikutnya : Konfigurasikan pengaturan>> migrasi. Anda dapat memilih opsi Jadikan Server Sumber Sebagai Baca-Saja untuk menjadikan sumber sebagai baca-saja, tetapi berhati-hatilah bahwa ini adalah pengaturan tingkat server. Jika dipilih, upaya ini mengatur seluruh server menjadi baca-saja, bukan hanya database yang dipilih.
Jika database target berisi nama database yang sama dengan database sumber, Azure Database Migration Service memilih database target secara default.
Pada layar Konfigurasikan pengaturan migrasi, pilih tabel yang akan menjadi bagian dari migrasi, dan pilih Berikutnya : Ringkasan>>. Jika tabel target memiliki data apa pun, tabel tersebut tidak dipilih secara default tetapi Anda dapat secara eksplisit memilihnya dan tabel tersebut akan dipotong sebelum memulai migrasi.
Di layar Ringkasan, dalam kotak teks Nama aktivitas, tentukan nama untuk aktivitas migrasi dan tinjau ringkasan untuk memastikan bahwa detail sumber dan target cocok dengan apa yang telah Anda tentukan sebelumnya.
Pilih Mulai migrasi. Jendela aktivitas migrasi muncul, dan Status aktivitas menjadi Memulai. Status berubah menjadi Berjalan saat migrasi tabel dimulai.
Memantau migrasi
Pada layar aktivitas migrasi, pilih Refresh untuk memperbarui tampilan dan melihat kemajuan tentang jumlah tabel yang selesai.
Anda dapat memilih nama database pada layar aktivitas untuk melihat status setiap tabel saat dimigrasikan. Pilih Refresh untuk memperbarui display.
Menyelesaikan migrasi
Pada layar aktivitas migrasi, pilih Segarkan untuk memperbarui tampilan hingga Status migrasi ditampilkan sebagai Selesai.
Aktivitas pasca migrasi
Migrasi langsung di migrasi offline adalah proses yang bergantung pada aplikasi yang berada di luar cakupan dokumen ini, tetapi disarankan untuk mengikuti aktivitas pasca migrasi berikut:
- Membuat login, peran, dan izin sesuai persyaratan aplikasi.
- Membuat ulang semua pemicu pada database target seperti yang diekstrak selama langkah pra-migrasi.
- Melakukan pengujian perubahan aplikasi terhadap basis data target untuk menjamin keberhasilan migrasi.
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan Layanan Migrasi Database, maka Anda dapat menghapus layanan dengan langkah-langkah berikut:
Di portal Azure, pilih Semua layanan, cari Azure Database Migration Service, lalu pilih Azure Database Migration Services.
Pilih instans layanan migrasi Anda dari hasil pencarian dan pilih Hapus Layanan.
Pada dialog konfirmasi, ketik nama layanan di kotak teks KETIK NAMA LAYANAN MIGRASI DATABASE dan pilih Hapus.
Konten terkait
- Memecahkan masalah dan kesalahan umum Azure Database Migration Service (klasik)
- Memecahkan masalah kesalahan DMS saat menghubungkan ke database sumber
- Apa itu Azure Database Migration Service?
- Apa itu Azure Database for MySQL?
- Memigrasikan MySQL ke Azure Database for MySQL secara offline dengan PowerShell & Azure Database Migration Service