最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux系统中MongoDB安装及主从配置
时间:2014-03-09 编辑:简简单单 来源:一聚教程网
MongoDB 安?,主从配置
一 MongoDB 安装
代码如下 | 复制代码 |
[root@zabbix_server src]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz |
注意:
如果报错
代码如下 | 复制代码 |
-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)时间同步
两台机器做时间同步
代码如下 | 复制代码 |
[root@zabbix_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 在主库上插入数据
代码如下 | 复制代码 |
[root@cacti 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 在从上查看数据(已有在主上插入的数据,说明主从成功)
代码如下 | 复制代码 |
[root@zabbix_server bin]# ./mongo MongoDB shell version: 2.0.0 connecting to: test > db.foo.find({"id":123456}) { "_id" : ObjectId("51c3f4b21399022afd992f39"), "id" : 123456, "name" : "lizonggang" } > |
1 在主库上插入数据
代码如下 | 复制代码 |
|
2 在从库上验证数据
代码如下 | 复制代码 |
[root@zabbix_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)在从库上查询主库的地址
5
代码如下 | 复制代码 |
> 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 |
7) MongoDB 增,删,改,查
代码如下 | 复制代码 |
[root@cacti 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" } ); > > |
相关文章
- linux中Redis 安装 及 主从配置教程 12-03
- win11内核隔离和内存完整性介绍 10-31
- win10全屏缩放设置教程 10-31
- win10系统备份出错解决教程 10-31
- win10打开软件每次都要询问解决教程 10-31
- win10更新驱动后设备出现异常解决教程 10-31