ݺߣ

ݺߣShare a Scribd company logo
Touchconfig.conf içi boş bir dosya yarat
Sudo vim config.conf düzenle
CONFİG.CONF
 Dbpath = /data/db
 Bind_id = 127.0.0.1 -> istekleri hangi ip den
 Port : 27017 hangi port tan
 Config Dosyalarına şurdanhttp://docs.mongodb.org/manual/reference/configuration-options/
 Smallfiles =>true yarattığı dosyalar 64 mb den daha küçük olacaktır.

Replication
http://docs.mongodb.org/manual/replication/
1.

Her bir sunucu 2 sn bir bir birlerine pingatarlar , 10sn den fazla atılmazsa sunucu iptal durumdadır. Secondarylerprimary ölmüştür der. Ping
atarken memorydurumu , makinanın durumu kendi primaryolabilirmi . Primary giderse aralarında karar verirler , hepsinin bir oy hakkı vardır.
Sunucularda çekimse oy yoktur. Ölen primary hayatınasecondary olarak devam eder.

2.

Çoğunluk secondary giderse , ?

 3 tane datadir oluşturuldu. /data/db/rs0/rs0-1 ( 2 / 3 )
 Replica Set oluşturmak için ve başlatmak içinhttp://docs.mongodb.org/manual/administration/replica-sets/
Linux :./mongod --replSet rs0 ( ad ) --dbpath /data/db/rs0/rs0-1 --port 27000 ( 27001,2002)
Windows :mongod --replSet rs0 --dbpath C: datadbrs0rs0-1 --port 27000
Burda –configvererek replSet vermeye gerek yok
 Oluşturduğumuz replica setlerine bağlanmak için mongo - -port 27000
 Primary Oluşturmak İçin ?Replica set oluşturup eklemek için
o mongo --port 27000 ( bir tanesi bağlandık , primary yapmak iiçin)
o conf = {_id:"rs0", members: [{_id:0, host:"127.0.0.1:27000"}]}
o rs.initiate(conf)
o rs.add(“”127.0.0.1:27001”)
o rs.status()
o rs.stepDown()  hemen secondary ye döndü
o Secondarylerde okuma yazma yapamıyoruz. db.setSlaveOk(true) dersek SECONDARY de collectionslarıfelangörebiliriz. Önce hangi
veritabanına bağlanacağız
Daha sonra bu komutu kullanalımki hata vermesin.
o Her makinanın oy verme hakkını biz verebiliriz , fikir belirtmeme hakkı yok. Arbiterlarreplica setlerinde oy kullanmak için eklenir, çift sayılı
olması durumunda eklenir özellikle.http://docs.mongodb.org/manual/tutorial/add-replica-set-arbiter/ . Arbiter çok hafiftir , secondary veya
primary aynı makinada olabilir.
o Aşağıdaki işlemi Primary veya secondary de yapıyoruz.
 Conf = rs.conf()
 Conf.members[2].priority =.5
 Conf.members[0].votes = 2
 Rs.reconfig(conf) -- Secondary den confige izin vermiyor
 Conf.members[0].arbiterOnly = true => herhangi bir primary veya secondaryi ( Son versiyonda secondary veya primary ise
değştiremiyrouz )
 rs.addArb(“127.0.0.1:27017”) = >arbitary eklemek için
 Arbitary başlatmak için ???
 Conf.members*2+.priority = 0 ( primary olmasını istemediğimiz makinaya 0 veriyoruz )
 Configuration Dosyam
o dbpath = c:datadb
o bind_ip = 127.0.0.1
o port = 27017
o replSet = rs0/127.0.0.1:27000 , 127.0.0.1:27001 , 127.0.0.1:27002
 Config ile başlatmak için
o Mongod –port 23000 --config C:dataconfig.conf
OPLOG
>mongod -replSet rs0 --dbpath C:datadbrs0rs0-1 --port 27000 --smallfiles-–diaglog –-oplog 1
Yapılan işlemler log için.

SHARDİNG







MongoDB verdiğimiz şartlara göre read ve writeları makinalara gönderiyor.
Config sunucusu bulunur , Mongosconfig sunucusundan bilgileri çekiyor.
ShardKey en önemlisi .
Her uygulamaya bir Mongos.
3 tane config sunucusu bulunur.
Shardların içerisinde REPLİCA SET lerden oluşuyor. Ama Shardlar bir birinden bağımsızdır.







