MongoDB Replica Set Nedir? Avantajları Nelerdir? MongoDB Replica Set Kurulumu
  1. Anasayfa
  2. Open Source

MongoDB Replica Set Nedir? Avantajları Nelerdir? MongoDB Replica Set Kurulumu

0

MongoDB Replica Set Nedir? Avantajları Nelerdir?

Replica set, master-slave replikasyonu ve aralarında yapılandırılmış bir otomatik yük devretme ile çoklu düğümlerden oluşan veri tabanı kümesini tanımlamak için kullanılan bir terimdir.

MongoDB Replica Set veri tabanının yedekli olmasını sağlar ve farklı veri tabanı sunucularında birden çok veri kopyasıyla veri kullanılabilirliğini artırır. Çoğaltma ayrıca donanım arızalarından ve hizmet kesintilerinden kurtulmanıza da olanak tanır.

Replica Set için iki veya daha fazla üye olması gerekmektedir.

Çoğaltma kümesinde yalnızca bir birincil düğüm olabilir.

Tüm veriler birincilden ikincil düğüme kopyalanır.

Başarısız olan düğümün kurtarılmasından sonra, tekrar replika kümesine katılır ve ikincil bir düğüm olarak çalışır.

Verilerin ek kopyalarıyla, birini felaket kurtarma, raporlama veya yedeklemeye ayırabilirsiniz.

Resim-1

MongoDB Replica Set Kurulumu

Replica Set kurulumuna geçmeden önce MongoDB sisteminizde kurulu olması gerekmektedir.

Eğer sisteminizde MongoDB kurulu değilse bir önceki yazımıza göz atabilirsiniz. MongoDB Nedir? Avantajları ve Dezavantajları, CentOS 7 Üzerinde MongoDB Kurulumu, Default Port Değiştirme

MongoDB kurulu olan sistemde config dosyası default oluşmaktadır. Linux tabanlı sistemlerde “/etc/” dizini altında bulunmaktadır.

cd /etc/ komutu ile etc dizinine gidiyoruz.

etc dizininde bulunan “mongod.conf” dosyasını “cp” komutu ile kopyalayarak “/etc/mongod2.conf” hedef dizini ve dosya adını (mongod2.conf) olarak veriyoruz.

Aynı şekilde “mongod3.conf” dosyasını oluşturuyoruz.

cd /etc/
cp mongod.conf /etc/mongod2.conf
cp mongod.conf /etc/mongod2.conf

Resim-2

Replica Set için hali hazırda gelen config dosyası dışında 2 adet config dosyası oluşturmuş olduk. “vi” veya başka editör ile yapılandırma ayarlarımızı yapabiliriz.

vi /etc/mongod.conf

Config dosyasında dikkat edilmesi gerekenler;

  1. Log dosyasının yazılacağı dizin:

    path: /var/log/mongodb/mongod.log

  2. Veri tabanı dosya dizini:

    dbPath: /var/lib/mongo

  3. Port Ayarı: Replica Set kurulumu yapacağımız için 3 farklı node olacaktır ve portlar birbirinden farklı olması gerekir.

    port: 27017

  4. IP Adres: ilk kurulumda “bindIp: 127.0.0.1” şeklinde gelmektedir. Lokal dışından erişim sağlanacağı için sunucunun ip adresini vermemiz gerekiyor.

    bindIp: 192.168.1.14

  5. En önemlisi olan “replication” ayarı:

    replication:

    replSetName: replica-adı

Örnek yapılandırma ayarları aşağıdadır;

# mongod.conf
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
  bindIp: 192.168.1.14 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
#security:
#operationProfiling:
replication:
  replSetName: testreplica
#sharding:
## Enterprise-Only Options
#auditLog:

Aynı yapılandırma işlemlerini diğer dosyalar üzerinde yapmamız gerekmektedir.

Yapılandırmaya geçmeden önce dikkat edilmesi gereken noktalardan bahsetmek istiyorum.

Log dosyası, Port ve Veri tabanı dizini farklı olmalıdır. Aynı olursa ilk yapılandırdığımız dosyasının üzerine yazmaya çalışacağı için hata verecektir.

DbPath dizininde mongo2 klasörü olmadığı için oluşturup yetki vermemiz gerekiyor;

mkdir /var/lib/mongo2
sudo chown -R mongod:mongod /var/lib/mongo2/

Mongo2 klasörünü oluşturduktan sonra yapılandırma ayarlarına geçebiliriz.

vi /etc/mongod2.conf

path: /var/log/mongodb/mongod2.log

