MongoDB (humongous'dan geliyor. Çok büyük, kocaman anlamında)
* ölçeklenebilir
* doküman tabanlı
* C++ ile 10gen tarafından geliştirilmiş
* NoSQL veritabanı uygulaması.
MongoDB, özellikle hız gerektiren ve geleneksel ilişkisel veritabanlarının (rdbms) hantal ve yavaş kaldığı yapılarda kullanılmaktadır.
SQL MongoDB
database database
table collection
row document ya da BSON(Binary Json) document
column field
Kurulum: (Centos 6.6 minimal için)
#vim /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
# yum install -y mongodb-org
# chkconfig --add mongodb
Konsol yönetimi için , birincil arka plan kabuğunu çalıştırmamız gerekiyor.
#mongod
veritabanlanlarını listeler:
> show dbs
admin (empty)
local 0.078GB
> use aborgtr
switched to db aborgtr
O anki veritabanını gösteriyor:
> db
aborgtr
veri basarken:
> for (var i = 1; i<=100; i++) {
... db.aborgtr.insert( {x : i} )
... }
döküman listelerken:
> db.aborgtr.find()
{ "_id" : ObjectId("54cdcc52a6b7739755db0c3c"), "x" : 1 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c3d"), "x" : 2 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c3e"), "x" : 3 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c3f"), "x" : 4 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c40"), "x" : 5 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c41"), "x" : 6 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c42"), "x" : 7 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c43"), "x" : 8 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c44"), "x" : 9 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c45"), "x" : 10 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c46"), "x" : 11 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c47"), "x" : 12 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c48"), "x" : 13 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c49"), "x" : 14 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4a"), "x" : 15 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4b"), "x" : 16 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4c"), "x" : 17 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4d"), "x" : 18 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4e"), "x" : 19 }
{ "_id" : ObjectId("54cdcc52a6b7739755db0c4f"), "x" : 20 }
Type "it" for more
Replika için yapılandırma ayarları:
vim /etc/mongod.conf
#where to log
logpath=/var/log/mongodb/mongod.log
logappend=true
bind_ip = 0.0.0.0
# fork and run in background
fork=true
port = 27017
dbpath= /var/lib/mongodb
# location of pidfile
pidfilepath = /var/run/mongodb/mongod.pid
# Turn on/off security. Off is currently the default
noauth=true
# Specifies a maximum size in megabytes for the replication operation log
oplogSize = 12288
# Configure ReplicaSet membership
replSet = replicaadi
# Enable rest API (disabled by default)
rest = true
(smallfiles=true)
# service mongod start
Primary olarak belirlenmiş mongo makinesine bağlanılır :
# mongo --host (mongo-primary-ip)
Replica makineler gruba eklenir :(rs: replica set)
> rs.add("mongo-rep02")
> rs.add("mongo-rep03")
Replica seti ayarları ve durumu görüntülenebilir :
> rs.status()
> rs.conf()
dump alırken :
# mongodump --username aybuke --password foo --db aborgtr --out /root --authenticationDatabase admin
#ls -l /root/aborgtr/
Master önceliklendirme
>cfg = rs.conf()
>cfg.members[0].priority = 0.5
>cfg.members[1].priority = 2
>cfg.members[2].priority = 2
>rs.reconfig(cfg)
rs.conf() ile duruma bakılabilir
2 yüksek öncelikli 0.5 düşük öncelikli manasında
Hidden Member(Gizli üye) Ayarlama
>cfg = rs.conf()
>cfg.members[0].priority = 0
>cfg.members[0].hidden = true
>rs.reconfig(cfg)
rs.conf() ile son duruma bakılabilir
Delayed (Gecikmeli) Üye Ayarlama
>cfg = rs.conf()
>cfg.members[0].priority = 0
>cfg.members[0].hidden = true
>cfg.members[0].slaveDelay = 3600
>rs.reconfig(cfg)
3600 sn geriden gelen bir replika set üyesi ayarlanır.
MongoOplog ile belirli bir süre önceki verileri alma
Primary oplog'undan belirli bir süreye kadar olan değişiklikler aşağıdaki şekilde aktarılır
mongodb0 primary makinesinin oplogundan son 1 saatteki değişiklikleri mongodb02 makinesine al :
# mongooplog --from mongodb0.ab.org.tr --host mongodb02.ab.org.tr --seconds 3600
yararlı komutlar:
abrep1:PRIMARY> rs.printReplicationInfo()
configured oplog size: 1024MB
log length start to end: 67144secs (18.65hrs)
oplog first event time: Sun Feb 01 2015 15:34:43 GMT+0200 (EET)
oplog last event time: Mon Feb 02 2015 10:13:47 GMT+0200 (EET)
now: Mon Feb 02 2015 10:44:59 GMT+0200 (EET)
---
abrep1:PRIMARY> rs.printSlaveReplicationInfo()
source: centos4.ab.org.tr:27017
syncedTo: Mon Feb 02 2015 10:13:47 GMT+0200 (EET)
0 secs (0 hrs) behind the primary
source: centos5.ab.org.tr:27017
syncedTo: Mon Feb 02 2015 10:13:47 GMT+0200 (EET)
0 secs (0 hrs) behind the primary
Hiç yorum yok:
Yorum Gönder