cd C:datadbshard sonra sh0 , sh1 oluşturuldu
mongod –-configsvr –-dbpath C:datadbshardconfigdb --port 27000
mongos –-configdb 127.0.0.1:27000 ( mongosa senin config sunucun bu diyorum )
sonra bağlanıyorum >mongo diyorum ( eğer port default 27017 olmasaydı veririz )
bağlanınamongos> denemesi lazım
artık shardlamayabaşlayalım :
o sh.addShard(“127.0.0.1:27010”) eğer replica set ekleyeceksek ;
 sh.addShard(“rs0/127.0.0.1:27001,127.0.0.1:27002,127.0.0.1:27003”)
 db.adminCommand({addShard:”rs0/127.0.0.1:27001,127.0.0.1:27002,127.0.0.1:27003”})
o tekrar bağlandım mongo diyerek
o sh.status()
o sh.ebableSharding(“deneme”)  hangi veritabanını yaptığıma bakıyorum.
o Sh.shardCollection(“deneme.User”,{“admin”:1,”username”:1})
 Önce index le diye hata verir.
 db.User.ensureIndex({"admin":1,"username":1})
 configserveremongo –port 27000 ile bağlanıyorum
useconfig diyerek bağlandım.
Db.settings.find()
db.settings.save({'_id':'chunksize','value':1})
db.setttings.update({'_id':'balancer'},{$set:{activeWindow:{start:"15:00",stop:"15.05"}}},true)

SECURİTY

 db.getSiblingDB("admin")
 db.addUser({user:"ertugrul",pwd:"ertugrul",roles:["userAdminAnyDatabase"]})
 opensslrand –base64 741
 config Dosyası>mongod –config [config_path]
o dbpath = c:datadb
o bind_ip = 127.0.0.1 , 10.0.0.1 , 192.168.3.10
o port = 27017
o auth = true # eğer localhosten girenin admin olmasını istemiyorsak
o enableLocalhostAuthBypass = false # default u true dur
o #keyFile = /mongo/bin/key
o #fork = true
o logpath = /mongo/bin/mongod.log
o logappend = true
o journal = true
o slowms = 50
o profile = 2
o verbose = true
o vvvvv = true
o dialog = 0 , 1 ,2 , 3 , 7

BACKUP
 Backup almak için
o mongodump --dbpath C:datadb --out C:databackup
o mongodump –host 127.0.0.1 –port 27017
o indexleribackup olarak almaz eğer sadece collectionbackup alacaksak. Ama bir database in alacaksak alır.
o mongorestore
 db.copyDatabase(“deneme”,”deneme2”,”127.0.0.1”)
 db.cloneDatabase(“127.0.0.1:27017”)

More Related Content