dbPath: /var/lib/mongo2

port: 27018

replication:

replSetName: testreplica

Mongo3 klasörünü oluşturuyoruz ve yapılandırma ayarlarına geçiyoruz.

vi /etc/mongod3.conf

path: /var/log/mongodb/mongod3.log

dbPath: /var/lib/mongo3

port: 27019

replication:

replSetName: testreplica

3 dosyayı da düzenledikten sonra MongoDB uygulamasını çalıştırabiliriz. Aşağıdaki komutlar ile her bir veri tabanını çalıştırıyoruz.

mongod -config /etc/mongod.conf
mongod -config /etc/mongod2.conf
mongod -config /etc/mongod3.conf

Resim-3

Veri tabanlarının ne durumda olduğunu görmek için “ps aux | grep mongod” komutunu çalıştırabiliriz.

Ek olarak kullanılan portları görmek için “netstat –tulp” komutunu kullanabiliriz.

Resim-4

Veri tabanları çalışır durumda olduğuna göre Replica Set yapılandırmasına geçebiliriz.

“mongo -host 192.168.1.14 -port 27017” komutu ile Primary (Birincil) veri tabanına bağlanıyoruz.

Replica Set ortamını aktif hale getirmek için bağlanmış olduğumuz MongoDB konsolunda aşağıdaki komutu çalıştırıyoruz.

rs.initiate()

Bu komutu çalıştırdıktan sonra yapılandırma dosyasında verdiğimiz “testreplica” replica adı gelecektir.

Resim-5

Diğer veri tabanlarına bağlanmadan Primary (Birincil) üzerinden yapılandırmaya devam ediyoruz.

Aşağıdaki komut ile diğer veri tabanlarını ekliyoruz.

rs.add("192.168.1.14:27018")
rs.add("192.168.1.14:27019")

Not: Eğer hostname şeklinde eklemek isterseniz IP adresi yerine host adını yazabilirsiniz.

Replica Set için diğer üyeleri eklerken hata yok ise (“ok” : 1, ) çıktısını vermektedir.

Secondary olan MongoDB ortamına bağlanarak ReplicaSet durumunu kontrol ediyoruz.

mongo -host 192.168.1.14 -port 27018

Bağlantı sağladıktan sonra “testreplica:SECONDARY> ” olarak Shell ekranı bizi karşılayacaktır.

rs.status() komutu ile oluşturduğumuz Replica Set için durumu gözlemliyoruz.

Resim-6

Replica Set ortamı 1 Primary ve 2 Secondary olarak çalışır durumdadır.

Priority öncelik verme ayarı çok önemli bir konudur. Primary veri tabanı arızalandı veya erişim olmadığı gibi durumlarda 2 Secondary veri tabanından 1 tanesine Primary olması için üyelere öncelik verebiliriz.

cfg=rs.conf()
cfg.members[0].priority = 2
cfg.members[1].priority = 1
cfg.members[2].priority = 1
rs.reconfig(cfg)

Örnek olarak üye1 için 0.5, üye2 için 1, üye3 için 0.5 değerini verirsek üye2 Primary olacaktır.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

http://www.mshowto.org/

TAGs: MongoDB Replica Set Nedir, MongoDB Replica Set Avantajları, MongoDB Replica Set Kurulumu, Replica Set Priority Ayarları, Replica Set 3 Member, Replica Set Primary

Bu İçeriğe Tepkin Ne Oldu?
  • 11
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 1
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 1
    k_zd_m_
    Kızdım!

İstanbul doğumluyum. İstanbul Üniversitesi Elektronik bölümü mezunuyum. Stajlarımı AvivaSA’da ve QNB Finansbank da uzun dönem olarak yaptım ve Staj süresi boyunca IT departmanlarında görev aldım. Hewlett Packard Enrterprise (HP) firmasında 7 ay Sistem Destek Uzman Yardımcısı pozisyonunda çalıştım. Şuanda yazılım firması olan Cybersoft’da 4 senedir Sistem Uzmanı olarak çalışmaktayım. Windows Server 2008, Windows Server 2012, Active Directory, DHCP, DNS, WSUS, IIS, Hyper-V, VirtualBox, CentOS, Redhat, Atlassian (Jira, Bamboo, Stash, Confluence), Microsoft Azure, Amazon Web Services, Digital Ocean gibi platformlarda uzmanlığım bulunmaktadır. Boş vakitlerimde grafik tasarım, video editörlük, reklam, sosyal medya grafik tasarımı ve dijital pazarlama alanlarında projeler yapmaktayım.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir