Saat melakukan migrasi atau sinkronisasi data ke database tujuan, Anda biasanya perlu membuat ulang semua akun database sumber secara manual—proses yang memakan waktu, memerlukan pengetahuan mendalam tentang database, dan rentan terhadap kelalaian. Data Transmission Service (DTS) mengotomatiskan proses ini dengan memigrasikan akun database sumber, termasuk kata sandi dan hak istimewanya, ke database tujuan sebagai bagian dari tugas migrasi atau sinkronisasi.
Prasyarat
Sebelum memulai, pastikan bahwa:
Akun database sumber dan tujuan yang digunakan dalam tugas DTS memiliki hak istimewa yang diperlukan. Lihat Hak istimewa yang diperlukan untuk perintah GRANT yang tepat.
Schema Migration atau Schema Synchronization dipilih sebagai jenis migrasi atau sinkronisasi. Artinya, pada langkah Configure Objects and Advanced Settings di wizard Create Task, Schema Synchronization dipilih untuk parameter Synchronization Types, atau Schema Migration dipilih untuk parameter Migration Types.
Database yang didukung
Database MySQL dapat berupa instans ApsaraDB RDS for MySQL atau database MySQL yang dikelola sendiri.
| Database sumber | Database tujuan |
|---|---|
| MySQL | MySQL, PolarDB for MySQL |
| PolarDB for MySQL | MySQL, PolarDB for MySQL |
Hak istimewa yang diperlukan
Sebelum migrasi akun dapat dijalankan, berikan hak istimewa berikut kepada akun tugas DTS untuk database sumber maupun tujuan.
Database sumber
Jalankan perintah berikut menggunakan akun istimewa. Ganti user dengan akun yang Anda gunakan untuk mengonfigurasi tugas DTS.
grant SELECT on mysql.user to user@'%';
grant SELECT on mysql.db to user@'%';
grant SELECT on mysql.columns_priv to user@'%';
grant SELECT on mysql.tables_priv to user@'%';Database tujuan
Jalankan perintah berikut menggunakan akun istimewa. Ganti user dengan akun yang Anda gunakan untuk mengonfigurasi tugas DTS.
grant SELECT on mysql.user to user@'%';
grant CREATE USER on *.* to user@'%';
grant GRANT OPTION on *.* to user@'%';Aktifkan migrasi akun
Pada langkah Advanced Settings di wizard Create Task, atur Whether to Migrate Accounts menjadi Yes.
Pilih akun yang akan dimigrasikan.
Nama akun mengikuti format
<username>@<host>, di mana<host>adalah host tempat akun tersebut dapat terhubung.Lengkapi konfigurasi tugas yang tersisa. Untuk detailnya, lihat Ikhtisar skenario sinkronisasi data atau Ikhtisar skenario migrasi data.
Hasil migrasi
Setelah tugas dijalankan, setiap akun akan memiliki salah satu hasil berikut:
Migrated: Akun dan semua hak istimewanya berhasil dimigrasikan sepenuhnya ke database tujuan.
Not migrated: Akun dilewati. Untuk melihat detailnya, buka tab User_Privilege di modul Schema Migration tugas DTS Anda. Akun yang sudah ada di database tujuan akan terdaftar sebagai akun yang dimigrasikan dengan anotasi
user already exists. Untuk semua kondisi yang mencegah migrasi, lihat Batasan.
Batasan
Kondisi berikut mencegah migrasi akun atau memengaruhi perilaku migrasi. Periksa kondisi yang berlaku untuk versi database dan jenis akun Anda sebelum menjalankan tugas.
Versi database tujuan
Jika database tujuan adalah instans MySQL 5.6 atau kluster PolarDB for MySQL, migrasi akun tidak didukung.
Batasan sumber MySQL 8.0
Jika database sumber adalah MySQL 8.0, akun dengan hak istimewa dinamis tidak dapat dimigrasikan.
Batasan hak istimewa
Akun dengan hak istimewa RELOAD, CREATE TABLESPACE, FILE, atau ALL PRIVILEGES tidak dapat dimigrasikan ke database tujuan MySQL atau PolarDB for MySQL.
Batasan jenis akun
Akun sistem (root, mysql.infoschema, mysql.session, mysql.sys) dan akun bawaan tidak dapat dimigrasikan. Memilih akun-akun ini menyebabkan tugas DTS mengembalikan pesan
Access denied for user 'XXXX'.Akun yang sudah ada di database tujuan tidak dapat dimigrasikan. Jika tugas DTS dijalankan ulang atau beberapa tugas DTS sedang berjalan, akun yang akan dimigrasikan mungkin sudah ada di database tujuan.
Akun yang tidak sah tidak dapat dimigrasikan.
Perilaku setelah migrasi
Kata sandi akun tidak dapat diatur ulang selama migrasi.
Akun istimewa berubah menjadi akun standar di database tujuan dan kehilangan izin manajemen database.
Kami menyarankan agar tidak memigrasikan akun instans database Alibaba Cloud tujuan yang hanya diakses menggunakan
localhostatau127.0.0.1, karena akun tersebut tidak mendukung migrasi data.
FAQ
Mengapa saya tidak bisa memilih suatu akun?
Akun tersebut merupakan akun sistem, atau akun dengan nama yang sama sudah ada di database tujuan.
Mengapa daftar akun kosong?
Akun tugas DTS tidak memiliki hak istimewa yang diperlukan pada database sumber atau tujuan. Verifikasi hak istimewa tersebut menggunakan perintah GRANT di Hak istimewa yang diperlukan.