MySQL için Azure Veritabanı Esnek Sunucusuna verileri çoğaltma

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Esnek Sunucu

Veri girişi çoğaltma, bir dış MySQL sunucusundaki verileri MySQL için Azure Veritabanı Esnek Sunucu örneğine eşitlemenizi sağlar. Dış sunucu şirket içinde, sanal makinelerde, tek sunucuda MySQL için Azure Veritabanı veya diğer bulut sağlayıcıları tarafından barındırılan bir veritabanı hizmeti olabilir. Veri girişi çoğaltması ikili günlük (binlog) dosya konumunu veya GTID tabanlı çoğaltmayı temel alır. Binlog çoğaltması hakkında daha fazla bilgi edinmek için bkz . MySQL Çoğaltma.

Not

Yüksek kullanılabilirlik ile etkinleştirilen sunucular için Veri içi çoğaltmanın yapılandırılması yalnızca GTID tabanlı çoğaltma aracılığıyla desteklenir.

Veri ekleme çoğaltması ne zaman kullanılır?

Verili çoğaltmayı kullanma konusunda dikkate alınması gereken ana senaryolar şunlardır:

  • Karma Veri Eşitleme: Veri içi çoğaltma ile şirket içi sunucularınız ile MySQL için Azure Veritabanı Esnek Sunucu arasında verilerin eşitlenmesini sağlayabilirsiniz. Bu eşitleme, karma uygulamaların oluşturulmasına yardımcı olur. Bu yöntem, mevcut bir yerel veritabanı sunucunuz olduğunda ancak verileri son kullanıcılara daha yakın bir bölgeye taşımak istediğinizde caziptir.
  • Çoklu Bulut Eşitlemesi: Karmaşık bulut çözümleri için, MySQL için Azure Veritabanı Esnek Sunucu ile bu bulutlarda barındırılan sanal makineler ve veritabanı hizmetleri dahil olmak üzere farklı bulut sağlayıcıları arasında verileri eşitlemek için Veri giriş çoğaltmasını kullanın.
  • Geçiş: Müşteriler, MyDumper/MyLoader gibi Açık kaynak araçları kullanarak En Kısa Sürede Geçiş Yapabilir. Kaynaktan hedef veritabanına üretim yükünün seçmeli tam geçişi, Verili çoğaltma ile mümkündür.

Geçiş senaryoları için Azure Veritabanı Geçiş Hizmeti(DMS) kullanın.

Sınırlamalar ve önemli noktalar

Çoğaltılmayan veriler

Kaynak sunucudaki mysql sistem veritabanı çoğaltılmıyor. Ayrıca, kaynak sunucudaki hesaplarda ve izinlerde yapılan değişiklikler çoğaltılamaz. Kaynak sunucuda bir hesap oluşturursanız ve bu hesabın çoğaltma sunucusuna erişmesi gerekiyorsa, çoğaltma sunucusunda aynı hesabı el ile oluşturun. Sistem veritabanındaki tabloları anlamak için MySQL el kitabına bakın.

Yüksek Kullanılabilirlik (HA) özellikli sunucularda veri içi çoğaltma desteklenir

Yüksek kullanılabilirlik (HA) özellikli sunucu için veri içi çoğaltma desteği yalnızca GTID tabanlı çoğaltma aracılığıyla kullanılabilir.

GTID kullanarak çoğaltma için saklı yordam, adıyla mysql.az_replication_change_master_with_gtidtüm HA özellikli sunucularda kullanılabilir.

Filtre

parametresi replicate_wild_ignore_table , çoğaltma sunucusundaki tablolar için bir çoğaltma filtresi oluşturur. Bu parametreyi Azure portalından değiştirmek için çoğaltma olarak kullanılan MySQL için Azure Veritabanı Esnek Sunucu örneğine gidin ve parametreyi görüntülemek/düzenlemek replicate_wild_ignore_table için "Sunucu Parametreleri" öğesini seçin.

