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:

  1. Ç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.

  2. 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

Sonraki adımlar