mongodb集群AB复制 安装与配置

本文档详细介绍了在Redhat 6.4环境下安装MongoDB 2.0.8并设置AB复制集群的过程,包括主从节点配置、启动数据库、监控日志、添加同步认证账号等步骤,确保数据的高效同步。

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秒会同步一次,同时在数据存储目录也会多出相应的文件。说明同步成功!!            

### MongoDB集群中备份Config Server节点的方法最佳实践 在MongoDB集群中,Config Server节点存储了分片集群的元数据信息,这些信息对于整个集群的正常运行至关重要。因此,定期备份Config Server节点是确保数据安全和灾难恢复能力的重要措施。 #### 1. 使用`mongodump`工具进行备份 `mongodump`是MongoDB官方提供的备份工具,可以用于导出Config Server节点中的数据。以下是备份Config Server节点的具体方法: ```bash /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongodump --host mongodb2:20001 -d config -o /home/mongodb/config ``` 上述命令将从`mongodb2:20001`主机上的Config Server节点中导出`config`数据库,并将其保存到`/home/mongodb/config`目录下[^1]。 #### 2. 确保备份过程中Config Server处于健康状态 在执行备份之前,建议检查Config Server节点的状态以确保其正常运行。可以通过以下命令连接到Config Server并验证其主从状态: ```javascript db.isMaster() ``` 如果返回的结果显示`ismaster: true`,则表示当前节点为主节点,适合进行备份操作[^2]。 #### 3. 配置文件优化以支持备份 为了确保备份过程顺利进行,可以在Config Server的配置文件中设置相关参数。例如,B机器的配置文件内容如下: ```ini pidfilepath = /var/run/mongodb/configsrv.pid dbpath = /data/mongodb/config/data logpath = /data/mongodb/config/log/congigsrv.log logappend = true bind_ip = 127.0.0.1,192.168.234.130 port = 21000 fork = true configsvr = true replSet=configs # 副本集名称 maxConns=20000 # 设置最大连接数 ``` 通过配置`replSet`参数,可以将Config Server节点加入副本集中,从而实现高可用性和数据冗余[^4]。 #### 4. 利用Oplog实现增量备份 Config Server节点的Oplog记录了所有对元数据的操作,可以利用Oplog实现增量备份。Oplog的结构示例如下: ```json { "ts" : Timestamp(1446017544, 2), "h" : NumberLong("1327359106895543098"), "v" : 2, "op" : "i", "ns" : "test.nosql", "o" : { "_id" : ObjectId("543478v0b085733f34ab7698"), "name" : "mongodb", "score" : "100" } } ``` 通过读取Oplog的时间戳字段`ts`,可以确定上次备份后发生的更改,并仅备份这些增量部分[^5]。 #### 5. 最佳实践建议 - **定期备份**:根据业务需求设定备份频率,例如每天或每周。 - **多副本存储**:将备份文件存储在多个地理位置不同的服务器上,以防止区域性灾难。 - **验证备份完整性**:定期测试备份文件的恢复能力,确保其可用性。 - **自动化脚本**:编写自动化脚本以简化备份流程,并结合监控工具实时告警。 ```bash #!/bin/bash # 自动化备份脚本示例 BACKUP_DIR="/home/mongodb/config_backup" DATE=$(date +"%Y%m%d%H%M%S") mongodump --host mongodb2:20001 -d config -o ${BACKUP_DIR}/${DATE} tar -czf ${BACKUP_DIR}/${DATE}.tar.gz ${BACKUP_DIR}/${DATE} rm -rf ${BACKUP_DIR}/${DATE} ``` 上述脚本将备份文件压缩并存储,同时清理临时目录以节省磁盘空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值