中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb安裝配置

發布時間:2020-07-10 17:01:34 來源:網絡 閱讀:534 作者:swzxgege 欄目:MongoDB數據庫

1.Mongo DB ,是目前在IT行業非常流行的一種非關系型數據庫(NoSql),其靈活的數據

  存儲方式,備受當前IT從業人員的青睞。Mongo DB很好的實現了面向對象的思想(OO思想),

  在Mongo DB中 每一條記錄都是一個Document對象。Mongo DB最大的優勢在于所有的數據

  持久操作都無需開發人員手動編寫SQL語句,直接調用方法就可以輕松的實現CRUD操作。

  

2.monogodb安裝

1.wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz

2.tar xf mongodb-linux-x86_64-2.6.5.tgz

3.mv mongodb-linux-x86_64-2.6.5 /usr/local/mongodb

4.yum install openssl-devel openssl


3.mongodb啟動測試

1.mkdir -pv /data/mongodb /log/mongodb

2./usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend

3./usr/local/mongodb/bin/mongo

use admin

db.shutdownServer()

exit

4.mongodb配置文件

在2.6版本以后使用另一種配置文件的格式,不能兼容以前的模式

2.6 http://docs.mongodb.org/manual/reference/configuration-options/

2.4 http://docs.mongodb.org/v2.4/reference/configuration-options/

概略

processManagement

systemLog

storage

net

setParameter

security

operationProfiling

replication

sharding

auditLog


示例

cat >>/usr/local/mongodb/mongodb.conf  <<EOF

systemLog:

   destination: file

   path: "/log/mongodb/mongodb.log"

   logAppend: true

storage:

   dbPath: "/data/mongodb"

   #directoryPerDB: true

   mmapv1:

     smallFiles: true

   journal:

      enabled: true

processManagement:

   fork: true

   pidFilePath: "/usr/local/mongodb/mongodb.pid"

net:

   bindIp: 127.0.0.1,192.168.1.204

   port: 27017

   maxIncomingConnections: 1000000

   http:

      enabled: true

EOF

#啟動

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf  


#如果是第二次啟動并且使用了directoryPerDB: true,則必需要把dbPath也更換為其他目錄


#通過web查看狀態信息

http://192.168.1.221:28017/


#停止服務

/usr/local/mongodb/bin/mongo

use admin

db.shutdownServer()

exit


 

5.mongodb主從配置

#會把之前的數據也會同步到從機上

#方法1

/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend --master --oplogSize 64


/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend --slave --source 192.168.1.204:27017


#方法2

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf  --master --oplogSize 64


/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf  --slave --source 192.168.1.204:27017


#測試

#主庫添加記錄

/usr/local/mongodb/bin/mongo

use test

db.blog.save({title:"new article"})


#從庫查詢

/usr/local/mongodb/bin/mongo

db.blog.find()


#在從機上查看主機信息

use local

db.sources.find(); 


#主從切換

#如果在應用中主掛掉了

#這個情況就需要停止從庫, 把從庫以主庫的啟動命令起來


6.mongodb集群(replset)(只支持12個節點,多于12個節點使用master/slave)


#比主比好的地方是當主掛機上可以主動切換一個從為主

#在配置文件中加入如下內容

replication:

   oplogSizeMB: 128

   replSetName: test


http://docs.mongodb.org/manual/tutorial/deploy-replica-set-for-testing/


結點類型

Primary,Secondaries,Arbiters(只投票,不復制數據)

1.在每個節點啟動mongodb

/usr/local/mongodb/bin/mongod --dbpath /data/mongodb/ --replSet test --smallfiles --oplogSize 128

/usr/local/mongodb/bin/mongod --dbpath /data/mongodb/ --replSet test --smallfiles --oplogSize 128


#/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf

2.連接其中一個 mongodb shell

/usr/local/mongodb/bin/mongo

3.配置自己為其中一個節點

rsconf = {

           _id: "test",

           members: [

                      {

                       _id: 0,

                       host: "192.168.1.204:27017"

                      }

                    ]

         }

rs.initiate( rsconf )

4.在主節點上添加其他節點(在mognodb shell中提示符為PRIMARY>)

rs.add("192.168.1.204:27017")

rs.addArb("192.168.1.201:27017") 

rs.remove("192.168.1.204:27017")

5.之后會自動重新選舉一個新的主節點

6.使用配置文件的方法有配置文件中加入如下參數即可

replication:

replSetName: "repltest"

oplogSizeMB: 64

7.重新更新配置(更改主機,更改優先級)

cfg = rs.conf();

cfg.members[1].priority = 2;(0為不能為主)

cfg.members[0].hidden = true;(隱藏)

