標籤:blog http io ar os sp for strong 檔案
原文引用:http://blog.chinaunix.net/uid-24250828-id-3770298.html
官方網站:
http://www.mongodb.org/
MongoDB 安裝,主從配置
一 MongoDB 安裝
點擊(此處)摺疊或開啟
yum install wget #選y 線上下載
- [[email protected]_server src]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz
- [[email protected]_server src]# tar xzvf mongodb-linux-x86_64-2.0.0.tgz
- [[email protected]_server src]# mv mongodb-linux-x86_64-2.0.0 /usr/local/mongodb
- [[email protected]_server src]# mkdir /usr/local/mongodb/data
- [[email protected]_server src]# touch /usr/local/mongodb/logs
- [[email protected]_server bin]# /usr/local/mongodb/bin/mongod –dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend –port=27017 –fork
- [[email protected]_server bin]# ./mongo
- MongoDB shell version: 2.0.0
- connecting to: test
- > use test;
- switched to db test
- > exit
- bye
- [[email protected]_server bin]# netstat -anlpt | grep mongo
- tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 11504/mongod
- tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN 11504/mongod
注意:
如果報錯
-bash: /usr/local/mongodb/bin/mongod: cannot execute binary file
說明你的伺服器和mongodb 的版本不對應, 如果伺服器是64位,下載x86_64的mongodb ,如果伺服器是32位的, 下載i686的mongodb/
二 MongoDB 主從配置
1)實驗環境
主:192.168.0.14
從:192.168.0.64
2)時間同步
兩台機器做時間同步
[[email protected]_server src]# ntpdate time.windows.com
3)啟動服務
master:192.168.0.14
啟動命令
/usr/local/mongodb/bin/mongod –master –dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend –port=27017 –fork
slave:192.168.0.64
啟動命令
/usr/local/mongodb/bin/mongod –slave –source 192.168.0.14:27017 –dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend –port=27017 –fork
4)測試主從
在主上插入資料
測試1:
點擊(此處)摺疊或開啟
- 測試1:
- 1 在主庫上插入資料
- [[email protected] bin]# ./mongo
- MongoDB shell version: 2.0.0
- connecting to: test
- > db.foo.save({“id”:123456,”name”:’lizonggang’})
- > db.foo.find({“id”:123456})
- { ”_id” : ObjectId(“51c3f4b21399022afd992f39″), ”id” : 123456, ”name” : ”lizonggang” }
- >
- 2 在從上查看資料(已有在主上插入的資料,說明主從成功)
- [[email protected]_server bin]# ./mongo
- MongoDB shell version: 2.0.0
- connecting to: test
- > db.foo.find({“id”:123456})
- { ”_id” : ObjectId(“51c3f4b21399022afd992f39″), ”id” : 123456, ”name” : ”lizonggang” }
- >
測試2:
點擊(此處)摺疊或開啟
- 1 在主庫上插入資料
- > use elaindb
- switched to db elaindb
- > db.test.save({title:”This is a test!”})
- > db.test.find();
- { ”_id” : ObjectId(“51c3f8f11a90c8da157c7f64″), ”title” : ”This is a test!” }
- >
- 2 在從庫上驗證資料
- [[email protected]_server bin]# ./mongo
- MongoDB shell version: 2.0.0
- connecting to: test
- > use elaindb
- switched to db elaindb
- > db.test.find();
- { ”_id” : ObjectId(“51c3f8f11a90c8da157c7f64″), ”title” : ”This is a test!” }
- > db.printReplicationInfo();
- this is a slave, printing slave replication info.
- source: 192.168.0.14:27017
- syncedTo: Fri Jun 21 2013 14:59:10 GMT+0800 (CST)
- = 9 secs ago (0hrs)
- >
- > db.printSlaveReplicationInfo();
- source: 192.168.0.14:27017
- syncedTo: Fri Jun 21 2013 14:59:30 GMT+0800 (CST)
- = 16 secs ago (0hrs)
- >
測試3:
點擊(此處)摺疊或開啟
- 在這個狀態下,slave 下是不可以插入資料的
- > db.test.save({title:”This is slave test!”})
- not master
5) 一些查詢狀態的語句
1)查詢庫
點擊(此處)摺疊或開啟
- > show dbs;
- elaindb 0.0625GB
- local 0.125GB
- test 0.0625GB
2)在從庫上查詢主庫的地址
點擊(此處)摺疊或開啟
- > use local;
- switched to db local
- > db.sources.find()
- { ”_id” : ObjectId(“51c3f5dd568d10529950b10d”), ”host” : ”192.168.0.14:27017″, ”source” : ”main”, ”syncedTo” : { ”t” : 1371797300000, ”i” : 1 } }
- >
3)查看主從複製狀態
點擊(此處)摺疊或開啟
- > db.printReplicationInfo();
- configured oplog size: 47.6837158203125MB
- log length start to end: 1375secs (0.38hrs)
- oplog first event time: Fri Jun 21 2013 14:30:35 GMT+0800 (CST)
- oplog last event time: Fri Jun 21 2013 14:53:30 GMT+0800 (CST)
- now: Fri Jun 21 2013 14:53:32 GMT+0800 (CST)
- >
4)查看Collection狀態
點擊(此處)摺疊或開啟
- > db.printCollectionStats();
- foo
- {
- ”ns” : ”test.foo”,
- ”count” : 1,
- ”size” : 56,
- ”avgObjSize” : 56,
- ”storageSize” : 4096,
- ”numExtents” : 1,
- ”nindexes” : 1,
- ”lastExtentSize” : 4096,
- ”paddingFactor” : 1,
- ”flags” : 1,
- ”totalIndexSize” : 8176,
- ”indexSizes” : {
- ”_id_” : 8176
- },
- ”ok” : 1
- }
- —
- system.indexes
- {
- ”ns” : ”test.system.indexes”,
- ”count” : 1,
- ”size” : 64,
- ”avgObjSize” : 64,
- ”storageSize” : 4096,
- ”numExtents” : 1,
- ”nindexes” : 0,
- ”lastExtentSize” : 4096,
- ”paddingFactor” : 1,
- ”flags” : 0,
- ”totalIndexSize” : 0,
- ”indexSizes” : {
- },
- ”ok” : 1
- }
- —
- >
6)應急
如果在應用中主掛掉了怎麼辦?
這個情況就需要,停止從庫, 把從庫以主庫的啟動命令起來就可以了。
1)停掉從庫
kill -9 進程號
2)刪除locat下檔案
點擊(此處)摺疊或開啟
- rm mongodb/db/locat.* -rf
3)啟動從庫
點擊(此處)摺疊或開啟
- /usr/local/mongodb/bin/mongod –master –dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend –port=27017 –fork
6) Mongdb Web 查看介面
7) MongoDB 增,刪,改,查
點擊(此處)摺疊或開啟
- [[email protected] bin]# ./mongo
- MongoDB shell version: 2.0.0
- connecting to: test
- > db.test.insert({ ”Name” : ”ymind”, ”age” : 8 }); #在test資料庫裡插入資料
- >
- > db.test.find({ ”Name” : ”ymind” } ); #查詢資料
- { ”_id” : ObjectId(“51c4187090db4e4751a3cd05″), ”Name” : ”ymind”, ”age” : 8 }
- > db.test.find({ ”age” : 8} ); #查詢資料
- { ”_id” : ObjectId(“51c4187090db4e4751a3cd05″), ”Name” : ”ymind”, ”age” : 8 }
- >
- >
- > db.test.update({“Name” : ”ymind”}, { ”$set” : { ”age” : ”5″ } } ); #修改資料
- > db.test.find({ ”Name” : ”ymind” } );
- { ”Name” : ”ymind”, ”_id” : ObjectId(“51c4187090db4e4751a3cd05″), ”age” : ”5″ }
- >
- > db.test.remove({ ”Name” : ”ymind” } ); #刪除資料
- > db.test.find({ ”Name” : ”ymind” } );
centos 安裝mongodb