Öğretici: DMS kullanarak MySQL'i çevrimdışı MySQL için Azure Veritabanı geçirme
Azure Veritabanı Geçiş Hizmeti kullanarak dış MySQL örneğinizden yüksek hızlı veri geçişi özelliğine sahip MySQL için Azure Veritabanı sorunsuz bir geçiş gerçekleştirebilirsiniz. Bu öğreticide, Azure Veritabanı Geçiş Hizmeti'da çevrimdışı geçiş etkinliği kullanarak örnek veritabanını MySQL 5.7'nin şirket içi örneğinden MySQL için Azure Veritabanı'a (v5.7) geçireceğiz. Makalelerde kaynağın bir MySQL veritabanı örneği olduğu ve hedefin MySQL için Azure Veritabanı olduğu varsayılsa da, yalnızca kaynak sunucu adı ve kimlik bilgileri değiştirilerek bir MySQL için Azure Veritabanı diğerine geçiş yapmak için kullanılabilir. Ayrıca, düşük sürüm MySQL sunucularından (v5.6 ve üzeri) daha yüksek sürümlere geçiş de desteklenir.
Not
Bu geçiş deneyiminin PowerShell tabanlı betiklenebilir sürümü için bkz. MySQL için Azure Veritabanı betiklenebilir çevrimdışı geçiş.
MySQL için Amazon relational Database Service (RDS) ve Amazon Aurora (MySQL tabanlı) da geçiş için kaynak olarak desteklenir.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Bir DMS örneği oluşturun.
- DMS'de bir MySQL geçiş projesi oluşturun.
- DMS kullanarak MySQL şeması geçirme.
- Geçişi çalıştırma.
- Geçişi izleme.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakileri yapmanız gerekir:
Etkin bir aboneliği olan bir Azure hesabınız olmalıdır. Ücretsiz hesap oluşturun.
5.7 sürümüne sahip bir şirket içi MySQL veritabanınız var. Aksi takdirde MySQL community edition 5.7'yi indirip yükleyin.
ExpressRoute veya VPN kullanarak şirket içi kaynak sunucularınıza siteden siteye bağlantı sağlayan Azure Resource Manager dağıtım modelini kullanarak Azure Veritabanı Geçiş Hizmeti için bir Microsoft Azure Sanal Ağ oluşturun. Sanal ağ oluşturma hakkında daha fazla bilgi için Sanal Ağ Belgeleri'ne ve özellikle adım adım ayrıntıları içeren hızlı başlangıç makalelerine bakın.
Sanal ağnet kurulumu sırasında ExpressRoute'u Microsoft'a ağ eşlemesi ile kullanırsanız hizmetin sağlanacağı alt ağa aşağıdaki hizmet uç noktalarını ekleyin:
- Hedef veritabanı uç noktası (örneğin, SQL uç noktası, Azure Cosmos DB uç noktası, vb.)
- Depolama uç noktası
- Service Bus uç noktası
Azure Veritabanı Geçiş Hizmeti'nin İnternet bağlantısı olmadığından bu yapılandırma gereklidir.
Sanal ağ Ağ Güvenlik Grubu kurallarınızın ServiceBus, Depolama ve AzureMonitor için ServiceTag'in 443 numaralı giden bağlantı noktasını engellemediğinden emin olun. Sanal ağ NSG trafiğini filtreleme hakkında ayrıntılı bilgi için Ağ güvenlik grupları ile ağ trafiğini filtreleme makalesine bakın.
Azure Veritabanı Geçiş Hizmeti için Sanal Ağ bağlantılarının varsayılan olarak TCP bağlantı noktası 3306 olan kaynak MySQL Sunucusu'na erişmesine izin vermek için Windows güvenlik duvarınızı açın.
Kaynak veritabanlarınızın önünde bir güvenlik duvarı gereci kullanırken, Azure Veritabanı Geçiş Hizmeti geçiş için kaynak veritabanlarına erişmesi için Sanal Ağ bağlantılarına izin vermek üzere güvenlik duvarı kuralları eklemeniz gerekebilir.
Hedef veritabanlarına Azure Veritabanı Geçiş Hizmeti erişim için Sanal Ağ izin vermek üzere sunucu düzeyinde bir güvenlik duvarı kuralı oluşturun veya hedef MySQL için Azure Veritabanı için sanal ağ hizmet uç noktalarını yapılandırın.
Kaynak MySQL'in desteklenen MySQL Community Edition sürümünde olması gerekir. MySQL örneğinin sürümünü belirlemek için, MySQL yardımcı programında veya MySQL Workbench'te şu komutu çalıştırın:
SELECT @@VERSION;
MySQL için Azure Veritabanı yalnızca InnoDB tablolarını destekler. MyISAM tablolarını InnoDB'ye dönüştürmek için Converting Tables from MyISAM to InnoDB (Tabloları MyISAM'dan InnoDB'ye Dönüştürme) başlıklı makaleye bakın
Kullanıcının kaynak veritabanındaki verileri okuma ayrıcalıklarına sahip olması gerekir.
Şema geçişini başarıyla tamamlamak için, kaynak sunucuda geçişi gerçekleştiren kullanıcı aşağıdaki ayrıcalıkları gerektirir:
- Kaynakta sunucu düzeyinde "SELECT" ayrıcalığı.
- Görünümleri geçiriyorsanız, kullanıcının kaynak sunucuda "GÖRÜNÜM GÖSTER" ayrıcalığına ve hedef sunucuda "CREATE VIEW" ayrıcalığına sahip olması gerekir.
- Tetikleyicileri geçiriyorsanız, kullanıcının kaynak ve hedef sunucuda "TRIGGER" ayrıcalığına sahip olması gerekir.
- Yordamları (yordamlar ve/veya işlevler) geçiriyorsanız, kullanıcının hedefte sunucu düzeyinde "CREATE ROUTINE" ve "ALTER ROUTINE" ayrıcalıklarına sahip olması gerekir.
- Olayları geçiriyorsanız, kullanıcının kaynak ve hedef sunucuda "EVENT" ayrıcalığına sahip olması gerekir.
- Kullanıcıları/oturum açma bilgilerini geçiriyorsanız, kullanıcının hedef sunucuda "CREATE USER" ayrıcalığına sahip olması gerekir.
- Mevcut olabilecek tabloları bırakmak için hedefteki sunucu düzeyinde "DROP" ayrıcalığı. Örneğin, bir geçişi yeniden denerken.
- Yabancı anahtarlarla tablolar oluşturmak için hedefteki sunucu düzeyinde "BAŞVURULAR" ayrıcalığı.
- MySQL 8.0'a geçiş yapılırsa, kullanıcının hedef sunucuda "SESSION_VARIABLES_ADMIN" ayrıcalığına sahip olması gerekir.
- Hedefte sunucu düzeyinde "CREATE" ayrıcalığı.
- Hedefte sunucu düzeyinde "INSERT" ayrıcalığı.
- Hedefte sunucu düzeyinde "GÜNCELLE" ayrıcalığı.
- Hedefte sunucu düzeyinde "DELETE" ayrıcalığı.
Hedef MySQL için Azure Veritabanı örneğini boyutlandırma
hedef MySQL için Azure Veritabanı sunucusunu Azure Veritabanı Geçiş Hizmeti kullanarak daha hızlı veri yüklerine hazırlamak için aşağıdaki sunucu parametreleri ve yapılandırma değişiklikleri önerilir.
max_allowed_packet – büyük satırlar nedeniyle bağlantı sorunlarını önlemek için 1073741824 (1 GB) olarak ayarlayın.
slow_query_log – Yavaş sorgu günlüğünü kapatmak için KAPALI olarak ayarlayın. Bu, veri yüklemeleri sırasında yavaş sorgu günlüğünün neden olduğu ek yükü ortadan kaldırır.
query_store_capture_mode– Sorgu Deposu'yu kapatmak için NONE olarak ayarlayın. Bu, Sorgu Deposu tarafından yapılan örnekleme etkinliklerinin neden olduğu ek yükü ortadan kaldırır.
innodb_buffer_pool_size – Innodb_buffer_pool_size yalnızca MySQL için Azure Veritabanı sunucusu için işlem ölçeği artırılarak artırılabilir. innodb_buffer_pool_size artırmak için geçiş sırasında portalın Fiyatlandırma katmanından sunucunun ölçeğini 64 sanal çekirdek Genel Amaçlı SKU'ya yükseltin.
innodb_io_capacity & innodb_io_capacity_max - Geçiş hızını iyileştirmek üzere GÇ kullanımını iyileştirmek için Azure portalındaki Sunucu parametrelerinden 9000 olarak değiştirin.
innodb_write_io_threads & innodb_write_io_threads - Geçiş hızını artırmak için Azure portalındaki Sunucu parametrelerinden 4 olarak değiştirin.
Depolama katmanının ölçeğini artırma: MySQL için Azure Veritabanı sunucusu için IOPS, depolama katmanındaki artışla birlikte aşamalı olarak artar.
- Tek Sunucu dağıtım seçeneğinde daha hızlı yüklemeler için, sağlanan IOPS'u artırmak üzere depolama katmanını yükseltmenizi öneririz.
- Esnek Sunucu dağıtım seçeneğinde, depolama boyutundan bağımsız olarak IOPS'yi ölçeklendirmenizi (artırmanızı veya azaltmanızı) öneririz.
- Depolama boyutu yalnızca ölçeği artırılabilir, azaltılamaz.
Aşağıdaki tabloda yer alan ayrıntıya göre kaynak tek sunucunun fiyatlandırma katmanını ve sanal çekirdekleri temel alarak hedef esnek sunucu için işlem boyutunu ve işlem katmanını seçin.
Tek Sunucu Fiyatlandırma Katmanı Tek Sunucu Sanal Çekirdekleri Esnek Sunucu İşlem Boyutu Esnek Sunucu İşlem Katmanı Temel 1 1 Genel Amaçlı Standard_D16ds_v4 Temel 1 2 Genel Amaçlı Standard_D16ds_v4 Genel Amaçlı 1 4 Genel Amaçlı Standard_D16ds_v4 Genel Amaçlı 1 8 Genel Amaçlı Standard_D16ds_v4 Genel Amaçlı 16 Genel Amaçlı Standard_D16ds_v4 Genel Amaçlı 32 Genel Amaçlı Standard_D32ds_v4 Genel Amaçlı 64 Genel Amaçlı Standard_D64ds_v4 Bellek İçin İyileştirilmiş 4 İş Açısından Kritik Standard_E4ds_v4 Bellek İçin İyileştirilmiş 8 İş Açısından Kritik Standard_E8ds_v4 Bellek İçin İyileştirilmiş 16 İş Açısından Kritik Standard_E16ds_v4 Bellek İçin İyileştirilmiş 32 İş Açısından Kritik Standard_E32ds_v4 1 Geçiş için, daha hızlı geçişler için hedef esnek sunucu için Genel Amaçlı 16 sanal çekirdek işlemi'ni seçin. Geçiş tamamlandıktan sonra, bu makalenin devamındaki Geçiş sonrası etkinlikleri gerçekleştirme bölümünde yer alan işlem boyutu önerisine uyarak hedef sunucu için istenen işlem boyutuna geri ölçeklendirin.
Geçiş tamamlandıktan sonra sunucu parametrelerini ve yapılandırmasını iş yükünüz için gereken değerlere geri döndürebilirsiniz.
DMS'i ayarlama
Hedef esnek sunucunuz dağıtılıp yapılandırıldığında, bir sonraki adımda tek sunucunuzu esnek bir sunucuya geçirmek için DMS'yi ayarlamanız gerekir.
Kaynak sağlayıcısını kaydetme
Microsoft.DataMigration kaynak sağlayıcısını kaydetmek için aşağıdaki adımları gerçekleştirin.
İlk DMS örneğinizi oluşturmadan önce Azure portalında oturum açın ve abonelikler'i arayıp seçin.
DMS örneğini oluşturmak için kullanmak istediğiniz aboneliği seçin ve ardından Kaynak sağlayıcıları'nı seçin.
"Geçiş" terimini arayın ve Microsoft.DataMigration için Kaydet'i seçin.
Veritabanı Geçiş Hizmeti örneği oluşturma
Azure portalında + Kaynak oluştur'u seçin, Azure Veritabanı Geçiş Hizmeti arayın ve açılan listeden Azure Veritabanı Geçiş Hizmeti seçin.
Azure Veritabanı Geçiş Hizmeti ekranında Oluştur'u seçin.
Geçiş Hizmeti oluşturun ekranında hizmet için bir ad belirtin, aboneliği ve yeni ya da var olan bir kaynak grubunu seçin.
Bir fiyatlandırma katmanı seçin ve ağ ekranına geçin. Çevrimdışı geçiş özelliği yalnızca Premium fiyatlandırma katmanında kullanılabilir.
Maliyetler ve fiyatlandırma katmanları hakkında daha fazla bilgi için fiyatlandırma sayfasına bakın.
Listeden mevcut bir sanal ağı seçin veya oluşturulacak yeni sanal ağın adını belirtin. Gözden geçirme + oluşturma ekranına gitme. İsteğe bağlı olarak, etiketler ekranını kullanarak hizmete etiket ekleyebilirsiniz.
Sanal ağ, kaynak SQL Server'a ve hedef Azure SQL Veritabanı örneğine erişim Azure Veritabanı Geçiş Hizmeti sağlar.
Azure portalında sanal ağ oluşturma hakkında daha fazla bilgi için Azure portalını kullanarak sanal ağ oluşturma makalesine bakın.
Yapılandırmaları gözden geçirin ve oluştur'u seçerek hizmeti oluşturun.
Geçiş projesi oluşturma
Hizmet oluşturulduktan sonra Azure portaldan bulun, açın ve yeni bir geçiş projesi oluşturun.
Azure portalda Tüm hizmetler'i seçin, Azure Veritabanı Geçiş Hizmeti araması yapın ve Azure Veritabanı Geçiş Hizmeti'ni seçin.
Arama sonuçlarından geçiş hizmeti örneğinizi seçin ve + Yeni Geçiş Projesi'ni seçin.
Yeni geçiş projesi ekranında proje için bir ad belirtin, Kaynak sunucu türü seçim kutusunda MySQL'i seçin, Hedef sunucu türü seçim kutusunda MySQL için Azure Veritabanı'nı seçin ve Geçiş etkinliği türü seçim kutusunda Veri geçişi'ni seçin. Etkinlik oluştur ve çalıştır seçeneğini belirleyin.
Alternatif olarak, Yalnızca proje oluştur'u seçerek geçiş projesini şimdi oluşturabilir ve geçişi daha sonra yürütebilirsiniz.
Geçiş projelerini yapılandırma
Kaynak seç ekranında, kaynak MySQL örneği için bağlantı ayrıntılarını belirtin ve İleri : Hedef seç'i seçin >>
Hedef seç ekranında hedef MySQL için Azure Veritabanı örneğinin bağlantı ayrıntılarını belirtin ve İleri: Veritabanlarını seçin'i seçin >>
Veritabanlarını seçin ekranında, geçiş için kaynak ve hedef veritabanını eşleyin ve İleri: Geçiş ayarlarını>> yapılandır'ı seçin. Kaynağı salt okunur yapmak için Kaynak Sunucuyu Salt Okunur Yap seçeneğini belirleyebilirsiniz, ancak bunun bir sunucu düzeyi ayarı olduğundan emin olun. Seçilirse, yalnızca seçili veritabanlarını değil, sunucunun tamamını salt okunur olarak ayarlar.
Hedef veritabanı kaynak veritabanıyla aynı veritabanı adını içeriyorsa Azure Veritabanı Geçiş Hizmeti varsayılan olarak hedef veritabanını seçer.
Geçiş ayarlarını yapılandır ekranında, geçişin parçası olacak tabloları seçin ve İleri : Özet'i>> seçin. Hedef tablolarda veri varsa, bunlar varsayılan olarak seçilmez, ancak bunları açıkça seçebilirsiniz ve geçişe başlamadan önce kesilirler.
Özet ekranındaki Etkinlik adı metin kutusunda, geçiş etkinliği için bir ad belirtin ve kaynak ve hedef ayrıntıların daha önce belirttiğinizle eşleştiğinden emin olmak için özeti gözden geçirin.
Geçişi başlat'ı seçin. Geçiş etkinliği penceresi açılır ve etkinliğin Durum bilgisi Başlatılıyor olarak belirlenir. Tablo geçişleri başladığında Durum Çalışıyor olarak değişir.
Geçişi izleme
Geçiş etkinliği ekranında Yenile'yi seçerek ekranı güncelleştirin ve tamamlanan tablo sayısıyla ilgili ilerleme durumunu görün.
Her tablonun geçirilirken durumunu görmek için etkinlik ekranında veritabanı adını seçebilirsiniz. Ekranı güncelleştirmek için Yenile'yi seçin.
Geçişi tamamlama
Geçiş etkinliği ekranında Yenile'yi seçerek, gösterilen verileri, geçişin Durum bilgisi Tamamlandı olana kadar güncelleştirebilirsiniz.
Geçiş sonrası etkinlikler
Çevrimdışı geçişte geçiş tam geçişi, bu belgenin kapsamı dışında olan uygulamaya bağımlı bir işlemdir, ancak aşağıdaki geçiş sonrası etkinlikleri önceden belirlenmiştir:
- Uygulama gereksinimlerine göre oturum açma bilgileri, roller ve izinler oluşturun.
- Geçiş öncesi adımda ayıklandığı gibi hedef veritabanındaki tüm tetikleyicileri yeniden oluşturun.
- Geçişi onaylamak için uygulamanın hedef veritabanına kıyasla sağlık testlerini gerçekleştirin.
Kaynakları temizleme
Veritabanı Geçiş Hizmeti kullanmaya devam etmeyecekseniz aşağıdaki adımları izleyerek hizmeti silebilirsiniz:
Azure portalda Tüm hizmetler'i seçin, Azure Veritabanı Geçiş Hizmeti araması yapın ve Azure Veritabanı Geçiş Hizmeti'ni seçin.
Arama sonuçlarından geçiş hizmeti örneğinizi seçin ve Hizmeti Sil'i seçin.
Onay iletişim kutusunda, DATABASE MIGRATION SERVICE NAME yazın metin kutusuna hizmetin adını yazın ve Sil'i seçin.
İlgili içerik
- Yaygın Azure Veritabanı Geçiş Hizmeti (klasik) sorunlarını ve hatalarını giderme
- Kaynak veritabanlarına bağlanırken DMS hatalarını giderme
- Azure Veritabanı Geçiş Hizmeti nedir?
- MySQL için Azure Veritabanı nedir?
- MySQL'i PowerShell ve Azure Veritabanı Geçiş Hizmeti ile çevrimdışı MySQL için Azure Veritabanı geçirme