cfg.members[0].slaveDelay = 3600;(延時秒)

cfg.members[3].votes = 0;(無投票權)

rs.reconfig(cfg);

注意:

1.配置好后從是不能提供讀的需要使用命令開啟(在從上執行)

rs.slaveOk(); ===> db.getMongo().setSlaveOk()

2.主節點不允許直接優先級為0,應該先執行如下命令才能設置

rs.stepDown()

3.查看幫助

rs.help()

4.官方文檔

http://docs.mongodb.org/manual/

5.測試語句

db.foo.save({"id":123,"name":'liuyuanshijie'});

db.foo.find({"id":123})


6.只有主能寫,其他節點不可寫,但可以設置為讀


#配置時可以預先準備兩個做主,配置完成后一個成為primary,另一個成為secondary

#然后通過設置給較高的優先級,當主掛了后,從會立即接管成為主。

#這樣就可以使用keepalived在兩個機器上配置VIP來做成高可用。

#使用檢測腳本來檢測兩個服務器上的mongodb服務是否可用。

  


7.mongodb集群(Shard)

#主要功能是可以進行數據分片分散存儲到各個機器

1.配置config server

cat >>/usr/local/mongodb/configsvr.conf  <<EOF

systemLog:

   destination: file

   path: "/log/configsvr/configsvr.log"

   logAppend: true

storage:

   dbPath: "/data/configsvr"

   mmapv1:

     smallFiles: true

   journal:

      enabled: true

processManagement:

   fork: true

   pidFilePath: "/usr/local/mongodb/configsvr.pid"

net:

   bindIp: 127.0.0.1,192.168.1.221

   port: 20000

   maxIncomingConnections: 1000000

   http:

      enabled: true

sharding:

   clusterRole: configsvr

EOF


mkdir -pv /log/configsvr/ /data/configsvr

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/configsvr.conf


2.配置mongos路由


cat >>/usr/local/mongodb/mongos.conf  <<EOF

systemLog:

   destination: file

   path: "/log/mongos/mongos.log"

   logAppend: true

sharding:

   autoSplit: true

   configDB: 192.168.1.221:20000

   chunkSize: 32

processManagement:

   fork: true

   pidFilePath: "/usr/local/mongodb/mongos.pid"

net:

   bindIp: 127.0.0.1,192.168.1.221

   port: 30000

   maxIncomingConnections: 1000000

   http:

      enabled: true

EOF

 

  mkdir -pv /log/mongos/

  /usr/local/mongodb/bin/mongos -f /usr/local/mongodb/mongos.conf


  3.啟動各個實例,或者配置replset


sharding:

   clusterRole: shardsvr


  4.添加shard到集群

  #連接到mongos

  /usr/local/mongodb/bin/mongo --host 192.168.1.221 --port 30000


  #添加shard

  sh.addShard( "192.168.1.222:27017" )

  #如果是集群使用如下方法添加

  sh.addShard( "rs1/lab1:27017,lab2:27017,lab3:27017" )


  #如果不能添加先刪除test數據庫

  use test

  db.dropDatabase();


  #查看shard

  use admin

  db.runCommand( {listshards : 1 } )

  5.為數據庫開啟分片

  sh.enableSharding("test")

 

  use admin

  db.runCommand( { enableSharding: test } )


  6.測試

  use admin

  db.runCommand({enablesharding:"test2"});   //聲明test2庫允許分片

  db.runCommand( { shardcollection : "test2.books", key : { id : 1 } } );  //聲明books表要分片


  use test2     //切換到test2

db.stats();   //查看數據庫狀態

db.books.stats();  //查看表狀態


#添加數據

for (var i = 1; i <= 20000; i++) db.books.save({id:i,name:"12345678",sex:"male",age:27,value:"test"});


db.books.stats();  //查看表狀態


#一次插入2W條數據,5秒左右才能平衡,你可以db.book.stats(); 

#重復這個命令,你會發現數據流的變化。


8.mongo php擴展安裝

http://pecl.php.net/package/mongo


  

  


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江永县| 固阳县| 阳信县| 莲花县| 邵阳市| 枣庄市| 宜兰市| 遵义县| 洛浦县| 烟台市| 滕州市| 彰武县| 无棣县| 太康县| 鄂伦春自治旗| 石柱| 浦东新区| 桓仁| 依兰县| 乐业县| 峡江县| 广饶县| 阿坝县| 屏南县| 呼玛县| 横山县| 石阡县| 涪陵区| 治多县| 内丘县| 杨浦区| 黔西县| 扬州市| 桃园市| 平乡县| 长葛市| 中阳县| 惠州市| 曲麻莱县| 常德市| 普安县|