Mongo db notları

  • 1. Touchconfig.conf içi boş bir dosya yarat Sudo vim config.conf düzenle CONFİG.CONF  Dbpath = /data/db  Bind_id = 127.0.0.1 -> istekleri hangi ip den  Port : 27017 hangi port tan  Config Dosyalarına şurdanhttp://docs.mongodb.org/manual/reference/configuration-options/  Smallfiles =>true yarattığı dosyalar 64 mb den daha küçük olacaktır. Replication http://docs.mongodb.org/manual/replication/ 1. Her bir sunucu 2 sn bir bir birlerine pingatarlar , 10sn den fazla atılmazsa sunucu iptal durumdadır. Secondarylerprimary ölmüştür der. Ping atarken memorydurumu , makinanın durumu kendi primaryolabilirmi . Primary giderse aralarında karar verirler , hepsinin bir oy hakkı vardır. Sunucularda çekimse oy yoktur. Ölen primary hayatınasecondary olarak devam eder. 2. Çoğunluk secondary giderse , ?  3 tane datadir oluşturuldu. /data/db/rs0/rs0-1 ( 2 / 3 )  Replica Set oluşturmak için ve başlatmak içinhttp://docs.mongodb.org/manual/administration/replica-sets/ Linux :./mongod --replSet rs0 ( ad ) --dbpath /data/db/rs0/rs0-1 --port 27000 ( 27001,2002) Windows :mongod --replSet rs0 --dbpath C: datadbrs0rs0-1 --port 27000 Burda –configvererek replSet vermeye gerek yok
  • 2.  Oluşturduğumuz replica setlerine bağlanmak için mongo - -port 27000  Primary Oluşturmak İçin ?Replica set oluşturup eklemek için o mongo --port 27000 ( bir tanesi bağlandık , primary yapmak iiçin) o conf = {_id:"rs0", members: [{_id:0, host:"127.0.0.1:27000"}]} o rs.initiate(conf) o rs.add(“”127.0.0.1:27001”) o rs.status() o rs.stepDown()  hemen secondary ye döndü o Secondarylerde okuma yazma yapamıyoruz. db.setSlaveOk(true) dersek SECONDARY de collectionslarıfelangörebiliriz. Önce hangi veritabanına bağlanacağız Daha sonra bu komutu kullanalımki hata vermesin. o Her makinanın oy verme hakkını biz verebiliriz , fikir belirtmeme hakkı yok. Arbiterlarreplica setlerinde oy kullanmak için eklenir, çift sayılı olması durumunda eklenir özellikle.http://docs.mongodb.org/manual/tutorial/add-replica-set-arbiter/ . Arbiter çok hafiftir , secondary veya primary aynı makinada olabilir. o Aşağıdaki işlemi Primary veya secondary de yapıyoruz.  Conf = rs.conf()  Conf.members[2].priority =.5  Conf.members[0].votes = 2  Rs.reconfig(conf) -- Secondary den confige izin vermiyor  Conf.members[0].arbiterOnly = true => herhangi bir primary veya secondaryi ( Son versiyonda secondary veya primary ise değştiremiyrouz )  rs.addArb(“127.0.0.1:27017”) = >arbitary eklemek için  Arbitary başlatmak için ???  Conf.members*2+.priority = 0 ( primary olmasını istemediğimiz makinaya 0 veriyoruz )  Configuration Dosyam o dbpath = c:datadb o bind_ip = 127.0.0.1 o port = 27017 o replSet = rs0/127.0.0.1:27000 , 127.0.0.1:27001 , 127.0.0.1:27002  Config ile başlatmak için o Mongod –port 23000 --config C:dataconfig.conf
  • 3. OPLOG >mongod -replSet rs0 --dbpath C:datadbrs0rs0-1 --port 27000 --smallfiles-–diaglog –-oplog 1 Yapılan işlemler log için. SHARDİNG       MongoDB verdiğimiz şartlara göre read ve writeları makinalara gönderiyor. Config sunucusu bulunur , Mongosconfig sunucusundan bilgileri çekiyor. ShardKey en önemlisi . Her uygulamaya bir Mongos. 3 tane config sunucusu bulunur. Shardların içerisinde REPLİCA SET lerden oluşuyor. Ama Shardlar bir birinden bağımsızdır.
  • 4.       cd C:datadbshard sonra sh0 , sh1 oluşturuldu mongod –-configsvr –-dbpath C:datadbshardconfigdb --port 27000 mongos –-configdb 127.0.0.1:27000 ( mongosa senin config sunucun bu diyorum ) sonra bağlanıyorum >mongo diyorum ( eğer port default 27017 olmasaydı veririz ) bağlanınamongos> denemesi lazım artık shardlamayabaşlayalım : o sh.addShard(“127.0.0.1:27010”) eğer replica set ekleyeceksek ;  sh.addShard(“rs0/127.0.0.1:27001,127.0.0.1:27002,127.0.0.1:27003”)  db.adminCommand({addShard:”rs0/127.0.0.1:27001,127.0.0.1:27002,127.0.0.1:27003”}) o tekrar bağlandım mongo diyerek o sh.status() o sh.ebableSharding(“deneme”)  hangi veritabanını yaptığıma bakıyorum. o Sh.shardCollection(“deneme.User”,{“admin”:1,”username”:1})  Önce index le diye hata verir.  db.User.ensureIndex({"admin":1,"username":1})  configserveremongo –port 27000 ile bağlanıyorum useconfig diyerek bağlandım. Db.settings.find() db.settings.save({'_id':'chunksize','value':1}) db.setttings.update({'_id':'balancer'},{$set:{activeWindow:{start:"15:00",stop:"15.05"}}},true) SECURİTY  db.getSiblingDB("admin")
  • 5.  db.addUser({user:"ertugrul",pwd:"ertugrul",roles:["userAdminAnyDatabase"]})  opensslrand –base64 741  config Dosyası>mongod –config [config_path] o dbpath = c:datadb o bind_ip = 127.0.0.1 , 10.0.0.1 , 192.168.3.10 o port = 27017 o auth = true # eğer localhosten girenin admin olmasını istemiyorsak o enableLocalhostAuthBypass = false # default u true dur o #keyFile = /mongo/bin/key o #fork = true o logpath = /mongo/bin/mongod.log o logappend = true o journal = true o slowms = 50 o profile = 2 o verbose = true o vvvvv = true o dialog = 0 , 1 ,2 , 3 , 7 BACKUP  Backup almak için o mongodump --dbpath C:datadb --out C:databackup o mongodump –host 127.0.0.1 –port 27017 o indexleribackup olarak almaz eğer sadece collectionbackup alacaksak. Ama bir database in alacaksak alır. o mongorestore  db.copyDatabase(“deneme”,”deneme2”,”127.0.0.1”)  db.cloneDatabase(“127.0.0.1:27017”)