Gereksinimler

  • Kaynak sunucu sürümü en az MySQL sürüm 5.7 olmalıdır.

  • Önerimiz, kaynak ve çoğaltma sunucusu sürümleri için aynı sürüme sahip olmaktır. Örneğin, her ikisi de MySQL sürüm 5.7 veya her ikisi de MySQL sürüm 8.0 olmalıdır.

  • Önerimiz, her tabloda bir birincil anahtar olmasıdır. Birincil anahtarı olmayan bir tablomuz varsa, çoğaltmada yavaşlamayla karşılaşabilirsiniz.

  • Kaynak sunucu MySQL InnoDB altyapısını kullanmalıdır.

  • Kullanıcının ikili günlüğü yapılandırmak ve kaynak sunucuda yeni kullanıcılar oluşturmak için doğru izinlere sahip olması gerekir.

  • Çoğaltma bu değişiklikleri uygulamadan önce kaynak sunucudaki ikili günlük dosyaları temizlenmemelidir. Kaynak MySQL için Azure Veritabanı Esnek Sunucu ise, Esnek Sunucu veya Tek sunucu için binlog_expire_logs_seconds yapılandırma konusuna bakın

  • Kaynak sunucuda SSL etkinse, etki alanı için sağlanan SSL CA sertifikasının saklı yordama eklendiğinden mysql.az_replication_change_master emin olun. Aşağıdaki örneklere ve parametresine master_ssl_ca bakın.

  • Kaynak sunucuyu barındıran makinenin 3306 numaralı bağlantı noktasında hem gelen hem de giden trafiğe izin verdiğinden emin olun.

  • Genel erişimle, kaynak sunucunun bir genel IP adresine sahip olduğundan, DNS'nin genel olarak erişilebilir olduğundan veya kaynak sunucunun tam etki alanı adına (FQDN) sahip olduğundan emin olun. Özel bir uç noktanız varsa ve genel erişimi devre dışı bırakmışsanız, veri girişi çoğaltması desteklenmez

  • Özel erişim (VNet Tümleştirmesi) ile kaynak sunucu adının çözümlenebildiğinden ve MySQL için Azure Veritabanı Esnek Sunucu örneğinin çalıştığı sanal ağdan erişilebilir olduğundan emin olun. (Daha fazla ayrıntı için Azure sanal ağlarındaki kaynaklar için ad çözümlemesi).

Oluşturulan Görünmez Birincil Anahtar

MySQL sürüm 8.0 ve üzeri için, Oluşturulan Görünmez Birincil Anahtarlar (GIPK) tüm MySQL için Azure Veritabanı Esnek Sunucu örnekleri için varsayılan olarak etkinleştirilir. MySQL 8.0+ sunucuları görünmez sütun my_row_id tablolara ve bu sütunda bir birincil anahtar ekler; burada InnoDB tablosu açık bir birincil anahtar olmadan oluşturulur. Bu özellik etkinleştirildiğinde, aşağıda açıklandığı gibi bazı veri çoğaltma kullanım örneklerini etkileyebilir:

  • Kaynak sunucu Tabloda Birincil Anahtar olmadan bir Birincil anahtar oluşturursa, veri ekleme çoğaltması şu çoğaltma hatasıyla başarısız oluyor: "HATA 1068 (42000): Birden çok birincil anahtar tanımlandı". Azaltma için aşağıdaki sql komutunu çalıştırın, çoğaltma hatasını atlayın ve veri içi çoğaltmayı yeniden başlatın.

    alter table <table name> drop column my_row_id, add primary key <primary key name>(<column name>);
    
  • Veri içi çoğaltma, çoğaltma hatasıyla başarısız oluyor: "HATA 1075 (42000): Yanlış tablo tanımı; yalnızca bir otomatik sütun olabilir ve kaynak sunucu Benzersiz Anahtar olarak bir auto_increment sütunu eklerse, bu sütun anahtar olarak tanımlanmalıdır. Azaltma için aşağıdaki sql komutunu çalıştırın, "sql_generate_invisible_primary_key" öğesini KAPALI olarak ayarlayın, çoğaltma hatasını atlayın ve veri içi çoğaltmayı yeniden başlatın.

    alter table <table name> drop column my_row_id, modify <column name> int auto_increment;
    
  • Kaynak sunucu "sql_generate_invisible_primary_key" ON olduğunda desteklenmeyen başka bir SQL çalıştırıyorsa, veri ekleme çoğaltması başarısız olur. Örneğin, bir bölüm tablosu oluşturun. Böyle bir senaryoda azaltma, "sql_generate_invisible_primary_key" değerini KAPALI olarak ayarlamak ve veri gelen çoğaltmayı yeniden başlatmaktır.

Sonraki adımlar