MongoDB副本集+使用Mongotemplate连接

创建MongoDB副本集

MongoDB副本集实现故障自动切换至少需要以下配置为:
1.一个主节点,两个从节点
2.一个主节点,一个从节点一个仲裁节点。
如果只有一主一从节点,故障时无法选举出主节点从而实现切换。

安装

在三台服务器上安装MongoDB,同时在主节点数据库上提前创建好有副本集权限的用户。
当然你也可以选择安装在同一台服务器上(除了测试用,不然意义不大)。
安装部分请自行搜索网上资料,在此不再赘述。

配置

修改三个Mongo配置文件,都加入以下配置
第一个参数是指定副本集
第二个参数是使用key进行安全认证

replSet=test_resplset
keyFile=/usr/local/mongodb/conf/mongodb_key

如果配置中有auth=on项,请删除,否则会造成节点没有权限连接。副本集使用key文件进行安全认证。

生成key

> openssl rand -base64 102 /usr/local/mongodb/conf/mongodb_key

生成key文件

> chmod 600 /usr/local/mongodb/conf/mongodb_key

赋600权限

启动MongoDB

正常启动三个Mongo服务即可

> /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf

然后连接一台你想使其成为主节点的数据库。

创建集群

连接主节点后,输入:

> config = {
           "_id" : "test_resplset",
           "members" : [
                   {
                           "_id" : 0,
                           "host" : "192.168.1.123:27020",
                           "priority" : 99
                   },
                   {
                           "_id" : 1,
                           "host" : "192.168.1.124:27021"
                   },
                   {
                           "_id" : 2,
                           "host" : "192.168.1.125:27022",
                           "arbiterOnly" : true
                   }
           ] }

arbiterOnly: true指这个节点为仲裁节点。
这里无论你的三个服务是否在同一个服务器上,都不要使用127.0.0.1地址,否则稍后连接数据库的时候会连接不上(域名我没测试过,各位可以自己尝试)。

> rs.initiate(config)

初始化集群。这两步只需要在主节点上操作一次即可。
出现{"ok":1}代表配置成功。
如果此处报没有权限认证的错误,请先使用有副本集权限的用户进行权限认证。

> use admin
> db.auth("user","pwd")

如果提示本节点不是主节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值