Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Migrasi Skema MySQL adalah fitur baru yang memungkinkan pengguna memigrasikan skema untuk objek seperti database, tabel, tampilan, pemicu, peristiwa, prosedur tersimpan, dan fungsi. Fitur ini berguna untuk mengotomatiskan beberapa pekerjaan yang diperlukan untuk menyiapkan database target sebelum memulai migrasi.
Implementasi saat ini
Dalam implementasi saat ini, pengguna dapat memilih objek server (tampilan, pemicu, peristiwa, rutinitas) yang ingin mereka migrasikan di tab Pilih database di bagian Pilih Objek Server saat mengonfigurasi proyek migrasi DMS. Selain itu, mereka dapat memilih database di bagian Pilih database yang skemanya akan dimigrasikan.
Untuk memigrasikan skema untuk objek tabel, navigasikan ke tab Pilih tabel . Sebelum tab terisi, DMS mengambil tabel dari database yang dipilih pada sumber dan target, lalu menentukan apakah tabel ada dan berisi data. Jika Anda memilih tabel dalam database sumber yang tidak ada di database target, kotak di bawah Skema Migrasi dipilih secara default. Untuk tabel yang ada di database target, catatan menunjukkan bahwa tabel yang dipilih sudah berisi dan akan dipotong. Selain itu, jika skema tabel di server target tidak cocok dengan skema pada sumbernya, tabel akan dihilangkan sebelum migrasi berlanjut.
Saat Anda melanjutkan ke tab berikutnya, DMS memvalidasi input Anda dan mengonfirmasi bahwa tabel yang dipilih cocok jika dipilih tanpa input migrasi skema. Setelah validasi berlalu, Anda dapat memulai skenario migrasi.
Setelah Anda memulai migrasi dan saat migrasi berlangsung, setiap tabel dibuat sebelum memigrasikan datanya dari sumber ke target. Kecuali untuk pemicu dan tampilan, yang dimigrasikan setelah migrasi data selesai, objek lain dibuat untuk tabel sebelum migrasi data.
Cara kerja Migrasi Skema
Migrasi skema didukung oleh sintaksis "SHOW CREATE" MySQL untuk mengumpulkan informasi skema untuk objek dari sumbernya. Saat memigrasikan skema untuk objek dari sumber ke target, DMS memproses input dan memigrasikan objek secara individual. DMS juga membungkus kolase, kumpulan karakter, dan informasi relevan lainnya yang disediakan oleh kueri "SHOW CREATE" ke kueri buat yang kemudian diproses ke target.
Rutinitas dan Peristiwa dimigrasikan sebelum data dimigrasikan. Skema untuk setiap tabel individu segera dimigrasikan sebelum pergerakan data dimulai untuk tabel. Pemicu dimigrasikan setelah bagian migrasi data. Untuk tampilan, karena MySQL memvalidasi konten tampilan dan dapat bergantung pada tabel lain, DMS terlebih dahulu membuat tabel untuk tampilan sebelum dimulainya pergerakan data database lalu menghilangkan tabel sementara dan membuat tampilan.
Saat mengkueri sumber dan target, jika terjadi kesalahan sementara, DMS mencoba kembali kueri. Namun, jika terjadi kesalahan bahwa DMS tidak dapat pulih dari – sebagai contoh, sintaksis yang tidak valid saat melakukan migrasi peningkatan versi – DMS gagal dan melaporkan bahwa pesan kesalahan saat selesai. Jika kegagalan terjadi saat membuat tabel, data untuk tabel tersebut tidak dimigrasikan, tetapi data dan migrasi skema untuk tabel lain yang dipilih dicoba. Jika kesalahan yang tidak dapat dipulihkan terjadi untuk peristiwa, rutinitas, atau saat membuat tabel sementara untuk tampilan, migrasi gagal sebelum menjalankan migrasi untuk tabel yang dipilih dan objek yang dimigrasikan mengikuti bagian migrasi data.
Karena tabel sementara dibuat untuk tampilan, jika ada kegagalan memigrasikan tampilan, tabel sementara dibiarkan pada target. Setelah masalah yang mendasar diperbaiki dan migrasi dicoba kembali, DMS menghapus tabel tersebut sebelum membuat tampilan. Atau, jika memilih untuk tidak menggunakan migrasi skema untuk tampilan dalam migrasi di masa mendatang, tabel sementara perlu dihapus secara manual sebelum memigrasikan tampilan secara manual.
Prasyarat
Untuk menyelesaikan migrasi skema dengan sukses, pastikan prasyarat berikut telah diberlakukan.
Hak istimewa "BACA" pada database sumber.
Hak istimewa "SELECT" untuk kemampuan memilih objek dari database
Jika memigrasikan tampilan, pengguna harus memiliki hak istimewa "TAMPILKAN TAMPILAN".
Jika memigrasikan pemicu, pengguna harus memiliki hak istimewa "TRIGGER".
Jika memigrasikan rutinitas (prosedur dan/atau fungsi), pengguna harus diberi nama dalam klausul pendefinisi rutin. Atau, berdasarkan versi, pengguna harus memiliki hak istimewa berikut:
Untuk 5.7, memiliki akses "SELECT" ke tabel "mysql.proc".
Untuk 8.0, memiliki hak istimewa "SHOW_ROUTINE" atau memiliki hak istimewa "CREATE ROUTINE," "ALTER ROUTINE," atau "EXECUTE" yang diberikan pada cakupan yang mencakup rutinitas.
Jika memigrasikan peristiwa, pengguna harus memiliki hak istimewa "PERISTIWA" untuk database tempat peristiwa akan ditampilkan.
Batasan
Saat memigrasikan objek non tabel, DMS tidak mendukung penggantian nama database.
Saat bermigrasi ke server target yang telah bin_log diaktifkan, log_bin_trust_function_creators harus diaktifkan untuk memungkinkan pembuatan rutinitas dan pemicu.
Saat ini tidak ada dukungan untuk memigrasikan klausa DEFINER untuk objek. Semua jenis objek dengan pendefinisi pada sumber dihilangkan dan setelah migrasi, pendefinisi default untuk tabel diatur ke login yang digunakan untuk menjalankan migrasi.
Beberapa peningkatan versi tidak didukung jika ada perubahan yang melanggar dalam kompatibilitas versi. Lihat dokumen MySQL untuk informasi selengkapnya tentang peningkatan versi.
Saat ini kita hanya dapat memigrasikan skema sebagai bagian dari pergerakan data. Jika tidak ada yang dipilih untuk pergerakan data, tidak ada migrasi skema yang terjadi. Jika tabel dipilih untuk migrasi skema, tabel dipilih untuk pergerakan data.