Aracılığıyla paylaş


MySQL'MySQL için Azure Veritabanı Veri Geçişi - MySQL Ile Tutarlı Anlık Görüntü

MySQL Tutarlı Anlık Görüntüsü, kullanıcıların devam eden CRUD (Oluşturma, Okuma, Güncelleştirme ve Silme) işlemleri nedeniyle kaynakta veri bütünlüğünü kaybetmeden MySQL sunucusunun Tutarlı Anlık Görüntüsünü almasını sağlayan yeni bir özelliktir. bu özellik aracılığıyla kaynak sunucuyu salt okunur moda ayarlamaya gerek kalmadan işlem tutarlılığı elde edilir. Ayrıca, kullanıcıya sunulan birden çok veri tutarlılığı seçeneği vardır: okuma kilidi (GA) ile tutarlı anlık görüntüyü etkinleştirme, kilitler olmadan tutarlı anlık görüntüyü etkinleştirme (Önizleme), Kaynak Sunucuyu Salt Okunur Yap ve Yok. 'Yok' seçeneğinin seçilmesi, veri tutarlılığını sağlamak için ek ölçü alınmamasını gerektirir. Her iki seçenek de - okuma kilidi (GA) ile tutarlı anlık görüntüyü etkinleştirin, çevrimiçi geçiş gerçekleştirmeyi destekleyen kilitler olmadan tutarlı anlık görüntüyü etkinleştirin. İşlem tutarlılığını korumak için 'Kilit olmadan Tutarlı Anlık Görüntüyü Etkinleştir' seçeneğinin seçilmesini kesinlikle öneririz.

MySQL'MySQL için Azure Veritabanı Veri Geçiş Sihirbazı - İşlem Tutarlılığını Etkinleştirme.

Kilitler olmadan Tutarlı Anlık Görüntü'leri etkinleştirme (Önizleme)

Bu seçeneği etkinleştirdiğinizde, ilk yüklemeden sonra bir mutabakat aşaması gerçekleşir. Bu, hedefinize yazılan verilerin ikili günlükteki belirli bir konumdan kaynak sunucuyla işlemsel olarak tutarlı olmasını sağlamaktır.

Bu özellik sayesinde sunucuda okuma kilidi almıyoruz. Bunun yerine tabloları zaman içinde farklı bir noktada okurken, her tablonun farklı binlog konumlarını takip ediyoruz. Bu, tutarlı bir anlık görüntü almak için yakalama modunda çoğaltma gerçekleştirerek tabloları ilk yükün sonuna doğru uzlaştırmaya yardımcı olur.

MySQL'MySQL için Azure Veritabanı Veri Geçiş Sihirbazı - geçiş ilerleme durumu.

MySQL'MySQL için Azure Veritabanı Veri Geçiş Sihirbazı - Mutabakat ilerleme durumu.

Kilitler olmadan Tutarlı Anlık Görüntünün temel özellikleri:

  • Okuma kilitlerine gerek kalmadan uzun süre çalışan işlemlere sahip ağır iş yükü sunucularını veya sunucularını destekleyebilme.
  • Önceden oluşturulmuş tüm bağlantıların kaybolmasına neden olan geçici ağ/sunucu sinyallerinin neden olduğu hatalar durumunda bile geçişleri tamamlama konusunda dayanıklıdır.

Okuma kilidi (GA) ile Tutarlı Anlık Görüntü'leri etkinleştirme

Bu seçeneği etkinleştirdiğinizde hizmet, belirli bir noktaya anlık görüntüyü almak için kaynak sunucudaki tüm tabloları okuma kilidiyle temizler. Genel kilit, tek tek veritabanlarını veya tabloları kilitlemeye çalışmaktan daha güvenilir olduğundan bu temizleme gerçekleştirilir. Sonuç olarak, bir sunucudaki tüm veritabanlarını geçirmeseniz bile, geçiş işlemini ayarlamanın bir parçası olarak kilitlenirler. Geçiş hizmeti yinelenebilir bir okuma başlatır ve geçerli tablo durumunu anlık görüntü için geri alma günlüğünün içeriğiyle birleştirir. Anlık görüntü , sunucu geniş kilidi birkaç saniyeliğine alındıktan ve geçiş için birkaç bağlantı oluşturulduktan sonra oluşturulur. Geçiş için kullanılan tüm bağlantılar oluşturulduktan sonra tablodaki kilitler serbest bırakılır.

Geçiş sırasında geri alma günlüklerinin erişilebilir olmasını sağlamak için tekrarlanabilir okumalar etkinleştirilir ve bu da uzun süre çalışan bağlantılar nedeniyle kaynakta gereken depolamayı artırır. Birden çok tablo değişikliğiyle uzun süre çalışan bir geçiş, yeniden yürütülmesi gereken kapsamlı bir geri alma günlüğü geçmişine yol açar ve ayrıca işlem gereksinimlerini artırabilir ve kaynak sunucuya yükleme yapabilir.

Kaynak Sunucuyu Salt Okunur Yap

Bu seçeneğin belirtilmesi, geçiş sırasında kaynak sunucuda Yazma/Silme işlemlerini engelleyerek kaynak geçirildiğinden hedef veritabanının veri bütünlüğünü korur. Geçiş işleminin bir parçası olarak kaynak sunucuyu salt okunur hale getirdiğinizde, seçim, geçiş için seçili olup olmadıklarına bakılmaksızın kaynak sunucunun tüm veritabanlarına uygulanır.

Kaynak sunucunun salt okunur hale getirilmesi, kullanıcıların verileri değiştirmesini engeller ve veritabanını herhangi bir güncelleştirme işlemi için kullanılamaz duruma getirir. Ancak, bu seçenek etkinleştirilmediyse, geçiş sırasında veri güncelleştirmelerinin gerçekleşme olasılığı vardır. Sonuç olarak, veritabanı anlık görüntüleri zaman içinde farklı noktalarda okunacağından geçirilen veriler tutarsız olabilir.

