mysql副本集_mongoDB副本集的搭建

环境简介

192.168.1.151      FedoraServer   用作副本集的主库,已经有数据

192.168.1.152      FedoraServer   从库,空实例

192.168.1.153      FedoraServer   从库,空实例

MongoDB的副本集和MySQL基于GTID的多源三实例循环主从即

b54cf99672517f4e5074e4a33414757b.png

但:相对与MySQL的基于Keepalive或者MHA等第三方插件来实现切换或选主,mongodb自带故障转移与切换选主功能,这个产品很有高级感

搭建步骤mongodb安装:Percona-Server-MongoDB-34-server

2. mongodb配置:vim /etc/mongod.conf

# mongod.conf, Percona Server for MongoDB

# for documentation of all options, see:

#

#mongodb的配置有个特别之处:冒号“:”后面要加空格

# Where and how to store data.

storage:

dbPath: /data/mongo/27153/data/              #指定mongodb文件存储位置

journal:

enabled: true

#  engine: mmapv1

#  engine: PerconaFT

#  engine: rocksdb

engine: wiredTiger         #指定存储引擎,线虎引擎和Innodb有些相似,支持文档锁(行锁)

# Storage engine various options

#  mmapv1:

#  wiredTiger:

# where to write logging data.

systemLog:

quiet: true

destination: file

logAppend: true          #日志采用追加的方式

path: /data/mongo/27153/log/mongod.log       #日志文件位置

processManagement:

fork: true               #启动线程拉起主线程,与mysqld_safe进程有些相似

pidFilePath: /data/mongo/27153/mongod.pid     #PID文件位置

# network interfaces

net:

port: 27153              #端口,默认27017

bindIp: 0.0.0.0          #开放访问的IP范围

security:

authorization: enabled   #开启验证,

keyFile: /data/mongo/mongodb.key             #使用key文件进行副本集之间的认证

#operationProfiling:

#replication:

replication:

replSetName: zrz         #同步集的名称

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

3.搭建过程:

1.三台都关闭验证模式

vim /etc/mongod.conf

注释掉验证相关的配置语句

#security:

#   authorization: enabled   #开启验证,

#     keyFile: /data/mongo/mongodb.key             #使用key文件进行副本集之间的认证

2.启动服务:

mongod -f /etc/mongod.conf

3.在有数据的实例上登陆:

mongo --port 27151

mongo>config={"_id":"zrz","members":[{"_id":1,host:"192.168.1.151:27151",priority:100},

{"_id":2,host:"192.168.1.152:27152",priority:0}]}

//定义配置到变量config中

//zrz为群组名,priority为选主权重,越高越容易成为主(非故障情况下)

mongo>rs.initiate(config)

//使用rs.initiate命令初始化副本集配置

mongo>rs.status

//查看副本集配置

mongo>rs.add({"_id":3,host:"192.168.1.153:27153",priority:0})

//使用另外一种方式增加副本集

4.开启验证:

为了安全起见,需要对MongoDB的访问增加验证:

步骤1:对现在primary级别的实例进行增加用户  db.createUser()

步骤2:关闭secondary级别的实例              mongod --shutdown -f /etc/mongod.conf

步骤3:关闭primary级别的实例

步骤4:修改每个实例的配置文件,开启验证。配置账户或者分发密钥,

步骤5:先开启最后关闭的primary实例,后开启各个secondary实例

跨实例之间的认证有两种方式:账户与口令 或者 使用SSL密钥

其中:账户和口令只能在mongos分片的配置服务器上使用,实例之间通过config_server验证

密钥文件,是通过通过openssl程序生成的base64字符串,具有相同字符串的可以同步

生成方式:openssl rand -base64 756 > /data/mongo/mongodb.key

变更key文件的属性,防修改:chmod 400 /data/mongo/mongodb.key

分发给自己的小伙伴们:scp /data/mongo/mongodb.key 192.168.1.152:/data/mongo/

scp /data/mongo/mongodb.key 192.168.1.153:/data/mongo/

修改配置文件,指定密钥位置vim /etc/mongod.conf

security:

authorization: enabled   #开启验证,

keyFile: /data/mongo/mongodb.key             #使用key文件进行副本集之间的认证

按顺序开启服务就可以了mongod -f /etc/mongo

常见错误及其解决方式:

1.跨版本搭建副本集(3.0-3.4),MongoDB现在不支持

2.从实例在加入副本集失败后,意外的产生了一些数据,导致无法被primary加入副本集

处理方式:注释掉复制相关的配置文件,重启服务,即进入单机模式,使用db.dropDatabase()

删除所有数据库,然后重新进入副本集启动模式既可

3.提示已经有配置了,无法初始化,使用rs.reconfig(config{force:true})

4.使用rs.help()可以查看相关副本集的命令

复制相关命令:https://docs.mongodb.com/manual/reference/method/js-replication/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值