MongoDB - Çoğaltma
Replikasyon, verileri birden çok sunucu arasında senkronize etme işlemidir. Replikasyon, yedeklilik sağlar ve farklı veritabanı sunucularında birden çok veri kopyasıyla veri kullanılabilirliğini artırır. Çoğaltma, bir veritabanını tek bir sunucunun kaybına karşı korur. Çoğaltma ayrıca donanım arızalarından ve hizmet kesintilerinden kurtulmanıza da olanak tanır. Verilerin ek kopyalarıyla, birini olağanüstü durum kurtarma, raporlama veya yedeklemeye ayırabilirsiniz.
Neden Çoğaltma?
- Verilerinizi güvende tutmak için
- Yüksek (24 * 7) veri kullanılabilirliği
- Felaket kurtarma
- Bakım için kesinti yok (yedeklemeler, yeniden dizin oluşturma, sıkıştırma gibi)
- Ölçeklemeyi okuyun (okumak için ekstra kopyalar)
- Replika kümesi, uygulamaya şeffaftır
MongoDB'de Replikasyon Nasıl Çalışır?
MongoDB, replikasyon setini kullanarak replikasyona ulaşır. Bir çoğaltma kümesi bir grupturmongodaynı veri kümesini barındıran örnekler. Bir eşlemede, bir düğüm tüm yazma işlemlerini alan birincil düğümdür. İkincil programlar gibi diğer tüm örnekler, aynı veri kümesine sahip olmaları için işlemleri birincilden uygular. Çoğaltma kümesinde yalnızca bir birincil düğüm olabilir.
Replica set, iki veya daha fazla düğümden oluşan bir gruptur (genellikle en az 3 düğüm gereklidir).
Bir çoğaltma kümesinde, bir düğüm birincil düğümdür ve kalan düğümler ikincildir.
Tüm veriler birincil düğümden ikincil düğüme kopyalanır.
Otomatik yük devretme veya bakım sırasında, birincil için seçim kurulur ve yeni bir birincil düğüm seçilir.
Başarısız olan düğümün kurtarılmasından sonra, tekrar kopya kümesine katılır ve ikincil bir düğüm olarak çalışır.
İstemci uygulamasının her zaman birincil düğümle etkileşime girdiği ve birincil düğümün daha sonra verileri ikincil düğümlere kopyaladığı MongoDB çoğaltmasının tipik bir diyagramı gösterilir.
Replica Set Özellikleri
- N düğüm kümesi
- Herhangi bir düğüm birincil olabilir
- Tüm yazma işlemleri birincil aşamaya gider
- Otomatik yük devretme
- Otomatik kurtarma
- Birincil konsensüs seçimi
Bir Kopya Seti Kurun
Bu eğiticide, bağımsız MongoDB örneğini bir kopya kümesine dönüştüreceğiz. Çoğaltma kümesine dönüştürmek için aşağıdaki adımlar verilmiştir -
Kapat zaten MongoDB sunucusu çalıştırıyor.
- replSet seçeneğini belirleyerek MongoDB sunucusunu başlatın. --ReplSet'in temel sözdizimi aşağıdadır -
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
Misal
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
27017 numaralı bağlantı noktasında rs0 adıyla bir mongod örneğini başlatacaktır.
Şimdi komut istemini başlatın ve bu mongod örneğine bağlanın.
Mongo istemcisinde şu komutu verin: rs.initiate() yeni bir çoğaltma kümesi başlatmak için.
Çoğaltma kümesi yapılandırmasını kontrol etmek için şu komutu verin: rs.conf(). Çoğaltma kümesinin durumunu kontrol etmek için şu komutu verin:rs.status().
Eşleme Kümesine Üye Ekleme
Çoğaltma kümesine üye eklemek için birden çok makinede mongod örneklerini başlatın. Şimdi bir mongo istemcisi başlatın ve bir komut verinrs.add().
Sözdizimi
Temel sözdizimi rs.add() komut aşağıdaki gibidir -
>rs.add(HOST_NAME:PORT)
Misal
Mongod örnek adınızın mongod1.net ve limanda çalışıyor 27017. Bu örneği kopya kümesine eklemek için şu komutu verin:rs.add() Mongo istemcisinde.
>rs.add("mongod1.net:27017")
>
Mongod örneğini, yalnızca birincil düğüme bağlı olduğunuzda çoğaltma kümesine ekleyebilirsiniz. Birincil ağa bağlı olup olmadığınızı kontrol etmek için şu komutu verin:db.isMaster() mongo istemcisinde.