MongoDb, document-based bir NoSql veritabanıdır. Eğer büyük bir datanız var ve relation ve transaction işlemleri ağırlıklı değil ise MongoDb sizin için gerekli olan Db'dir. Hızlı, yüksek scalability (server kapasitesi arttırma olayları) ve kolay kullanımı ile öne çıkmakta.
Cluster Dağılımı
- 1 Master Sunucu
- 2 Shard Sunucu
- 1 Config Sunucu
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
Master, config ve shard sunucular için aşağıdaki yapılandırmaları yapıp sunucularımızı başlatıyoruz.
Master Server
Mongos, router gibi çalışarak gelen isteklerin nereye yönlendirileceğini belirleyen ve client’lara veri dönmeden önce farklı shardlardan aldığı verileri merge eden bir process’dir. Mongos herhangi bir data tutmadığı için persist state’ı bulunmamakta, bu yüzden config server’a ihtiyaç duymaktadır. Paketleri kurduktan sonra mongo komutu ile mogno shell'e ulaşabiliyor olmanız gerekli. Config ve Shard'ları kurduktan sonra mongo servisini başlatacağız. Bu arada mongo kurulumdan sonra otomatik başlar o yüzden mongo servisini kill etmeniz gerekecek. Config ip vererek (aşağıda) sonradan manuel başlatmamız gerekecek.
Config Server
Config server'lar tüm cluster'ın metadatasını tutan sunucudur. Aşağıdaki adımlarla metadata'nın tutulacağı dizinleri oluşturup, haklarını veriyoruz. Ve daha sonra master sunucusunda config server'ın adresini verip master sunucumuzda MongoDb'yi başlatıyoruz.- sudo mkdir -p /data/configdb
- sudo chown username
/data/configdb - Config server başlatma mongod --configsvr
- Master'da
- mongos --configdb configIp:port, config2Ip:port,...
Shard Server
Shard sunucular datayı tutan paylaşımı yapan asıl sunuculardır. Master tarafından yönetilirler. Aşağıdaki adımlarla datanın tutulacağı dizinleri oluşturup gerekli hakları verip master sunucumuza bildiriyoruz.
- sudo mkdir -p /data/db
- sudo chown username
/data/configdb - Config server başlatma mongod --shardsvr
- Master Sunucu Üzerinde
- mongo
- Shard sunucu cluster'a dahil etme: sh.addShard("192.168.0.
231:27018") - Görüntüleme: sh.status()
- Yeni bir db yaratma ve cluster'da paylaştırmak için
- show dbs
- use dbName
- db.dbName.save({testKey:"
testValue"}) - show dbs
- use admin
- db.runCommand({
enablesharding: "dbName "}) - sh.shardCollection("dbName.collectionName
", {"name":1})
Sonuç olarak master sunucumuzda sh.status() komutu ile aşağıdaki çıktıyı görüyorsak mongoDb kullanıma hazır demektir. Komut satırından kullanım zorluğu çekenler için Robomongo (DesktopTabanlı) veya MongoManagementStudio (WebTabanlı) yazılımlarını öneririm.
No comments:
Post a Comment