Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MySQL, internet ölçeğinde web ve mobil uygulamaları çalıştırmaya yönelik popüler veritabanı altyapılarından biridir. Birçok müşteri çevrimiçi eğitim, video akışı, dijital ödemeler, e-ticaret, oyun, haber portalları, kamu ve sağlık web siteleri gibi çok çeşitli uygulamalar için MySQL için Azure Veritabanı'na sahiptir. Bu hizmetlerin web'de veya mobil uygulamada trafik arttıkça hizmet sunabilmesi ve ölçeklenebilmesi gerekir.
Uygulamalar tarafında geliştiriciler genellikle Java veya PHP kullanır. Uygulamayı Azure Sanal Makine Ölçek Kümeleri, Azure App Services üzerinde çalışacak şekilde geçirir veya Azure Kubernetes Service'te (AKS) çalışacak şekilde kapsayıcıya geçirir. Temel altyapı olarak Sanal Makine Ölçek Kümesi, App Service veya AKS ile uygulama ölçeklendirmesi, anında yeni VM'ler sağlayarak ve istekleri karşılamak için uygulamaların durum bilgisi olmayan bileşenlerini çoğaltarak basitleştirilir. Ancak veritabanı genellikle merkezi durum bilgisi olan bir bileşen olarak performans sorununa dönüşür.
Okuma amaçlı çoğaltma özelliği, MySQL için Azure Veritabanı Esnek Sunucu örneğindeki verileri salt okunur bir sunucuya çoğaltmanıza olanak tanır. Kaynak sunucudan en fazla 10 çoğaltmaya çoğaltabilirsiniz. Çoğaltmalar, MySQL altyapısının yerel ikili günlük (binlog) dosya konumu tabanlı çoğaltma teknolojisi kullanılarak zaman uyumsuz olarak güncelleştirilir. Binlog çoğaltması hakkında daha fazla bilgi edinmek için bkz. MySQL binlog çoğaltmasına genel bakış.
Kaynak MySQL için Azure Veritabanı Esnek Sunucu örnekleriniz gibi çoğaltmaları da yeni sunucular olarak yönetirsiniz. Sanal çekirdeklerde sağlanan işlem ve aylık GB cinsinden depolama alanına göre her okuma amaçlı çoğaltma için faturalama ücretleri uygulanır. Daha fazla bilgi için bkz. Fiyatlandırma.
Okuma amaçlı çoğaltma özelliği yalnızca Genel Amaçlı veya İş Açısından Kritik fiyatlandırma katmanlarında MySQL için Azure Veritabanı Esnek Sunucu örnekleri için kullanılabilir. Kaynak sunucunun bu fiyatlandırma katmanlarından birinde olduğundan emin olun.
MySQL çoğaltma özellikleri ve sorunları hakkında daha fazla bilgi edinmek için MySQL çoğaltma belgelerine bakın.
Not
Bu makalede, Microsoft'un artık kullanmadığı köle terimi geçmektedir. Terimi yazılımdan kaldırdığımızda, bu makaleden kaldırırız.
Okuma amaçlı çoğaltma için yaygın kullanım örnekleri
Okuma amaçlı çoğaltma özelliği, yoğun okuma yoğunluklu iş yüklerinin performansını ve ölçeğini geliştirmenize yardımcı olur. Okuma iş yüklerini çoğaltmalara ayırabilir ve yazma iş yüklerini kaynağa yönlendirebilirsiniz.
Yaygın senaryolar şunlardır:
- ProxySQL gibi basit bir bağlantı ara sunucusu kullanarak veya uygulamadan gelen okuma sorgularınızın ölçeğini çoğaltmaları okumak için genişletmek için mikro hizmet tabanlı bir desen kullanarak uygulamadan gelen okuma iş yüklerini ölçeklendirme
- BI veya analitik raporlama iş yükleri için veri kaynağı olarak okuma amaçlı çoğaltmaları kullanma
- IoT veya Üretim senaryolarında verilerin raporlanması için birden çok okuma amaçlı çoğaltma kullanılırken mySQL veritabanı altyapısına telemetri bilgileri alınıyor
Çoğaltmalar salt okunur olduğundan, kaynak üzerindeki yazma kapasitesi yüklerini doğrudan azaltmaz. Bu özellik, yazma açısından yoğun iş yükleri için uygun değildir.
Okuma amaçlı çoğaltma özelliği MySQL zaman uyumsuz çoğaltmayı kullanır. Bu özellik zaman uyumlu çoğaltma senaryoları için tasarlanmamıştır. Kaynak ile çoğaltma arasında ölçülebilir bir gecikme vardır. Çoğaltmadaki veriler sonunda kaynak verilerle tutarlı hale gelir. Bu gecikmeye ayak uydurabilecek iş yükleri için bu özelliği kullanın.
Bölgeler arası çoğaltma
Kaynak sunucunuzdan farklı bir bölgede okuma amaçlı çoğaltma oluşturabilirsiniz. Bölgeler arası çoğaltma, olağanüstü durum kurtarma planlaması veya verileri kullanıcılarınıza yaklaştırma gibi senaryolar için yararlı olabilir. MySQL için Azure Veritabanı Esnek Sunucusu, MySQL için Azure Veritabanı Esnek Sunucusunun kullanılabildiği azure tarafından desteklenen tüm bölgelerde okuma amaçlı çoğaltma sağlamanızı sağlar. Bu özelliği kullanarak, kaynak sunucunun eşleştirilmiş bölgesinde veya evrensel çoğaltma bölgelerinde çoğaltması olabilir. MySQL için Azure Veritabanı Esnek Sunucusu'nun bugün kullanılabildiği Azure bölgelerinin listesini bulmak için buraya bakın.
Çoğaltma oluşturma
Çoğaltma oluşturma iş akışını başlattığınızda, boş bir MySQL için Azure Veritabanı Esnek Sunucu örneği oluşturursunuz. Yeni sunucu, kaynak sunucuda bulunan verileri içerir. Oluşturma zamanı, kaynak üzerindeki veri miktarına ve son haftalık tam yedeklemeden bu yana geçen süreye bağlıdır. Süre birkaç dakikadan birkaç saate kadar değişebilir.
Not
Kaynakla aynı sunucu yapılandırmasına sahip okuma amaçlı çoğaltmalar oluşturursunuz. Oluşturma işleminden sonra çoğaltma sunucusu yapılandırmasını değiştirebilirsiniz. Çoğaltma sunucusunu her zaman kaynak sunucuyla aynı kaynak grubunda ve abonelikte oluşturursunuz. Farklı bir kaynak grubunda veya farklı bir abonelikte çoğaltma sunucusu oluşturmak istiyorsanız, oluşturma işleminden sonra çoğaltma sunucusunu taşıyabilirsiniz . Çoğaltmanın kaynağa ayak uydura çalıştığından emin olmak için çoğaltma sunucusunun yapılandırmasını kaynaktan eşit veya daha büyük değerlerde tutun.
Azure portalda okuma amaçlı çoğaltma oluşturmayı öğrenin.
Çoğaltmaya bağlanma
Bir çoğaltma oluşturduğunuzda, kaynak sunucunun bağlantı yöntemini devralır. Çoğaltmanın bağlantı yöntemini değiştiremezsiniz. Örneğin, kaynak sunucu Özel erişim (VNet Tümleştirmesi) kullanıyorsa, çoğaltma Genel erişimi (izin verilen IP adresleri) kullanamaz.
Çoğaltma, yönetici hesabını kaynak sunucudan devralır. Kaynak sunucudaki tüm kullanıcı hesapları okuma çoğaltmalarına çoğaltılır. Okuma amaçlı çoğaltmaya yalnızca kaynak sunucuda bulunan kullanıcı hesaplarını kullanarak bağlanabilirsiniz.
Normal bir MySQL için Azure Veritabanı Esnek Sunucu örneğinde olduğu gibi, konak adını ve geçerli bir kullanıcı hesabını kullanarak çoğaltmaya bağlanabilirsiniz. yönetici kullanıcı adı myadmin olan myreplica adlı bir sunucu için MySQL CLI'sini kullanarak çoğaltmaya bağlanabilirsiniz:
mysql -h myreplica.mysql.database.azure.com -u myadmin -p
İstemde, kullanıcı hesabının parolasını girin.
Çoğaltmayı izleme
MySQL için Azure Veritabanı Esnek Sunucu,Azure İzleyici'de saniye cinsinden çoğaltma gecikmesi ölçümü. Bu ölçüm yalnızca çoğaltmalar için kullanılabilir. Azure İzleyici, MySQL'in SHOW SLAVE STATUS komutundaki seconds_behind_master ölçümü kullanarak bu ölçümü hesaplar. Çoğaltma gecikmesi iş yükünüz için kabul edilemez eşiği aştığında sizi bilgilendirecek bir uyarı ayarlayın.
Artan çoğaltma gecikmesi görürseniz, olası nedenleri gidermek ve anlamak için çoğaltma gecikmesi sorunlarını giderme bölümüne bakın.
Önemli
Okuma Amaçlı Çoğaltma, artık MySQL'inREPLICA STATUSSHOW SLAVESTATUS'/'SHOWkomutunda SLAVE_IO_RUNNING/REPLICA_IO_RUNNING sağlanan ölçümü kullanmayan depolama tabanlı çoğaltma teknolojisini kullanır. Bu değer her zaman "Hayır" olarak görüntülenir ve çoğaltma durumunu göstermez. Çoğaltmanın doğru durumunu öğrenmek için İzleme sayfasının altındaki çoğaltma ölçümleri - Çoğaltma IO Durumu ve Çoğaltma SQL Durumu'na bakın.
Çoğaltmayı durdurma
Bir kaynak sunucu ile çoğaltma sunucusu arasında çoğaltmayı durdurabilirsiniz. Bir kaynak sunucu ile okuma çoğaltması arasında çoğaltmayı durdurduğunuzda, çoğaltma sunucusu tek başına bir sunucu olur. Tek başına sunucu, çoğaltmayı durdur komutunu başlattığınızda çoğaltma sunucusunda kullanılabilen verileri içerir. Tek başına sunucu, kaynak sunucudan eksik verileri eşitlemez.
Çoğaltma sunucusuna çoğaltmayı durdurduğunuzda, çoğaltma sunucusu önceki kaynak sunucusuna ve diğer çoğaltma sunucularına yönelik tüm bağlantıları kaybeder. Kaynak sunucu ile çoğaltma sunucuları arasında otomatik yük devretme yoktur.
Önemli
Tek başına sunucuyu yeniden bir çoğaltma sunucusuna dönüştüremezsiniz. Okuma amaçlı çoğaltmada çoğaltmayı durdurmadan önce, çoğaltma sunucusunda ihtiyacınız olan tüm verilerin olduğundan emin olun.
Daha fazla bilgi için bkz. Çoğaltmaya çoğaltmayı durdurma.
Yük devretme
Kaynak ve çoğaltma sunucuları arasında otomatik yük devretme yoktur.
Okuma amaçlı çoğaltmalar yoğun okuma içeren iş yüklerini ölçeklendirir ve bir sunucu için yüksek kullanılabilirlik sağlamaz. Okuma amaçlı bir çoğaltmayı okuma-yazma modunda çevrimiçi duruma getirerek çoğaltmayı durdurarak el ile yük devretme gerçekleştirirsiniz.
Çoğaltma zaman uyumsuz olduğundan, kaynak ile çoğaltma arasında bir gecikme vardır. Kaynak sunucudaki iş yükü ve veri merkezleri arasındaki gecikme süresi gibi birçok faktör gecikme süresini etkiler. Çoğu durumda çoğaltma gecikmesi birkaç saniye ile birkaç dakika arasında değişir. Her çoğaltma için kullanılabilen Çoğaltma Gecikmesi ölçümünü kullanarak gerçek çoğaltma gecikmenizi izleyebilirsiniz. Bu ölçüm, son yeniden oynatılan işlemden bu yana geçen süreyi gösterir. Zaman içindeki çoğaltma gecikmenizi gözlemleyerek ortalama gecikme sürenizi tanımlamanızı öneririz. Çoğaltma gecikmesi ile ilgili bir uyarı ayarlayabilirsiniz, böylece beklenen aralığın dışına çıkarsa eyleme geçebilirsiniz.
İpucu
Çoğaltmaya yük devrederseniz, çoğaltmanın kaynakla bağlantısını kaldırdığınız zamandaki gecikme ne kadar verinin kaybolduğunu gösterir.
Bir çoğaltmaya yük devretmeye karar verdikten sonra:
Çoğaltmaya çoğaltmayı durdurma
Çoğaltma sunucusunun yazmaları kabul edebilmesi için çoğaltmayı durdurmanız gerekir. Bu işlem çoğaltma sunucusunun kaynakla bağlantısını kaldırır. Çoğaltmayı durdurma işlemini başlattıktan sonra arka uç işleminin tamamlanması genellikle yaklaşık iki dakika sürer. Bu eylemin etkilerini anlamak için bu makalenin Çoğaltmayı durdurma bölümüne bakın.
Uygulamanızı (eski) çoğaltmaya işaret etme
Her sunucunun benzersiz bir bağlantı dizesi vardır. Uygulamanızı kaynak yerine (eski) çoğaltmaya işaret eden şekilde güncelleştirin.
Uygulamanız okuma ve yazma işlemlerini başarıyla işlediğinde yük devretmeyi tamamlarsınız. Uygulamanızın yaşadığı kapalı kalma süresi, bir sorun algılayıp 1. ve 2. adımları tamamlamanıza bağlıdır.
Genel işlem tanımlayıcısı (GTID)
Genel işlem tanımlayıcısı (GTID), kaynak sunucunun işlenen her işlemle oluşturduğu benzersiz bir tanımlayıcıdır. MySQL için Azure Veritabanı Esnek Sunucusu, GTID'yi varsayılan olarak kapatır. 5.7 ve 8.0 sürümleri GTID'yi destekler. GTID ve çoğaltmanın bunu nasıl kullandığı hakkında daha fazla bilgi için MySQL'in GTID ile çoğaltma belgelerine bakın.
GTID'yi yapılandırmak için aşağıdaki sunucu parametrelerini kullanın:
| Sunucu parametresi | Açıklama | Varsayılan Değer | Değerler |
|---|---|---|---|
gtid_mode |
GTID'lerin işlemleri tanımlamak için kullanılıp kullanılmadiğini gösterir. Modlar arasındaki değişiklikler her seferinde artan düzende yalnızca bir adım yapılabilir (ör. OFF ->OFF_PERMISSIVEON_PERMISSIVE> -)>ON |
OFF* |
OFF: Hem yeni hem de çoğaltma işlemleri anonim olmalıdırOFF_PERMISSIVE: Yeni işlemler anonimdir. Çoğaltılan işlemler anonim veya GTID işlemleri olabilir.ON_PERMISSIVE: Yeni işlemler GTID işlemleridir. Çoğaltılan işlemler anonim veya GTID işlemleri olabilir.ON: Hem yeni hem de çoğaltılan işlemler GTID işlemleri olmalıdır. |
enforce_gtid_consistency |
Yalnızca işlem açısından güvenli bir şekilde günlüğe kaydedilebilen deyimlerin yürütülmesine izin vererek GTID tutarlılığını zorlar. GTID çoğaltmasını etkinleştirmeden önce değeri ON ayarlayın. |
OFF* |
OFF: Tüm işlemlerin GTID tutarlılığını ihlal etmelerine izin verilir.ON: GTID tutarlılığını ihlal etmeye hiçbir işlem izin verilmez.WARN: Tüm işlemlerin GTID tutarlılığını ihlal etmelerine izin verilir, ancak bir uyarı oluşturulur. |
Not
Yüksek kullanılabilirlik özelliği etkinleştirilmiş MySQL için Azure Veritabanı Esnek Sunucu örnekleri için varsayılan değer olarak ONayarlanır.
GTID'yi etkinleştirdikten sonra kapatamazsınız. GTID'yi kapatmanız gerekiyorsa desteğe başvurun.
GTID'leri bir değerden bir kerede yalnızca bir adıma, artan mod sırasına göre değiştirebilirsiniz. Örneğin, şu anda olarak ayarlandıysa gtid_mode olarak değiştirebilirsiniz ancak olarak değiştiremezsiniz ON_PERMISSIVEON.OFF_PERMISSIVE
Çoğaltmanın tutarlı kalmasını sağlamak için, birincil veya çoğaltma sunucusu için güncelleştiremezsiniz.
ayarı olarak ON ayardan önce olarak ONayarlayın enforce_gtid_consistencygtid_mode.
GTID'yi etkinleştirmek ve tutarlılık davranışını yapılandırmak için ve enforce_gtid_consistency sunucu parametrelerini güncelleştiringtid_mode.
Azure portalını kullanarak MySQL için Azure Veritabanı - Esnek Sunucuda sunucu parametrelerini yapılandırma veya AzureCLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucuda sunucu parametrelerini yapılandırma seçeneğini kullanın.
Bir kaynak sunucu GTID' yi (gtid_mode = ON ) etkinleştirirse, yeni oluşturulan çoğaltmalar da GTID'yi etkinleştirir ve GTID çoğaltmasını kullanır. Çoğaltma tutarlılığını sağlamak için, GTID etkin birincil veya çoğaltma sunucuları oluşturduktan sonra değiştiremezsiniz gtid_mode .
Dikkat edilecekler ve sınırlamalar
| Senaryo | Sınırlama/Dikkat Edilmesi Gerekenler |
|---|---|
| SeriLeştirilebilir Fiyatlandırma Katmanındaki sunucuda çoğaltma | Desteklenmez |
| Fiyatlandırma | Çoğaltma sunucusunu çalıştırmanın maliyeti, çoğaltma sunucusunun çalıştığı bölgeye bağlıdır. |
| Kaynak sunucu kapalı kalma süresi/yeniden başlatma | Okuma amaçlı çoğaltma oluşturulurken yeniden başlatma veya kapalı kalma süresi gerekmez. Bu işlem çevrimiçi bir işlemdir. |
| Yeni çoğaltmalar | MySQL için Azure Veritabanı Esnek Sunucu örneği olarak bir okuma amaçlı çoğaltma oluşturursunuz. Var olan bir sunucuyu çoğaltmaya dönüştüremezsiniz. Başka bir okuma amaçlı çoğaltmanın çoğaltmasını oluşturamazsınız. |
| Çoğaltma yapılandırması | Kaynakla aynı sunucu yapılandırmasını kullanarak bir çoğaltma oluşturursunuz. Çoğaltma oluşturduktan sonra, kaynak sunucudan bağımsız olarak çeşitli ayarları değiştirebilirsiniz: işlem oluşturma, sanal çekirdekler, depolama ve yedekleme saklama süresi. İşlem katmanını bağımsız olarak da değiştirebilirsiniz. ÖNEMLİ - Kaynak sunucu yapılandırmasını yeni değerlerle güncelleştirmeden önce çoğaltma yapılandırmasını eşit veya daha büyük değerlere güncelleştirin. Bu eylem, çoğaltmanın kaynak kopya üzerinde yapılan değişiklikleri yansıtmasını sağlar. Çoğaltmayı oluşturduğunuzda bağlantı yöntemi ve parametre ayarları kaynak sunucudan çoğaltmaya devralınır. Daha sonra, çoğaltmanın kuralları bağımsızdır. |
| Durdurulan çoğaltmalar | Bir kaynak sunucu ile okuma çoğaltması arasında çoğaltmayı durdurursanız, durdurulan çoğaltma hem okuma hem de yazmaları kabul eden tek başına bir sunucu olur. Tek başına sunucuyu yeniden bir çoğaltmaya dönüştüremezsiniz. |
| Silinen kaynak sunucular | Bir kaynak sunucuyu sildiğinizde, çoğaltma tüm okuma amaçlı çoğaltmalara durdurulur. Bu çoğaltmalar otomatik olarak tek başına sunucular haline gelir ve hem okumaları hem de yazmaları kabul edebilir. Kaynak sunucunun kendisi silinir. |
| Kullanıcı hesapları | Kaynak sunucudaki kullanıcılar okuma amaçlı çoğaltmalara çoğaltılır. Okuma amaçlı çoğaltmaya yalnızca kaynak sunucuda bulunan kullanıcı hesaplarını kullanarak bağlanabilirsiniz. |
| Sunucu parametreleri | Verilerin eşitlenmemiş duruma gelmesini ve olası veri kaybını önlemek için, okuma amaçlı çoğaltmaları kullanırken bazı sunucu parametreleri güncelleştirmeye karşı kilitlenir. Aşağıdaki sunucu parametreleri hem kaynak hem de çoğaltma sunucularında kilitlenir: - innodb_file_per_table- log_bin_trust_function_creatorsevent_scheduler parametresi çoğaltma sunucularında kilitlenir.Kaynak sunucudaki önceki parametrelerden birini güncelleştirmek için çoğaltma sunucularını silin, kaynakta parametre değerini güncelleştirin ve çoğaltmaları yeniden oluşturun. |
| Oturum düzeyi parametreleri | Okuma amaçlı çoğaltmada 'foreign_keys_checks' gibi oturum düzeyi parametreleri yapılandırırken, okuma amaçlı çoğaltmada ayarladığınız parametre değerlerinin kaynak sunucununkilerle tutarlı olduğundan emin olun. |
| Kaynak sunucuda var olan tabloya AUTO_INCREMENT Birincil Anahtar sütunu ekleme | Bu eylem çoğaltmayı bozduğu için, okuma amaçlı çoğaltma oluşturduktan sonra tabloyu ile AUTO_INCREMENT değiştirmenizi önermiyoruz. Çoğaltma sunucusu oluşturduktan sonra otomatik artış sütunu eklemek istiyorsanız şu yaklaşımları göz önünde bulundurun:- Değiştirmek istediğiniz tabloyla aynı şemaya sahip yeni bir tablo oluşturun. Yeni tabloda, sütununu ile AUTO_INCREMENTdeğiştirin ve ardından özgün tablodan verileri geri yükleyin. Eski tabloyu bırakın ve kaynakta yeniden adlandırın; bu yaklaşım, çoğaltma sunucusunun silinmesini gerektirmez, ancak bir yedekleme tablosu oluşturmak için büyük bir ekleme maliyetine neden olabilir.- Tüm otomatik artış sütunlarını ekledikten sonra çoğaltmayı yeniden oluşturun. |
| Diğer | - Bir çoğaltmanın çoğaltmasının oluşturulması desteklenmez. - Bellek içi tablolar çoğaltmaların eşitlenmemiş olmasına neden olabilir. Bu sınırlama, MySQL çoğaltma teknolojisinden kaynaklanır. Daha fazla bilgi için MySQL başvuru belgelerine bakın. - Kaynak sunucu tablolarında birincil anahtarlar olduğundan emin olun. Birincil anahtarların olmaması, kaynak ile çoğaltmalar arasında çoğaltma gecikmesine neden olabilir. - MySQL çoğaltma sınırlamalarının tam listesini MySQL belgelerinde gözden geçirin. |