mongodb集群AB复制 安装与配置

来源:互联网 发布:java在线考试系统源码 编辑:程序博客网 时间:2024/04/28 13:10

MongoDB是一个可扩展,高性能、开源、模式自由、面向文档的数据库,它并不是我们通常用的RDBMS,属于最近比较热门的"NoSql"的数据库范畴,
它和一般的基于key-value的db还是不大一样的,因为它本身的功能很强大,它已经实现了类似于SQL的很多功能,如index,limit,skip,group….,
当应用的数据量达到海量级,传统的Mysql,Oracle不能满足我们的性能要求,而对于数据还有一定的查询需求时,也许可以考虑一下使用MongoDB。

以下安装及配置方法

软件下载地址:http://downloads-distro.mongodb.org/repo/

测试环境:redhat 6.4 x86 64bit

对应软件:mongo20-10gen-server-2.0.8-mongodb_1.x86_64.rpm        《----服务端

                   mongo20-10gen-2.0.8-mongodb_1.x86_64.rpm   <----客户端

 

 

1、各节点安装

       yum localinstall mongo* -y

2、各节点修改配置文件,并启用下列参数

以下是主节点的:

[root@db1 data]# cat /etc/mongod.conf | grep -v '^$' | grep -v '#'
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
port = 27017
dbpath=/data/mongo
auth = true
diaglog=0
journal=true
journalCommitInterval=100
syncdelay=60
pidfilepath=/var/run/mongodb/mongodb.pid
master = true

以下是从节点的:

[root@db3 mongo]# cat /etc/mongod.conf | grep -v '^$' | grep -v '#'
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
port = 27017
dbpath=/data/mongo
auth = true
diaglog=0
journal=true
journalCommitInterval=100
syncdelay=60
pidfilepath=/var/run/mongodb/mongodb.pid
slave = true
source = db1

3、先启动数据库

 /etc/init.d/mongod start

注意:启动的时候,最好监控一下日志,发现,有时提示启动成功了,但日志报错,所以,监控一下,保险些。

若启动成功 可发现有端口监听

[root@db1 data]# netstat -antlp | grep mon
tcp        0      0 0.0.0.0:28017               0.0.0.0:*                   LISTEN      6515/mongod        
tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      6515/mongod

 

4、启动从数据库,并监控日志

tailf /var/log/mongo/mongod.log

会发现类似以下错误提示:

Tue Dec 17 12:04:28 [replslave] repl: sleep 3 sec before next pass
Tue Dec 17 12:04:31 [replslave] repl: from host:db1
Tue Dec 17 12:04:31 [replslave] replauthenticate: no user in local.system.users to use for authentication

说明主从复制需要同步认证帐号

 

5、各节点添加同步认证帐号

[root@db1 data]# mongo
MongoDB shell version: 2.0.8
connecting to: test
> use local    <----切换到本地数据库
switched to db local
> db.addUser('repl','replication');      《-----用户名repl ,密码  replication
{ "n" : 0, "connectionId" : 65, "err" : null, "ok" : 1 }
{
 "user" : "repl",
 "readOnly" : false,
 "pwd" : "418b80a28664aeaeb1ec8bf792ea3052",
 "_id" : ObjectId("52afcd5dc0cd38333bf1973d")
}
> exit

      

6,在主数据库上添加个数据库,然后再监控从服务器日志,会很明显的看到3-5秒会同步一次,同时在数据存储目录也会多出相应的文件。说明同步成功!!            

0 0
原创粉丝点击