mongodb主从同步的配置及带auth验证的主从同步以及一套基于thinkphp3.2开发的教育补习班报名排班排位系统源码下载

一、mongodb主从同步的配置及带auth验证的主从同步

        mongo主从配置非常简单,只需要修改几项配置即可。主服务器增加配置项:master=true 。从服务器增加配置项slave=true,同时指名数据来源服务器及端口source配置。

1. mongo主服务器的配置示例:

bind_ip=192.168.162.80
port=27117
fork=true
dbpath=/opt/modules/mongodb/db/
logpath=/opt/modules/mongodb/log/mongo.log
logappend=true
auth=flase
#keyFile=/opt/modules/mongodb/keyfile auth为true的话,需要加上本行。
master=true     #主丛的配置项
oplogSize=2048  #主丛的配置项

    有一个配置项:oplogSize,MongoDB 的Replication是通过一个日志来存储写操作的,这个日志就叫做oplog。在默认情况下,oplog分配的是5%的空闲磁盘空间。通常而言,这是一种合理的设置。可以通过mongod --oplogSize来改变oplog的日志大小。oplog是capped collection,因为oplog的特点(不能太多把磁盘填满了,固定大小)需要,MongoDB才发明了capped collection(the oplog is actually the reason capped collections were invented).

    oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的。每个节点都有oplog,记录这从主节点复制过来的信息,这样每个成员都可以作为同步源给其他节点。oplog的大小设置是值得考虑的一个问题,如果oplog size过大,会浪费存储空间;如果oplog size过小,老的oplog记录很快就会被覆盖,那么宕机的节点就很容易出现无法同步数据的现象。

总之:在线上搭主丛mongo时一定要配置好oplogSize值,有好多修改这个配置后启动失败之类的问题,建议配置大点。

2. mongo从服务器的配置示例:

bind_ip=192.168.162.90
port=27117
fork=true
dbpath=/opt/modules/mongodb/db/
logpath=/opt/modules/mongodb/log/mongo2018.log
logappend=true
auth=
slave=true
source=192.168.162.80:27117
autoresync=true

        之后分别启动主丛mongo服务器,会看到从服务器日志中调用主库拉取同步的日志。通过对主丛库的collection查询看数据是否同步,另外可以通过以下命令查看主丛信息。

> db.runCommand({"resync":1})       #如果发现主从不同步,从上手动同步
> db.runCommand({"isMaster":1})     #是主还是从
> db.printCollectionStats();        #查看各Collection状态
> db.printReplicationInfo();        #查看主从复制状态
> db.printSlaveReplicationInfo();   #查看主从复制信息
> use local;
switched to db local
> db.sources.find();                #在丛库上查询主库地址

        注:上面是auth为flase时的主丛,如果是做有验证的主从,那么需要用到keyFile的验证。
sudo openssl rand -base64 123 >> keyfile
将并生成的keyfile文件复制到丛库,且在配置文件中添加相同的配置,如在启动mongo时提示以下错误:

2018-02-06T17:29:25.666+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-02-06T17:29:25.677+0800 I ACCESS   [main] permissions on /opt/modules/mongodb/keyfile are too open

        表示这个keyfile文件权限过大(才前在使用rsync时也遇到过类似情况,这种密钥文件权限不能太大,也是为了安全考虑),

sudo chmod 400 keyfile

        再启动mongo.就OK,上面都是经过测试可行的。主mongo好查询信息示例如下:

> db.runCommand({"isMaster":1})db.runCommand({"isMaster":1})
{
        "ismaster" : true,
        "maxBsonObjectSize" : 16777216,
        "maxMessageSizeBytes" : 48000000,
        "maxWriteBatchSize" : 1000,
        "localTime" : ISODate("2018-02-06T09:38:58.336Z"),
        "maxWireVersion" : 4,
        "minWireVersion" : 0,
        "ok" : 1
}
> db.printReplicationInfo()db.printReplicationInfo()
configured oplog size:   2048MB
log length start to end: 3909secs (1.09hrs)
oplog first event time:  Tue Feb 06 2018 16:33:49 GMT+0800 (CST)
oplog last event time:   Tue Feb 06 2018 17:38:58 GMT+0800 (CST)
now:                     Tue Feb 06 2018 17:39:05 GMT+0800 (CST)
> 

3. 从mongo上查询示例:

> db.runCommand({"isMaster":1})db.runCommand({"isMaster":1})
{
        "ismaster" : false,
        "maxBsonObjectSize" : 16777216,
        "maxMessageSizeBytes" : 48000000,
        "maxWriteBatchSize" : 1000,
        "localTime" : ISODate("2018-02-06T09:39:14.426Z"),
        "maxWireVersion" : 4,
        "minWireVersion" : 0,
        "ok" : 1
}
> db.printReplicationInfo()db.printReplicationInfo()
this is a slave, printing slave replication info.
source: 192.168.162.80:27117
        syncedTo: Tue Feb 06 2018 17:39:18 GMT+0800 (CST)
        5 secs (0 hrs) behind the freshest member (no primary available at the moment)
> db.printSlaveReplicationInfo();db.printSlaveReplicationInfo();
source: 192.168.162.80:27117
        syncedTo: Tue Feb 06 2018 17:39:18 GMT+0800 (CST)
        11 secs (0 hrs) behind the freshest member (no primary available at the moment)
> 

        另外shell登录丛库后,在丛库上操作比如show dbs;时会提示:listCollections failed: not master and slaveOk=false,这是因为从库默认是不允许读写的,先执行命令:rs.slaveOk(),再执行即可。

二、一套基于thinkphp3.2开发的教育补习班报名排班排位系统源码下载

        一套基于thinkphp3.2开发的教育补习班报名排班排位系统jiaoyu.zip.。开发的基于ThinkPHP 3.2框架开发一个教育补习班报名、排班、排位系统涉及多个模块和复杂的业务逻辑。系统的主要组成部分有如下:

用户管理:包括管理员、教师、学生和家长等角色的管理。

课程管理:课程的创建、编辑、删除、查询等。

排班管理:根据课程安排、教师资源和教室资源,自动生成或手动调整班级和课程时间表。

报名管理:学生及家长通过系统报名课程,选择班级和时间段。

排位管理:根据报名情况,自动或手动调整学生座位。

支付管理:集成支付接口,处理课程费用的支付。

数据统计与报表:统计课程报名情况、学生出勤率等,生成相关报表。

        下载资源见本文最上方绑定的资源提示,或者点击链接进入下载:https://download.csdn.net/download/weixin_47792780/89616839

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值