mongodb复制集搭建

MongoDB集群安装

1、解压MongoDB安装文件

tar xf mongodb-linux-x86_64-3.4.10.tar.gz

2、启动实例并创建账号

cd mongodb-linux-x86_64-3.4.10/bin

./mongodb-start.sh

./mongo 127.0.0.1:27318

3、创建admin库的验证管理用户

use admin

db.createUser({    user: 'idsmanager',    pwd: 'IDsManager',    roles: [{ role: 'root', db: 'admin' }]  });

验证登录测试
db.auth("idsmanager","IDsManager")
 退出并关闭服务

exit

./mongodb-stop.sh

(停止数据库,编写集群需要的配置文件)

4.编辑mongodb.conf文件(每台数据库配置文件都需要修改)

vi ../mongodb.conf

新增 replSet=rs0

修改 bind_ip=[内网IP]

mongodb.conf修改后的内容:



dbpath=../data

logpath=../logs/mongodb.log

logappend=true

port=27318

bind_ip=192.168.2.123,127.0.0.1

fork=true

auth=true

replSet=rs0   #每台都需要配置

keyFile=/root/mongodb-linux-x86_64-3.4.10/key/autoke  #复制集群环境认证的key每台都需要配置

syncdelay=0  #此设置控制之间的最大秒数刷新待写入到磁盘中。而mongod总是将数据写入磁盘,该设置控制了最大的保证一个成功的写操作和下一次之间的间隔数据库刷新数据到磁盘上。

在许多情况下,实际的时间间隔之间的写操作和磁盘刷新比的值是更短的

如果设置为0,mongod刷新到磁盘上的所有操作立即,可以具有显着的性能的影响。IF日记是真实的,所有的写操作将是持久的

5、创建mongodb集群所需要的key认证文件

cd /root/mongodb-linux-x86_64-3.4.10

mkdir key

vim key/autoke

autoke文件内容如下:

d+OCvbVow2sSwWz4zR/yDMg+CQsE/q+UBJj/UCzn06MOvahfOjS+0Ix7ZzhNOlpu

ge3/3CVIc5uASnZnjbzI8cJatrU+ggd5+VAkSVsjnTT216+TwT07rDxJ9sjVJElh

TiO6QWpc5K38bNTv+iif8Lg3sUCjY9LBTQqJXvbukNLfByF9HUaUXQTMPYircdY2

Y8gIBuuK0zctrsJJc6TEpkkj8iSesuedIWJ05/goqvjwtYQ1jRZGqSLELlN6SZ1O

GdgUSU9hnjmGjLmP4+P4tdtctOX2FNjsdIcV+M3/tbKa0vli0Gdp8MLXXic5xTzS

30gyMseWBzo1GV8dp4nTmpg+Z8oLfceZLRQELgRojUcqMJEDj+DQ+cIgI+kkUXAn

BlJsD24r0GfH6kvrNO6JKloerCfU4oSfy8lijY0OOR+0ghIFGHYxzz8Pw9uhMauW

swLPOhoO6gJKxZjh8dL/8bUtoEGf6F4LVHAiTvpE9Bfgm3Mk4PenT7oviRtBnzMD

p1rg+aDQzziNRvHP+4KA0iyv+JBomtqcJ2ThgSGdFhPlnq5YCe+XTAGvYhd7qp4d

2qBWuuxVMv8larlT5hfWUJEo3xzK5yKwl5A/JmIVh7mRDScFFe63yBkioqOkQs8+

6XI2YntVFN7THqGma2aRJqG7ji6kchg4zU/MLabnKGFuKBRuhOTWp4gztwP3HefY

u6jOvQdYtAi46aHBms3/G2yGREwaANLqVIKCb/3s2zUmsetZs+oqHiDkE/+CgPDN

czCZcnPV61sJXN/5MDNg39ms3SpAKpceyE/v7nWjSzGGaJh00Tv7gjOSeSUyRT0A

gxhSoOra3CBgWxetlj6jFFyDE1k73GOPpEXTux/EFqYrRUcqXm8F+p2U4BN4gc+L

bEfFKNx/mR2PGaOd+xgLYHnPCQO2LpbAZSSkWD7rOcw37CQWbEqeYmOD8wfmhIPx

65s6Kgm9NcqkZW2BU7m0hV3WwG15qjJEQY11rRlzsC1Rnj0e

授权autokey文件

[root@sf160186 mongodb-linux-x86_64-3.4.10]# chmod 400 key/autoke

6、确保集群服务器相互之间27318端口通信正常

在集群的各台服务器之间相互使用telnet命令测试:

telnet [IP] 27318

如果端口不通,可检查防火墙等策略

7、启动MongoDB

./mongodb-start.sh(每台数据库都启动起来)

如启动有报错查看日志,看配置文件路径是否有问题,或秘钥文件权限是否错误。​​​​​​​

MongoDB复制集群配置

1.登录MongoDB(主库)

./mongo 192.168.2.123:27318 (192.168.2.123 是数据库IP)
use admin
db.auth("idsmanager","IDsManager")验证一下密码

2.在mongo控制台配置集群

config={_id:"rs0",members:[ {_id:0,host:'192.168.2.123:27318',priority:100},{_id:1,host:'192.168.2.124:27318',priority:50},{_id:2,host:'192.168.2.125:27318',priority:10}]}

rs.initiate(config)

出现rs0:PRIMARY>则说明集群配置成功。(稍微等一会会变成下图所示)

 

创建IDP数据库

创建数据库

use IDP2



添加IDP2数据库用户   注:用户名和密码可以根据用户要求更改!

db.createUser({  user: 'idsmanager',  pwd: 'IDsManager',  roles: [{ role: 'dbOwner', db: 'IDP2' }]  });

 

db.auth("idsmanager","IDsManager")验证一下密码

退出
exit

rs.slaveOk()#复制集默认从库不允许读写,这个命令是从库可以读写

可以在从库执行这个命令看创建的用户是否同步到从库里面了

 

3.复制集常用命令

##查看副本集配置

rs.conf()

##查看副本集状态

 rs.status() 

##查看是否为主

db.isMaster()

##添加仲裁节点

rs.addArb("172.31.9.77:27318")  

##删除节点

rs.remove("172.31.9.77:27318")

 

mongodb恢复备份数据

mongorestore -h 127.0.0.1:27318 -uidsmanager -pIDsManager --authenticationDatabase admin -d IDP2 --drop  /data/IDP/mongodb-linux-x86_64-3.4.10/bin/backup/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值