Bir tablonun karakter kümesini (örneğin, gbk'dan utf8mb4'e) ALTER komutuyla değiştirmek tabloyu kilitler. Tablo büyük olduğunda bu durum hizmetlerinizi önemli ölçüde etkileyebilir.
Tablo kilidini önlemek için hedef örnekte yeni karakter kümesiyle bir tablo şeması oluşturabilir, verileri kaynak örnekten Data Transmission Service (DTS) kullanarak geçirebilir ve sorunsuz bir geçiş sağlamak için geri alma veya çift yazma çözümü kurabilirsiniz.
Dikkat Edilmesi Gerekenler
Karakter kümesini değiştirmeden önce uygulamalarınızı ve SQL deyimlerini test ederek yeni karakter kümesiyle uyumlu olduklarından emin olun.
Tam veri geçişi sırasında DTS, hem kaynak hem de hedef örneklerde okuma ve yazma kaynaklarını tüketir; bu da veritabanı yükünü artırabilir. Her iki örneğin performansını değerlendirin ve verileri yoğun olmayan saatlerde geçirmeyi düşünün.
Kaynak örnekteki bir tabloda birincil anahtar veya benzersiz kısıtlama yoksa ve sütunları benzersizliği garanti etmiyorsa geçiş sırasında hedef örnekte yinelenen veriler oluşabilir.
1. Adım: Tablo şemasını dışa aktarın ve içe aktarın
Bu örnekte Data Management (DMS) üzerinden erişilen tüm örnekler Flexible Control Mode kullanır.
-
Karakter kümesini değiştirmek istediğiniz tabloların şema betiğini kaynak örnekten dışa aktarın.
DMS kullanarak kaynak örnekte oturum açın. Daha fazla bilgi için bkz. DMS kullanarak bir ApsaraDB RDS örneğinde oturum açma.
-
Üst gezinme çubuğunda seçeneğini belirleyin.
NotBu işlemi yapmak için önce sağ üst köşedeki simgesinden erişilebilen ayarlar menüsünde Drop-down Menus in Top Navigation Bar özelliğini etkinleştirmeniz gerekir.
-
Dışa aktarma ayarlarını yapılandırın.
NotGerekli parametreler ve yapılandırma süreci, hedef örneğin yönetim moduna bağlı olarak değişebilir. Daha fazla bilgi için bkz. Veritabanlarını dışa aktarma.
Ayar
Açıklama
Data Export Type in Application
Database Export seçeneğini belirleyin.
Database name
Dışa aktarmak istediğiniz veritabanını seçin.
NotVeritabanını dışa aktarmak için gerekli izinlere sahip olmanız gerekir. Daha fazla bilgi için bkz. İzinlerimi görüntüleme.
Exported table
Bu örnekte Specific Tables seçilmiştir. İhtiyaçlarınıza göre Specific Tables veya All Tables seçebilirsiniz.
NotSpecific Tables seçeneğini belirlerseniz sayfanın sağ tarafında tabloları seçmeniz ve filtre koşullarını yapılandırmanız gerekir.
Export content
Code Structure seçeneğini belirleyin.
File Format
Bu örnekte varsayılan olarak SQL seçilidir ve değiştirilemez.
Exported Structure Type
İş gereksinimlerinize göre dışa aktarmak istediğiniz şema türlerini seçin.
-
Procedure
-
Function
-
Trigger
-
View
-
Event
NotDesteklenen şema türleri veritabanı türüne göre değişir. Konsolda görüntülenen seçenekler esas alınmalıdır.
More Options
Big Data Export Options veya SQL Script Options seçeneğine tıklayın ve ardından gerekli seçenekleri belirleyin.
-
Submit an application seçeneğine tıklayın ve talebin onaylanmasını bekleyin.
Talep onaylandıktan sonra Download bölümünde Download Exported File seçeneğine tıklayın. İndirme bağlantısı 24 saat geçerlidir. Dosyayı bu süre içinde indirdiğinizden emin olun.
İndirilen dosyayı zip'ten çıkarın. Ardından şema betiğini açın ve karakter kümesi yapılandırmasını hedef karakter kümenize göre değiştirin.
Kaynak örnekle aynı teknik özelliklere sahip yeni bir ApsaraDB RDS for MySQL örneği satın alın. Daha fazla bilgi için bkz. ApsaraDB RDS for MySQL örneği oluşturma.
-
Değiştirilen şema betiğini yeni ApsaraDB RDS for MySQL örneğine içe aktarın.
DMS kullanarak yeni ApsaraDB RDS for MySQL örneğinde oturum açın. Daha fazla bilgi için bkz. DMS kullanarak bir ApsaraDB RDS örneğinde oturum açma.
Üst gezinme çubuğunda seçeneğini belirleyin.
-
İçe aktarma ayarlarını yapılandırın.
NotGerekli parametreler ve yapılandırma süreci, örneğin yönetim moduna bağlı olarak değişebilir. Daha fazla bilgi için bkz. Veri içe aktarma.
Parametre
Açıklama
Data Change Type in Application
Large Data Import seçeneğini belirleyin.
Database
İçe aktarma için hedef veritabanı.
NotFlexible veya Stable Control Mode ile çalışan örneklerde veritabanını seçebilmeniz için önce veritabanında oturum açmanız gerekir.
File Encoding
İçe aktarma dosyasının karakter kodlamasını seçin:
-
UTF-8
-
GBK
-
ISO-8859-1
-
Auto-detect
Import Mode
Bir içe aktarma modu seçin:
-
Speed Mode: Yürütme aşamasında sistem dosyayı okur ve SQL deyimlerini doğrudan hedef veritabanında çalıştırır. Bu mod daha hızlıdır ancak Security Mode'a göre daha az güvenlidir.
NotVarsayılan olarak Speed Mode modu için güvenlik kuralları Speed Mode ile veri içe aktarmaya izin vermez. Bu özelliği ilgili güvenlik kuralı için bölümünden etkinleştirebilirsiniz.
-
Security Mode: Ön kontrol aşamasında sistem dosyayı ayrıştırır ve SQL veya CSV verilerini önbelleğe alır. Yürütme aşamasında önbellekten okuma yapar ve deyimleri hedef veritabanında yürütür. Bu mod daha iyi güvenlik sağlar ancak Speed Mode'a göre daha yavaştır.
File Type
İçe aktardığınız dosyanın türünü seçin.
-
SQL betiği: Güvenlik İş Birliği modunda varsayılan olarak yalnızca INSERT ve REPLACE komut türlerine izin verilir. Bir DBA veya yönetici Security Rules > SQL Correct > Large Data Import bölümünden ayarları değiştirebilir.
-
CSV: Dosyadaki ayırıcı virgül olmalıdır.
-
Excel: Excel dosyası başlıklar (nitelikler) veya yalnızca veri içerebilir.
Attachment
Eki yüklemek için File seçeneğine tıklayın.
Not-
SQL, CSV, TXT, XLSX ve ZIP dosya türleri desteklenir.
-
Maksimum dosya boyutu 5 GB'tır.
Other Options
Hataların yoksayılıp yoksayılmayacağını seçin.
-
Yoksayma (temizlendi): Varsayılan. Bir hata oluşursa sistem sonraki SQL deyimlerinin yürütülmesini durdurur ve bir hata bildirir.
-
Yoksay (seçili): Bir hata oluşursa sistem hatayı yoksayar ve sonraki SQL deyimlerini yürütmeye devam eder.
-
-
Submit an application seçeneğine tıklayın. Sistem ön kontrolünün geçmesini bekleyin. Ön kontrol başarısız olursa istemi temel alarak sorunu belirleyip düzeltin ve talebi yeniden gönderin.
NotSistem yüklediğiniz SQL betiğini ön kontrol eder. Bir CSV dosyası yüklerseniz karşılık gelen
INSERTdeyimlerini oluşturur. Talep onaylandıktan sonra Perform bölümünde Execute Change seçeneğine tıklayın.
-
Task Settings iletişim kutusunda talebin ne zaman yürütüleceğini seçin. Execute Immediately seçeneğini belirleyebilirsiniz. Seçmezseniz Execute Immediately anahtarını kapatın ve bir başlangıç saati seçin. Ardından Confirm Execution seçeneğine tıklayın. İletişim kutusunda ayrıca bir Note for Security Change: Yoğun olmayan saatlerde yürütmeyi deneyin uyarısı görüntülenir.
Yürütme yöntemleri aşağıdaki gibidir:
Running Immediately: Varsayılan. Confirm Execution seçeneğine tıkladıktan sonra görev hemen yürütülür.
Schedule: Görev için bir başlangıç saati seçin. Confirm Execution seçeneğine tıkladıktan sonra görev belirtilen zamanda otomatik olarak yürütülür.
NotYürütme sırasında sistem ayrıştırılan SQL'i akış halinde okur ve veritabanında toplu işler halinde yürütür. Her toplu işin boyutu 1 MB'tır.
Görev durumunu, SQL kontrol ayrıntılarını ve zamanlama günlüklerini Execution bölümünde görüntüleyebilirsiniz.
-
Duraklatılmış bir görev yeniden başlatıldığında davranışı içe aktarma moduna bağlıdır:
Speed Mode: Betik yürütme veya veri dosyası içe aktarma baştan başlar.
Security Mode: Betik yürütme veya veri dosyası içe aktarma duraklatıldığı noktadan devam eder.
İçe aktarma başarılı olduktan sonra
show create table <table_name>;komutunu çalıştırarak tablonun karakter kümesini doğrulayabilirsiniz.
2. Adım: Verileri yeni örneğe geçirin
-
nda Data Transmission Service (DTS) console oturum açın.
NotOtomatik olarak Data Management (DMS) konsoluna yönlendirilirsanız sağ alt köşedeki sohbet robotu
simgesine tıklayarak DTS konsolunun önceki sürümüne dönün. 
Yeni DTS konsolundaysanız sağ alt köşedeki
simgesine tıklayarak önceki sürüme dönün.
Sol gezinme bölmesinde Data Migration seçeneğine tıklayın.
-
Migration Tasks sayfasının üst kısmında hedef kümenin bölgesini seçin.
Sayfanın sağ üst köşesinde Create Data Migration Task seçeneğine tıklayın.
-
Geçiş görevi için kaynak ve hedef veritabanlarını yapılandırın.
Kategori
Ayar
Açıklama
Görev adı
-
DTS otomatik olarak bir görev adı oluşturur. Kolay tanımlama için açıklayıcı bir ad belirtin. Adın benzersiz olması gerekmez.
Kaynak veritabanı
Örnek türü
RDS Instance seçeneğini belirleyin.
Örnek bölgesi
Kaynak RDS örneğinin bulunduğu bölgeyi seçin.
RDS örnek kimliği
Kaynak RDS örneğinin kimliğini seçin.
Veritabanı hesabı
Kaynak RDS örneği için veritabanı hesabını girin. Bu hesabın geçişi yapılacak veritabanlarında okuma ve yazma izinlerine sahip olması gerekir.
Veritabanı parolası
Veritabanı hesabının parolasını girin.
NotKaynak veritabanı bilgilerini girdikten sonra Database Password yanındaki Test Connectivity seçeneğine tıklayarak bilgilerin doğru olduğunu doğrulayabilirsiniz. Bilgiler doğruysa Passed iletisi görüntülenir. Failed iletisi görüntülenirse Failed iletisinin yanındaki Diagnose seçeneğine tıklayın ve istemlere göre kaynak veritabanı bilgilerini düzeltin.
Bağlantı yöntemi
Non-encrypted veya SSL-encrypted seçeneğini belirleyin. SSL-encrypted seçeneğini belirlerseniz önce RDS örneği için SSL şifrelemeyi etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. SSL şifrelemeyi yapılandırma.
NotEncryption ayarı yalnızca Çin anakarasındaki bölgelerde kullanılabilir.
Hedef veritabanı
Örnek türü
RDS Instance seçeneğini belirleyin.
Örnek bölgesi
Hedef RDS örneğinin bulunduğu bölgeyi seçin.
RDS örnek kimliği
Hedef RDS örneğinin kimliğini seçin.
Veritabanı hesabı
Hedef RDS örneği için veritabanı hesabını girin. Bu hesabın hedef veritabanlarında okuma ve yazma izinlerine sahip olması gerekir.
Veritabanı parolası
Veritabanı hesabının parolasını girin.
NotHedef veritabanı bilgilerini girdikten sonra Database Password sonrası Test Connectivity seçeneğine tıklayarak girilen bilgilerin doğru olduğunu doğrulayabilirsiniz. Bilgiler doğruysa Passed iletisi görüntülenir. Failed iletisi görüntülenirse Failed sonrası Diagnose seçeneğine tıklayın ve istemlere göre hedef veritabanı bilgilerini düzeltin.
Bağlantı yöntemi
Non-encrypted veya SSL-encrypted seçeneğini belirleyin. SSL-encrypted seçeneğini belirlerseniz önce RDS örneği için SSL şifrelemeyi etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. SSL şifrelemeyi yapılandırma.
NotEncryption ayarı yalnızca Çin anakarasındaki bölgelerde kullanılabilir.
-
Yapılandırmayı tamamladıktan sonra sayfanın sağ alt köşesinde Add Whitelist and Proceed to Next Step seçeneğine tıklayın.
NotDTS sunucularının IP adresleri, DTS sunucuları ile kaynak ve hedef örnekler arasında bağlantı sağlamak için ApsaraDB RDS for MySQL örneğinin izin listesine otomatik olarak eklenir.
-
Geçiş türlerini ve nesnelerini seçin.
Ayar
Açıklama
Geçiş türleri
Şema geçişi 1. Adım'da tamamlandığından burada Şema Geçişi seçmeniz gerekmez.
-
Yalnızca tam geçiş gerçekleştirmek için yalnızca Full Data Migration seçeneğini belirleyin.
UyarıVeri tutarlılığını sağlamak için tam veri geçişi sırasında kaynak örneğe yeni veri yazmayın.
-
Kesinti olmadan geçiş yapmak için hem Full Data Migration hem de Incremental Data Migration seçeneklerini belirleyin.
NotArtımlı veri geçişi aşamasında desteklenen SQL işlemleri INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE ve DROP TABLE'dır.
Geçiş nesneleri
Migration Object kutusunda şemalarını 1. Adım'da geçirdiğiniz nesneleri seçin. Ardından
simgesine tıklayarak bunları Selected Objects kutusuna taşıyın.UyarıŞema zaten geçildiğinden nesne adı eşlemesi yapmayın. Bu durum geçişin başarısız olmasına neden olur.
-
-
Geçiş görevini başlatın.
-
Sayfanın sağ alt köşesinde Precheck and Start seçeneğine tıklayın.
NotDTS, geçiş görevini başlatmadan önce ön kontrol gerçekleştirir. Görev yalnızca ön kontrolü geçtikten sonra ilerleyebilir.
Ön kontrol başarısız olursa belirli bir kontrol öğesinin yanındaki
simgesine tıklayarak ayrıntıları görüntüleyin. Sorunu istem temel alarak düzeltin ve ardından ön kontrolü yeniden çalıştırın.
Ön kontrol geçtikten sonra Next seçeneğine tıklayın.
Confirm Settings iletişim kutusunda Instance Class seçeneğini belirleyin ve Data Transmission Service (Pay-As-You-Go) Terms of Service onay kutusunu işaretleyin.
Geçiş görevini başlatmak için Buy and Start seçeneğine tıklayın.
-
3. Adım: İş yükü geçişini gerçekleştirin
İş gereksinimlerinize bağlı olarak aşağıdaki çözümlerden birini seçin.
-
Geri alma çözümü (uygulama değişikliği gerekmez ancak geri alma başarısız olabilir):
Hedef ApsaraDB RDS for MySQL örneğindeki geçiş verilerini doğrulayın.
İş yükünüzü geçirmek ve bir geri alma planı oluşturmak için İş yükü geçiş prosedürü belgesindeki adımları izleyin. Bu süreç, yeni hedef örnekten orijinal kaynak örneğe artımlı verilerin geçirilmesini içerir.
Ters veri geçişi görevini bir iş döngüsü boyunca çalışır durumda tutun. Döngü tamamlandığında tüm işlevleri test edin. Her şey doğru çalışıyorsa ters veri geçişi görevini durdurun.
İsteğe bağlı: Kaynak örneğe artık ihtiyaç duyulmuyorsa bunu serbest bırakabilir (kullandıkça öde örneği ise) veya aboneliği iptal edebilirsiniz (abonelik örneği ise).
-
Çift yazma çözümü (geri alma başarı oranı daha yüksektir ancak önemli uygulama değişiklikleri gerektirir):
Veri değişikliklerinin hem kaynak hem de hedef örneklere aynı anda yazıldığı çift yazma mantığını uygulamak için uygulamanızı değiştirin.
-
Veri geçişi görevini durdurun.
-
Tam veri geçişi
Tam veri geçişi sırasında bir görevi manuel olarak durdurmayın. Aksi takdirde sistem tüm verileri geçirmeyebilir. Geçiş görevinin otomatik olarak sona ermesini bekleyin.
-
Artımlı veri geçişi
Bu tür görevler otomatik olarak durmaz; bunları manuel olarak durdurmanız gerekir.
Görevin Incremental Data Migration aşamasına Undelayed durumuyla girmesini bekleyin. Ardından kaynak veritabanına birkaç dakika boyunca yazma işlemlerini durdurun. Bu süre boyunca Incremental Data Migration durumu bir gecikme bildirebilir.
Incremental Data Migration durumunun Undelayed durumuna dönmesini bekleyin. Listede bu durum onaylandığında görevin onay kutusunu işaretleyin ve alttaki toplu işlem çubuğundakiStopEnddüğmesine tıklayın.
NotKaynak örnekte oturum açıp
show processlist;komutunu çalıştırarak oturum bilgilerini kontrol edebilir ve yeni oturumların yazma işlemleri gerçekleştirmediğinden emin olabilirsiniz. -
Hedef ApsaraDB RDS for MySQL örneğindeki geçiş verilerini doğrulayın.
Veri değişikliklerinin hem kaynak hem de hedef örneklere yazıldığı çift yazma için uygulamanızı yapılandırın.
Çift yazma durumunu bir iş döngüsü boyunca koruyun. Döngü tamamlandığında tüm işlevleri test edin. Her şey doğru çalışıyorsa uygulamayı yalnızca hedef örneğe yazacak şekilde ayarlayın.
İsteğe bağlı: Kaynak örneğe artık ihtiyaç duyulmuyorsa bunu serbest bırakabilir (kullandıkça öde örneği ise) veya aboneliği iptal edebilirsiniz (abonelik örneği ise).