Linux系统中MongoDB安装及主从配置

MongoDB 安?,主从配置

一 MongoDB 安装

 代码如下 复制代码

[root@zabbix_server src]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz
[root@zabbix_server src]# tar xzvf mongodb-linux-x86_64-2.0.0.tgz
[root@zabbix_server src]# mv mongodb-linux-x86_64-2.0.0 /usr/local/mongodb
 
[root@zabbix_server src]# mkdir /usr/local/mongodb/data
[root@zabbix_server src]# touch /usr/local/mongodb/logs
 
[root@zabbix_server bin]# /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork
 
[root@zabbix_server bin]# ./mongo
MongoDB shell version: 2.0.0
connecting to: test
> use test;
switched to db test
> exit
bye
 
[root@zabbix_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)时间同步

两台机器做时间同步
 

 代码如下 复制代码
[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 在主库上插入数据

 代码如下 复制代码

 
> 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 在从库上验证数据
 

 代码如下 复制代码
[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" } );
>
>
时间: 2024-09-01 09:55:28

Linux系统中MongoDB安装及主从配置的相关文章

在linux系统中我安装了helix server服务器,但是看不了helix里的视频

问题描述 在linux系统中我安装了helix server服务器,但是看不了helix里的视频 我在linux系统中安装了helix server服务器,现在能通过登录到后台管理了. 但是我想看看helix server服务器中的视频还是看不了. 我是从网上找的资料教程安装的,资料让输入一个地址就能访问到视频了, 但是我输入地址后,它让我选择用什么应用打开. 截图如下: 是还需要配置一个客户端还是需要怎么样? 最好给一个详细一点的答案或者是安装包. 哪位大神知道,指教一下. 谢谢了. 解决方案

linux系统中VNC安装配置方法详解

1.确认VNC是否安装 默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上. 确认是否已经安装VNC服务及查看安装的VNC版本 [root@testdb ~]# rpm -q vnc-server vnc-server-4.1.2-9.el5 [root@testdb ~]# 若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下 rpm -i

linux中Redis 安装 及 主从配置教程

Redis是一个开源.支持网络.基于内存.键值对存储数据库.与其他非关系型数据库主要不同在于,Redis中值的类型不仅限于字符串(Strings),还支持如下抽象数据类型:(列表)Lists.(集合)Sets.(有序集合)Sorted sets .(哈希)Hashes.Redis 通过 RDB.AOF 两种方式来实现数据的持久化. 安装Redis Redis 源码包保存路径 /usr/local/src Redis 软件安装路径 /usr/local/redis 编译 Redis 前先安装 tc

Linux系统中KVM安装与使用方法

一.如何安装KVM 这里我是在Windows系统中使用VMware Workstaion安装了一台Linux的虚拟机来进行KVM的安装操作的. 首先,我们需要了解我们安装的Linux系统的CPU是否支持KVM虚拟化技术,所以我们需要如下命令: Egrep 'vmx|svm' /proc/cpuinfo 若输入命令没有flags提示,则表示是没有支持虚拟化技术的.实际操作系统需要进入BIOS中开启Intel VT-x/EPT或AMD-V/RVI(V),虚拟机的话只需要在 虚拟机设置-虚拟化引擎 处

Shell脚本实现在Linux系统中自动安装JDK_linux shell

A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ./install-jdk.sh B的IP  or: 复制代码 代码如下: $ ./install-jdk.sh "B的IP" "JDK的URI" 就可以在机器B上安装JDK.jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到

Linux系统中PHP安装配置MongoDB数据库连接扩展步骤

说明: 操作系统:CentOS 5.X 64位 MongoDB数据库服务器: IP地址:192.168.21.130 Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作: 一.安装PHP的MongoDB数据库扩展(在Web服务器192.168.21.127上操作) 下载地址:http://pecl.php.net/get/mongo-1.5.1.t

linux中mongodb安装和启动配置介绍

1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mongodb-linux-i686-1.8.2.tgz 2. 安装准备 将mongodb移动到/usr/local/server/mongdb文件夹 mv mongodb-linux-i686-1.4.4 /usr/local/mongodb 创建数据库文件夹与日志文件 mkdir /usr/local/mo

centos 6.4系统中mongodb安装配置笔记

一.MongoDb是什么 MongoDB是一个面向文档的数据库系统,与我们平常使用的关系型数据库mysql不同.他使用C++编写,不支持SQL,但有自己功能强大的查询语法.MongoDB使用BSON作为数据存储和传输的格式.BSON 是一种类似JSON的二进制序列化文档,支持嵌套对象和数组.MongoDB很像MySQL,document对应MySQL的 row,collection对应MySQL的table.是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/

Linux系统中SVN安装、权限管理

  SVN安装 SVN服务器有2种运行方式:独立服务器和借助apache运行. svnserve和apache相比是轻量级的,也比较简单,svnserve包含在subversion里面,所以只要安装了subversion就相当于安装了一个小型的svn服务器.它使用自己的一套协议通信.例如访问apache时使用 http:// 前缀,而svnserve使用 svn:// 前缀. 这里介绍的是通过独立服务器方式运行,优点是简单小巧.如果是支持较大规模的开发,还是推荐使用apache服务器方式;这里使