Verileri bir hedef veritabanına geçirdiğinizde veya eşitlediğinizde genellikle tüm kaynak veritabanı hesaplarını manuel olarak yeniden oluşturmanız gerekir. Bu süreç zaman alıcıdır, derin veritabanı bilgisi gerektirir ve atlamalara açıktır. Data Transmission Service (DTS), geçiş veya eşitleme görevinin bir parçası olarak kaynak veritabanı hesaplarını (parolaları ve ayrıcalıkları dahil) hedef veritabanına geçirerek bu işlemi otomatikleştirir.
Ön koşullar
Başlamadan önce şunlardan emin olun:
DTS görevinde kullanılan kaynak ve hedef veritabanı hesaplarının gerekli ayrıcalıklara sahip olması gerekir. Tam yetkilendirme komutları için Gerekli ayrıcalıklar bölümüne bakın.
Geçiş veya eşitleme türü olarak Schema Migration veya Schema Synchronization seçilmiş olmalıdır. Yani, Görev Oluştur sihirbazının Configure Objects and Advanced Settings adımında Schema Synchronization parametresi için Synchronization Types seçili olmalı veya Migration Types parametresi için Schema Migration seçili olmalıdır.
Desteklenen veritabanları
MySQL veritabanları ApsaraDB RDS for MySQL örnekleri veya kendi kendine yönetilen MySQL veritabanları olabilir.
| Kaynak veritabanı | Hedef veritabanı |
|---|---|
| MySQL | MySQL, PolarDB for MySQL |
| PolarDB for MySQL | MySQL, PolarDB for MySQL |
Gerekli ayrıcalıklar
Hesap geçişini çalıştırmadan önce, hem kaynak hem de hedef veritabanlarındaki DTS görev hesaplarına aşağıdaki ayrıcalıkları verin.
Kaynak veritabanı
Aşağıdaki komutları yetkili bir hesapla çalıştırın. user ifadesini DTS görevini yapılandırmak için kullandığınız hesapla değiştirin.
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@'%';
Hedef veritabanı
Aşağıdaki komutları yetkili bir hesapla çalıştırın. user ifadesini DTS görevini yapılandırmak için kullandığınız hesapla değiştirin.
grant SELECT on mysql.user to user@'%';
grant CREATE USER on *.* to user@'%';
grant GRANT OPTION on *.* to user@'%';
Hesap geçişini etkinleştirin
Görev Oluştur sihirbazının Advanced Settings adımında Whether to Migrate Accounts ayarını Yes olarak belirleyin.
-
Geçirilecek hesapları seçin.
Hesap adları
<username>@<host>biçimini takip eder; burada<host>hesabın bağlanabileceği ana bilgisayar adıdır. Görev yapılandırmasının geri kalanını tamamlayın. Ayrıntılar için bkz. Veri eşitleme senaryolarına genel bakış veya Veri geçişi senaryolarına genel bakış.
Geçiş sonuçları
Görev çalıştıktan sonra her hesap için aşağıdaki sonuçlardan biri oluşur:
Migrated: Hesap ve tüm ayrıcalıkları hedef veritabanına tamamen geçirilmiştir.
Not migrated: Hesap atlanmıştır. Ayrıntıları görüntülemek için DTS görevinizin Schema Migration modülündeki User_Privilege sekmesine gidin. Hedef veritabanında zaten var olan hesaplar,
user already existsaçıklamasıyla geçirilmiş hesaplar olarak listelenir. Geçişi engelleyen tüm koşullar için bkz. Sınırlamalar.
Sınırlamalar
Aşağıdaki koşullar hesap geçişini engeller veya geçiş davranışını etkiler. Görevi çalıştırmadan önce veritabanı sürümünüz ve hesap türleriniz için geçerli olan koşulları kontrol edin.
Hedef veritabanı sürümü
Hedef veritabanı bir MySQL 5.6 örneği veya bir PolarDB for MySQL kümesi ise hesap geçişi desteklenmez.
MySQL 8.0 kaynak kısıtlamaları
Kaynak veritabanı MySQL 8.0 ise dinamik ayrıcalıklara sahip hesaplar geçirilemez.
Ayrıcalık kısıtlamaları
RELOAD, CREATE TABLESPACE, FILE veya ALL PRIVILEGES ayrıcalıklarına sahip hesaplar bir MySQL veya PolarDB for MySQL hedef veritabanına geçirilemez.
Hesap türü kısıtlamaları
Sistem hesapları (root, mysql.infoschema, mysql.session, mysql.sys) ve yerleşik hesaplar geçirilemez. Bu hesapların seçilmesi DTS görevinin
Access denied for user 'XXXX'hatası döndürmesine neden olur.Hedef veritabanında zaten var olan hesaplar geçirilemez. Bir DTS görevi yeniden başlatılırsa veya birden fazla DTS görevi çalışıyorsa geçirilecek hesaplar hedef veritabanında bulunabilir.
Yetkisiz hesaplar geçirilemez.
Geçiş sonrası davranış
Geçiş sırasında hesap parolaları sıfırlanamaz.
Yetkili hesaplar hedef veritabanında standart hesaplara dönüşür ve veritabanı yönetimi izinlerini kaybeder.
Yalnızca
localhostveya127.0.0.1kullanılarak erişilen hedef Alibaba Cloud veritabanı örneği hesaplarının geçirilmemesini öneririz çünkü bu hesaplar veri geçişini desteklemez.
SSS
Neden bir hesap seçemiyorum?
Hesap ya bir sistem hesabıdır ya da aynı ada sahip bir hesap hedef veritabanında zaten mevcuttur.
Neden hesap listesi boş?
DTS görev hesaplarının kaynak veya hedef veritabanında gerekli ayrıcalıkları yoktur. Ayrıcalıkları Gerekli ayrıcalıklar bölümündeki yetkilendirme komutlarını kullanarak doğrulayın.