1.Mongo DB ,是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NOSQL),其靈活的數(shù)據(jù)
在金城江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,金城江網(wǎng)站建設(shè)費(fèi)用合理。
存儲(chǔ)方式,備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),
在Mongo DB中 每一條記錄都是一個(gè)Document對象。Mongo DB最大的優(yōu)勢在于所有的數(shù)據(jù)
持久操作都無需開發(fā)人員手動(dòng)編寫SQL語句,直接調(diào)用方法就可以輕松的實(shí)現(xiàn)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啟動(dòng)測試
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
#啟動(dòng)
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
#如果是第二次啟動(dòng)并且使用了directoryPerDB: true,則必需要把dbPath也更換為其他目錄
#通過web查看狀態(tài)信息
http://192.168.1.221:28017/
#停止服務(wù)
/usr/local/mongodb/bin/mongo
use admin
db.shutdownServer()
exit
5.mongodb主從配置
#會(huì)把之前的數(shù)據(jù)也會(huì)同步到從機(jī)上
#方法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()
#在從機(jī)上查看主機(jī)信息
use local
db.sources.find();
#主從切換
#如果在應(yīng)用中主掛掉了
#這個(gè)情況就需要停止從庫, 把從庫以主庫的啟動(dòng)命令起來
6.mongodb集群(replset)(只支持12個(gè)節(jié)點(diǎn),多于12個(gè)節(jié)點(diǎn)使用master/slave)
#比主比好的地方是當(dāng)主掛機(jī)上可以主動(dòng)切換一個(gè)從為主
#在配置文件中加入如下內(nèi)容
replication:
oplogSizeMB: 128
replSetName: test
http://docs.mongodb.org/manual/tutorial/deploy-replica-set-for-testing/
結(jié)點(diǎn)類型
Primary,Secondaries,Arbiters(只投票,不復(fù)制數(shù)據(jù))
1.在每個(gè)節(jié)點(diǎn)啟動(dòng)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.連接其中一個(gè) mongodb shell
/usr/local/mongodb/bin/mongo
3.配置自己為其中一個(gè)節(jié)點(diǎn)
rsconf = {
_id: "test",
members: [
{
_id: 0,
host: "192.168.1.204:27017"
}
]
}
rs.initiate( rsconf )
4.在主節(jié)點(diǎn)上添加其他節(jié)點(diǎn)(在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.之后會(huì)自動(dòng)重新選舉一個(gè)新的主節(jié)點(diǎn)
6.使用配置文件的方法有配置文件中加入如下參數(shù)即可
replication:
replSetName: "repltest"
oplogSizeMB: 64
7.重新更新配置(更改主機(jī),更改優(yōu)先級)
cfg = rs.conf();
cfg.members[1].priority = 2;(0為不能為主)
cfg.members[0].hidden = true;(隱藏)
cfg.members[0].slaveDelay = 3600;(延時(shí)秒)
cfg.members[3].votes = 0;(無投票權(quán))
rs.reconfig(cfg);
注意:
1.配置好后從是不能提供讀的需要使用命令開啟(在從上執(zhí)行)
rs.slaveOk(); ===> db.getMongo().setSlaveOk()
2.主節(jié)點(diǎn)不允許直接優(yōu)先級為0,應(yīng)該先執(zhí)行如下命令才能設(shè)置
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.只有主能寫,其他節(jié)點(diǎn)不可寫,但可以設(shè)置為讀
#配置時(shí)可以預(yù)先準(zhǔn)備兩個(gè)做主,配置完成后一個(gè)成為primary,另一個(gè)成為secondary
#然后通過設(shè)置給較高的優(yōu)先級,當(dāng)主掛了后,從會(huì)立即接管成為主。
#這樣就可以使用keepalived在兩個(gè)機(jī)器上配置VIP來做成高可用。
#使用檢測腳本來檢測兩個(gè)服務(wù)器上的mongodb服務(wù)是否可用。
7.mongodb集群(Shard)
#主要功能是可以進(jìn)行數(shù)據(jù)分片分散存儲(chǔ)到各個(gè)機(jī)器
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.啟動(dòng)各個(gè)實(shí)例,或者配置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數(shù)據(jù)庫
use test
db.dropDatabase();
#查看shard
use admin
db.runCommand( {listshards : 1 } )
5.為數(shù)據(jù)庫開啟分片
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(); //查看數(shù)據(jù)庫狀態(tài)
db.books.stats(); //查看表狀態(tài)
#添加數(shù)據(jù)
for (var i = 1; i <= 20000; i++) db.books.save({id:i,name:"12345678",sex:"male",age:27,value:"test"});
db.books.stats(); //查看表狀態(tài)
#一次插入2W條數(shù)據(jù),5秒左右才能平衡,你可以db.book.stats();
#重復(fù)這個(gè)命令,你會(huì)發(fā)現(xiàn)數(shù)據(jù)流的變化。
8.mongo php擴(kuò)展安裝
http://pecl.php.net/package/mongo
新聞名稱:mongodb安裝配置
URL標(biāo)題:http://chinadenli.net/article0/poosoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、搜索引擎優(yōu)化、App開發(fā)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)