Okuma kilidi ile Tutarlı Anlık Görüntüyü Etkinleştirme önkoşulları

Okuma kilidi etkinleştirilmiş Tutarlı Anlık Görüntü ile geçişi başarıyla tamamlamak için:

  • Tabloları okuma kilidiyle temizlemeye çalışan kullanıcının RELOAD veya FLUSH iznine sahip olduğundan emin olun.

  • Kaynak sunucuda log_bin etkinleştirilip etkinleştirilmediğini belirlemek için mysql istemci aracını kullanın. Bölme günlüğü her zaman varsayılan olarak açık değildir ve geçişe başlamadan önce etkinleştirilip etkinleştirilmediğini görmek için denetlenmelidir. mysql istemci aracı, şu komutu çalıştırarak kaynakta log_bin etkinleştirilip etkinleştirilmediğini belirlemek için kullanılır: 'log_bin' GIBI DEĞIŞKENLERI GÖSTER;

Not

4 TB'a kadar destekleyen MySQL için Azure Veritabanı Tek Sunucu ile bu varsayılan olarak etkinleştirilmez. Ancak, kaynak sunucu için bir okuma çoğaltması yükseltip okuma amaçlı çoğaltmayı silerseniz, parametresi ON olarak ayarlanır.

  • Çoğaltma değişiklikleri işlemeden önce binlog dosyalarının temizlenmediğinden emin olmak için kaynak sunucuda binlog_expire_logs_seconds parametresini yapılandırın. Tam geçiş başarılı olduktan sonra değer sıfırlanabilir.

Kilit olmadan Tutarlı Anlık Görüntüyü Etkinleştirme ile ilgili bilinen sorunlar ve sınırlamalar

  • Silme/güncelleştirme yan tümcesinde Art Arda Veya Null Ayarla özelliğine sahip yabancı anahtarlara sahip tablolar desteklenmez.
  • İlk yükleme sırasında DDL değişikliği yapılmamalıdır.

Okuma kilidi ile Tutarlı Anlık Görüntüyü Etkinleştirme ile ilgili bilinen sorunlar ve sınırlamalar

Tutarlı Yedekleme ile ilgili bilinen sorunlar ve sınırlamalar iki kategoriye ayrılır: kilitler ve yeniden denemeler.

Not

Geçiş hizmeti, sunucu anlık görüntüsünü almak için tüm çalışan iş parçacıkları için TUTARLı ANLıK GÖRÜNTÜ ile İŞLEM BAŞLAT sorgusunu çalıştırır. Ancak bu yalnızca InnoDB tarafından desteklenir. Burada daha fazla bilgi bulabilirsiniz.

Kilitler

Genellikle, birkaç saniye ile birkaç dakika arasında tamamlanması gereken bir kilit elde etmek basit bir işlemdir. Ancak birkaç senaryoda kaynak sunucuda kilit alma girişimleri başarısız olabilir.

  • DMS tabloların bir alt kümesini kilitleyip son birkaçının kullanılabilir olmasını beklerken zaman aşımına neden olabileceğinden, uzun süre çalışan sorguların varlığı gereksiz kapalı kalma süresine neden olabilir. Geçişe başlamadan önce SHOW PROCESSLIST komutunu çalıştırarak uzun süre çalışan işlemleri denetleyin.

  • Kaynak sunucu, bir kilit istendiğinde birçok yazma güncelleştirmesi yaşıyorsa, kilit hazır olarak alınamaz ve kilit bekleme zaman aşımından sonra başarısız olabilir. Bu, tablolarda toplu işlem görevleri söz konusu olduğunda oluşur ve bu, devam ederken kilit isteğinin reddedilmesine neden olabilir. Daha önce belirtildiği gibi, istenen kilit sunucunun tamamı için tek bir genel düzey kilit olduğundan, tek bir tablo veya veritabanı işleniyor olsa bile, kilit isteğinin devam eden görevin tamamlanmasını beklemesi gerekir.

  • Başka bir sınırlama da AWS RDS kaynak sunucusundan geçişle ilgilidir. RDS okuma kilidi olan tabloları temizlemeyi desteklemez ve kaputun altındaki seçili tablolarda LOCK TABLE sorgusu çalıştırılır. Tablolar ayrı ayrı kilitlendiğinden, kilitleme işlemi daha az güvenilir olabilir ve kilitlerin alınması daha uzun sürebilir.

Yeniden deneme sayısı

Geçiş, geçici bağlantı sorunlarını işler ve bu amaçla genellikle önceden ek bağlantılar sağlanır. Geçiş ayarlarına, özellikle de kaynak üzerindeki paralel okuma işlemlerinin sayısına göz atıp bir faktör (genellikle ~1,5) uygular ve önden birçok bağlantı oluştururuz. Bu şekilde hizmet, işlemleri paralel olarak çalıştırmaya devam edebilmemizi sağlar. Herhangi bir zamanda, bir bağlantı kaybı olursa veya hizmet kilit alamıyorsa, hizmet geçişi yeniden denemek için sağlanan fazlalık bağlantıları kullanır. Sağlanan tüm bağlantılar tükenirse, belirli bir noktaya eşitleme kaybına neden olursa, geçişin baştan yeniden başlatılması gerekir. Hem başarı hem de başarısızlık durumlarında, tüm temizleme eylemleri bu çevrimdışı geçiş hizmeti tarafından gerçekleştirilir ve kullanıcının herhangi bir açık temizleme eylemi gerçekleştirmesi gerekmez.

Sonraki adımlar