MySQL için Azure Veritabanı’nda okuma amaçlı çoğaltmalar
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu
Önemli
MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?
Okuma amaçlı çoğaltma özelliği, MySQL için Azure Veritabanı’ndan salt okunur bir sunucuya verileri çoğaltmanıza olanak sağlar. Kaynak sunucudan en fazla beş çoğaltmaya çoğaltabilirsiniz. Çoğaltmalar, MySQL altyapısının yerel ikili günlük (binlog) dosya konumu tabanlı çoğaltma teknolojisini 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ış.
Çoğaltmalar, normal MySQL için Azure Veritabanı sunucularına benzer şekilde yönettiğiniz yeni sunuculardır. Her okuma amaçlı çoğaltma için sanal çekirdek ve depolama alanında sağlanan işlem için GB/ay olarak faturalandırılırsınız.
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. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.
Okuma amaçlı çoğaltma ne zaman kullanılır?
Okuma amaçlı çoğaltma özelliği, yoğun okuma gerektiren iş yüklerinin performansını ve ölçeğini geliştirmeye yardımcı olur. Okuma iş yükleri çoğaltmalara yalıtılabilirken, yazma iş yükleri kaynağa yönlendirilebilir.
BI ve analiz iş yükleri genellikle raporlama için veri kaynağı olarak okuma amaçlı çoğaltmaları kullanır.
Ç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 olacaktı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.
Herhangi bir MySQL için Azure Veritabanı bölgede bir kaynak sunucunuz olabilir. Kaynak sunucunun eşleştirilmiş bölgesinde veya evrensel çoğaltma bölgelerinde çoğaltması olabilir. Aşağıdaki resimde, kaynak bölgenize bağlı olarak hangi çoğaltma bölgelerinin kullanılabilir olduğu gösterilmektedir.
Evrensel çoğaltma bölgeleri
Kaynak sunucunuzun bulunduğu konumdan bağımsız olarak aşağıdaki bölgelerden herhangi birinde okuma amaçlı çoğaltma oluşturabilirsiniz. Desteklenen evrensel çoğaltma bölgeleri şunlardır:
Bölge | Çoğaltma kullanılabilirliği |
---|---|
Doğu Avustralya | ✔️ |
Avustralya Güneydoğu | ✔️ |
Güney Brezilya | ✔️ |
Orta Kanada | ✔️ |
Doğu Kanada | ✔️ |
Orta ABD | ✔️ |
Doğu ABD | ✔️ |
Doğu ABD 2 | ✔️ |
Doğu Asya | ✔️ |
Doğu Japonya | ✔️ |
Batı Japonya | ✔️ |
Güney Kore - Orta | ✔️ |
Güney Kore - Güney | ✔️ |
Kuzey Avrupa | ✔️ |
Orta Kuzey ABD | ✔️ |
Orta Güney ABD | ✔️ |
Güneydoğu Asya | ✔️ |
Kuzey İsviçre | ✔️ |
Güney Birleşik Krallık | ✔️ |
Batı Birleşik Krallık | ✔️ |
Batı Orta ABD | ✔️ |
Batı ABD | ✔️ |
Batı ABD 2 | ✔️ |
West Europe | ✔️ |
Orta Hindistan* | ✔️ |
Orta Fransa* | ✔️ |
BAE Kuzey* | ✔️ |
Güney Afrika Kuzey* | ✔️ |
Not
*MySQL için Azure Veritabanı Genel Önizleme'de Genel amaçlı depolama v2'ye sahip olduğu bölgeler
*Bu Azure bölgeleri için hem Genel amaçlı depolama v1 hem de v2'de sunucu oluşturma seçeneğiniz olacaktır. Genel önizlemede Genel amaçlı depolama v2 ile oluşturulan sunucular için yalnızca Genel amaçlı depolama v2'yi destekleyen Azure bölgelerinde çoğaltma sunucusu oluşturmakla sınırlısınız.
Eşleştirilmiş bölgeler
Evrensel çoğaltma bölgelerine ek olarak, kaynak sunucunuzun Azure eşleştirilmiş bölgesinde bir okuma çoğaltması oluşturabilirsiniz. Bölgenizin çiftini bilmiyorsanız Azure Eşleştirilmiş Bölgeler makalesinden daha fazla bilgi edinebilirsiniz.
Olağanüstü durum kurtarma planlaması için bölgeler arası çoğaltmalar kullanıyorsanız, çoğaltmayı diğer bölgelerden biri yerine eşleştirilmiş bölgede oluşturmanızı öneririz. Eşleştirilmiş bölgeler eşzamanlı güncelleştirmelerden kaçınarak fiziksel yalıtım ve veri yerleşimi önceliklerini belirler.
Ancak, dikkate alınması gereken sınırlamalar vardır:
Bölgesel kullanılabilirlik: MySQL için Azure Veritabanı Orta Fransa, Kuzey BAE ve Orta Almanya'da kullanılabilir. Ancak eşleştirilmiş bölgeleri kullanılamaz.
Tek yönlü çiftler: Bazı Azure bölgeleri yalnızca bir yönde eşleştirilir. Bu bölgeler Batı Hindistan, Güney Brezilya ve US Gov Virginia'dır. Bu, Batı Hindistan'daki bir kaynak sunucunun Güney Hindistan'da bir çoğaltma oluşturabileceği anlamına gelir. Ancak, Güney Hindistan'daki bir kaynak sunucu Batı Hindistan'da çoğaltma oluşturamaz. Bunun nedeni Batı Hindistan'ın ikincil bölgesinin Güney Hindistan olmasıdır, ancak Güney Hindistan'ın ikincil bölgesi Batı Hindistan değildir.
Çoğaltma oluşturma
Önemli
- Okuma amaçlı çoğaltma özelliği yalnızca Genel Amaçlı veya Bellek için İyileştirilmiş fiyatlandırma katmanlarındaki MySQL için Azure Veritabanı sunucularda kullanılabilir. Kaynak sunucunun bu fiyatlandırma katmanlarından birinde olduğundan emin olun.
- Kaynak sunucunuzda çoğaltma sunucusu yoksa, kaynak sunucunun kullanılan depolama alanına (v1/v2) bağlı olarak kendisini çoğaltmaya hazırlamak için yeniden başlatması gerekebilir. Lütfen sunucuyu yeniden başlatmayı göz önünde bulundurun ve yoğun olmayan saatlerde bu işlemi gerçekleştirin. Diğer ayrıntılar için bkz . Kaynak Sunucu yeniden başlatma .
Çoğaltma oluşturma iş akışını başlattığınızda boş bir MySQL için Azure Veritabanı sunucusu oluşturulur. Yeni sunucu, kaynak sunucuda bulunan verilerle doldurulur. 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. Çoğaltma sunucusu her zaman kaynak sunucuyla aynı kaynak grubunda ve aynı abonelikte oluşturulur. Farklı bir kaynak grubuna veya farklı aboneliğe çoğaltma sunucusu oluşturmak istiyorsanız, oluşturma işleminden sonra çoğaltma sunucusunu taşıyabilirsiniz.
Her çoğaltma, depolama otomatik büyütme için etkinleştirilir. Otomatik büyütme özelliği, çoğaltmanın çoğaltılan verilere ayak uydurmasını ve depolama dışı hatalardan kaynaklanan çoğaltma kesintisini önlemesini sağlar.
Azure portalda okuma amaçlı çoğaltma oluşturmayı öğrenin.
Çoğaltmaya bağlanma
Oluşturma sırasında, çoğaltma kaynak sunucunun güvenlik duvarı kurallarını devralır. Daha sonra bu kurallar kaynak sunucudan bağımsızdır.
Ç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ı sunucusunda yaptığınız gibi, çoğaltmaya ana bilgisayar adını ve geçerli bir kullanıcı hesabını kullanarak bağlanabilirsiniz. yönetici kullanıcı adı myadmin olan myreplica adlı bir sunucu için mysql CLI kullanarak çoğaltmaya bağlanabilirsiniz:
mysql -h myreplica.mysql.database.azure.com -u myadmin@myreplica -p
İstemde, kullanıcı hesabının parolasını girin.
Çoğaltmayı izleme
MySQL için Azure VeritabanıAzure İzleyici'de saniye cinsinden çoğaltma gecikmesi ölçümü. Bu ölçüm yalnızca çoğaltmalar için kullanılabilir. Bu ölçüm, MySQL'in SHOW SLAVE STATUS
komutunda bulunan ölçüm kullanılarak seconds_behind_master
hesaplanır. Çoğaltma gecikmesi iş yükünüz için kabul edilemeyen bir değere ulaş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.
Çoğaltmayı durdurma
Kaynak ile çoğaltma arasında çoğaltmayı durdurabilirsiniz. Bir kaynak sunucu ile okuma çoğaltması arasında çoğaltma durdurulduktan sonra, çoğaltma tek başına bir sunucu olur. Tek başına sunucudaki veriler, çoğaltmayı durdur komutu başlatıldığında çoğaltmada kullanılabilen verilerdir. Tek başına sunucu kaynak sunucuya yetişmiyor.
Bir çoğaltmaya çoğaltmayı durdurmayı seçtiğinizde, önceki kaynağına ve diğer çoğaltmalara yönelik tüm bağlantıları kaybeder. Kaynak ile çoğaltması arasında otomatik yük devretme yoktur.
Önemli
Tek başına sunucu yeniden bir çoğaltmaya dönüştürülemez. Okuma amaçlı bir çoğaltmada çoğaltmayı durdurmadan önce, çoğaltmada ihtiyacınız olan tüm verilerin olduğundan emin olun.
Çoğaltmaya çoğaltmayı durdurmayı öğrenin.
Yük devretme
Kaynak ve çoğaltma sunucuları arasında otomatik yük devretme yoktur.
Çoğaltma zaman uyumsuz olduğundan, kaynak ile çoğaltma arasında gecikme vardır. Gecikme miktarı, kaynak sunucuda çalışan iş yükünün ne kadar ağır olduğu ve veri merkezleri arasındaki gecikme süresi gibi birçok faktörden etkilenebilir. Çoğu durumda, çoğaltma gecikmesi birkaç saniyeyle 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. Bir süre boyunca çoğaltma gecikmenizi gözlemleyerek ortalama gecikmenizin ne olduğunu belirlemenizi ö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 devretme yaparsanız, çoğaltmanın kaynaktan bağlantısını kaldırdığınız zamandaki gecikme ne kadar verinin kaybolduğunu gösterir.
Bir çoğaltmaya yük devretmek istediğinize karar verdikten sonra:
Çoğaltmaya çoğaltmayı durdurma
Çoğaltma sunucusunun yazmaları kabul edebilmesi için bu adım gereklidir. Bu işlemin bir parçası olarak, çoğaltma sunucusu kaynaktan kaldırılacaktır. Çoğaltmayı durdurma işlemini başlattıktan sonra arka uç işleminin tamamlanması genellikle yaklaşık 2 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şledikten sonra yük devretmeyi tamamladınız. Uygulama deneyimlerinizin kapalı kalma süresi, bir sorun algılayıp daha önce listelenen 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), bir kaynak sunucuda işlenen her işlemle oluşturulan benzersiz bir tanımlayıcıdır ve MySQL için Azure Veritabanı varsayılan olarak KAPALI'dır. GTID, 5.7 ve 8.0 sürümlerinde ve yalnızca 16 TB'a kadar depolamayı destekleyen sunucularda desteklenir (Genel amaçlı depolama v2). GTID ve çoğaltmada nasıl kullanıldığı hakkında daha fazla bilgi edinmek için MySQL'in GTID ile çoğaltma belgelerine bakın.
MySQL iki tür işlemi destekler: GTID işlemleri (GTID ile tanımlanır) ve anonim işlemler (GTID ayrılmamış)
GTID'yi yapılandırmak için aşağıdaki sunucu parametreleri kullanılabilir:
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 artan düzende bir kerede yalnızca bir adım yapılabilir (örn. OFF -OFF_PERMISSIVE > ->ON_PERMISSIVE ->ON ) |
OFF |
OFF : Hem yeni hem de çoğaltma işlemleri anonim olmalıdır OFF_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ı etkinleştirilmeden önce bu değer olarak ON ayarlanmalıdır. |
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
GTID etkinleştirildikten sonra kapatamazsınız. GTID'yi KAPALI duruma getirmek isterseniz lütfen desteğe başvurun.
GTID'leri bir değerden diğerine değiştirmek için modlar artan düzende bir kerede yalnızca bir adım olabilir. Örneğin, gtid_mode şu anda OFF_PERMISSIVE olarak ayarlandıysa, ON_PERMISSIVE olarak değiştirmek mümkündür, ancak ON olarak değiştirilemez.
Çoğaltmayı tutarlı tutmak için bir ana/çoğaltma sunucusu için güncelleştiremezsiniz.
gtid_mode=ON olarak ayarlayabilmeniz için enforce_gtid_consistency ON olarak ayarlamanız önerilir
GTID'yi etkinleştirmek ve tutarlılık davranışını yapılandırmak için Azure portalını, Azure CLI'yi veya PowerShell'i kullanarak ve enforce_gtid_consistency
sunucu parametrelerini güncelleştiringtid_mode
.
GtID bir kaynak sunucuda (gtid_mode
= ON) etkinleştirildiyse, yeni oluşturulan çoğaltmalarda da GTID etkin olur ve GTID çoğaltması kullanılır. Çoğaltmanın tutarlı olduğundan emin olmak için, gtid_mode
ana sunucu veya çoğaltma sunucuları GTID etkin olarak oluşturulduktan sonra değiştirilemez.
Dikkat edilecekler ve sınırlamalar
Fiyatlandırma katmanları
Okuma amaçlı çoğaltmalar şu anda yalnızca Genel Amaçlı ve Bellek için İyileştirilmiş fiyatlandırma katmanlarında kullanılabilir.
Not
Çoğaltma sunucusunu çalıştırmanın maliyeti, çoğaltma sunucusunun çalıştığı bölgeye bağlıdır.
Kaynak sunucuyu yeniden başlatma
Genel amaçlı depolama v1'e sahip sunucu, log_bin
parametresi varsayılan olarak KAPALI olur. İlk okuma amaçlı çoğaltmayı oluşturduğunuzda değer AÇILACAKtir. Bir kaynak sunucuda okuma amaçlı çoğaltma yoksa, kaynak sunucu kendisini çoğaltmaya hazırlamak için önce yeniden başlatılır. Lütfen sunucuyu yeniden başlatmayı göz önünde bulundurun ve yoğun olmayan saatlerde bu işlemi gerçekleştirin.
Genel amaçlı depolama v2'ye sahip kaynak sunucu, log_bin
parametre varsayılan olarak ON olur ve okuma amaçlı çoğaltma eklediğinizde yeniden başlatma gerektirmez.
Yeni çoğaltmalar
Yeni bir MySQL için Azure Veritabanı sunucusu olarak bir okuma amaçlı çoğaltma oluşturulur. Var olan bir sunucu bir çoğaltmaya oluşturulamaz. Başka bir okuma amaçlı çoğaltmanın çoğaltmasını oluşturamazsınız.
Çoğaltma yapılandırması
Çoğaltma, kaynakla aynı sunucu yapılandırması kullanılarak oluşturulur. Çoğaltma oluşturulduktan sonra, kaynak sunucudan bağımsız olarak çeşitli ayarlar değiştirilebilir: işlem oluşturma, sanal çekirdekler, depolama ve yedekleme saklama süresi. Fiyatlandırma katmanı, Temel katmana veya Temel katmandan bağımsız olarak da değiştirilebilir.
Önemli
Kaynak sunucu yapılandırması yeni değerlere güncelleştirilmeden önce, çoğaltma yapılandırmasını eşit veya daha büyük değerlerle güncelleştirin. Bu eylem, çoğaltmanın kaynak kopya üzerinde yapılan değişiklikleri yansıtmasını sağlar.
Güvenlik duvarı kuralları ve parametre ayarları, çoğaltma oluşturulduğunda 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 sunucu yeniden bir çoğaltmaya dönüştürülemez.
Silinen kaynak ve tek başına sunucular
Bir kaynak sunucu silindiğinde, tüm okuma amaçlı çoğaltmalara çoğaltma 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:
event_scheduler
parametresi çoğaltma sunucularında kilitlenir.
Kaynak sunucuda yukarıdaki 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.
GTID
GTID şu konuda desteklenir:
- MySQL sürüm 5.7 ve 8.0.
- 16 TB'a kadar depolamayı destekleyen sunucular. 16 TB depolama alanını destekleyen bölgelerin tam listesi için fiyatlandırma katmanı makalesine bakın.
GTID varsayılan olarak KAPALI'dır. GTID etkinleştirildikten sonra kapatılamaz. GTID'yi kapatmanız gerekirse desteğe başvurun.
Kaynak sunucuda GTID etkinleştirildiyse, yeni oluşturulan çoğaltmalarda da GTID etkin olur ve GTID çoğaltması kullanılır. Çoğaltmanın tutarlı olmasını sağlamak için kaynak veya çoğaltma sunucularında güncelleştirme gtid_mode
yapamazsınız.
Diğer
- Bir çoğaltmanın çoğaltması oluşturulması desteklenmez.
- Bellek içi tablolar çoğaltmaların eşitlenmemiş olmasına neden olabilir. Bu, MySQL çoğaltma teknolojisinin bir sınırlamasıdır. Daha fazla bilgi için MySQL başvuru belgelerinde daha fazla bilgi edinin.
- 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 belgelerindeki MySQL çoğaltma sınırlamalarının tam listesini gözden geçirin