DBAtlas · Veritabanı operasyon atlası

MongoDB rolling upgrade (7.0 → 8.0): replica set ve sharded cluster

MongoDBSeviye: İleriSüre: 60–120 dk (veri boyutundan bağımsız; üye başına birkaç dakika)

Çalışan bir MongoDB 7.0 replica set'ini ya da sharded cluster'ını kesintisiz (rolling) 8.0'a yükseltir: ön kontroller (sürüm, FCV, üye durumu, sürücü uyumu), yedek, önce secondary'ler, ardından stepDown ve eski primary; sharded cluster'da balancer durdurma, config server, shard'lar, mongos'lar sırası. FCV 8.0 isteğe bağlı olarak burn-in sonrasına bırakılır; geri dönüş seçenekleri ve sınırları dahildir. Aynı ana sürüm içindeki patch güncellemesi (8.0.x → 8.0.y) için repo değişmez, aynı üye sırası izlenir; 6.0'dan gelen önce 7.0'a geçer.

Yapı: Replica set (3+ üye) ya da sharded cluster (config server + shard'lar + mongos)

Başlamadan önce

  • Tüm …mongod'lar (config server ve shard üyeleri) ve mongos'lar…üyeler… 7.0.x çalıştırıyor ve FCV 7.0. 6.0'dan geliyorsanız önce 7.0'a yükseltin (ana sürüm atlanamaz).
  • Hiçbir üye ROLLBACK/RECOVERING/STARTUP2 durumunda değil; secondary'ler primary'nin birkaç saniye gerisinde.
  • Oplog penceresi bakım süresinden (üye başına kapalı kalma) çok daha uzun (en az birkaç saat). Kısaysa kapalı kalan üye geri döndüğünde initial sync gerekir.
  • Tüm uygulama sürücüleri MongoDB 8.0 ile uyumlu sürümde (sürücü uyumluluk tablosu). Eski sürücüler 8.0'a bağlanamayabilir ya da yeni davranışları desteklemez.
  • 8.0 uyumluluk değişiklikleri sayfası okundu; kullandığınız kaldırılmış/değişmiş bir özellik (parametre, komut, sorgu davranışı) yok. Mümkünse önce bir test ortamında yükseltme provası yapıldı.
  • Güncel ve geri yüklemesi test edilmiş bir yedek var (snapshot ya da mongodump). Bakım penceresi onaylı.
  • Her üyede veri diski ve /var/log'da yeterli boş alan var; 8.0 repo'suna erişim (repo.mongodb.org) var.
  • Config server ve shard üyelerinde mongod mongod systemd servisiyle ve /etc/mongod.conf ile çalışıyor; mongos sunucularında servis adı …. Her sunucuda tek bir mongod/mongos süreci var.
  • Yükseltme penceresinde balancer durdurulabilir; devam eden chunk taşıması, resharding ya da index build yok. Bakım süresince shard key / collection metadata değişikliği planlanmadı.

Rehberin aşamaları

  • Ön kontroller — Sürüm, FCV ve rol (tüm …mongod'lar…üyeler…) · Üye durumu ve replikasyon gecikmesi · Cluster durumu, shard'lar ve balancer · Geçersiz system.buckets koleksiyonları · Sürücü ve uyumluluk kontrolü · Yedek ve geri dönüş noktası …
  • Repo değişikliği (tüm üyeler) — 8.0 repo'sunu ekle, 7.0 repo'sunu kapat · 8.0 repo'sunu ekle, 7.0 repo'sunu kapat
  • Secondary'leri tek tek yükselt — Secondary: … primary olmadığını doğrula ve durdur · Secondary: … üzerinde 8.0 binary'lerini kur · Secondary: … üzerinde THP'yi 8.0'a göre ayarla · Secondary: … başlat ve SECONDARY olmasını bekle · Secondary: … primary olmadığını doğrula ve durdur · Secondary: … üzerinde 8.0 binary'lerini kur …
  • Primary'yi geri çek ve yükselt — Secondary'lerin 8.0'da ve sağlıklı olduğunu doğrula · Primary'yi geri çek (stepDown) · Eski primary: … primary olmadığını doğrula ve durdur · Eski primary: … üzerinde 8.0 binary'lerini kur · Eski primary: … üzerinde THP'yi 8.0'a göre ayarla · Eski primary: … başlat ve SECONDARY olmasını bekle
  • Balancer'ı durdur — Balancer'ı durdur ve taşımaların bittiğini doğrula
  • Balancer'ı aç ve sürümleri doğrula — Tüm bileşenlerin 8.0'da olduğunu doğrula · Balancer'ı yeniden aç
  • Doğrulama — Tüm üyeler 8.0'da · Uygulama ve log kontrolü
  • featureCompatibilityVersion 8.0 — FCV'yi 8.0'a yükselt · FCV'yi doğrula
  • Geri dönüş (yalnız sorun olursa) — Geri dönüş yolunu seç · Binary'leri 7.0'a döndür: … · Yedekten geri dönüş · Sharded cluster'da geri dönüş sırası
Ortamına göre adım adım planı aç →