mongo3.0 主从(都写分离)复制集搭建

1 mongo3.0  主从(都写分离)复制集搭建
//1主2从
主:10.12.28.29:27010
./mongod -f /smart/mongodb/conf/mongodb.conf
//mongodb.conf   配置文件:
port=27010
dbpath=/smart/mongodb/data
logpath=/smart/mongodb/log/mongod.log
pidfilepath=/smart/mongodb/data/mongod.pid
fork=true
logappend=true
storageEngine=wiredTiger
profile=1
slowms=200
journal=true
directoryperdb=true
maxConns=20000
replSet=repl1
auth=false
bind_ip=0.0.0.0
---------------------------------------------
从:10.12.28.29:27020  主从切换用(用于仲裁)
/usr/local/mongodb/mongodb-linux-x86_64-3.0.3/bin/mongod -f /data/mongodb/arbiter/conf/arbiter.conf
//arbiter.conf 配置文件
port=27020
dbpath=/data/mongodb/arbiter/data
logpath=/data/mongodb/arbiter/log/mongod.log
pidfilepath=/data/mongodb/arbiter/data/mongod.pid
fork=true
logappend=true
storageEngine=wiredTiger
profile=1
slowms=200
journal=true
directoryperdb=true
maxConns=20000
replSet=repl1
auth=false
bind_ip=0.0.0.0
----------------------------------------------
从:10.12.30.41:27010
/usr/local/mongodb/bin/mongod -f /smart/mongodb/conf/mongod.conf
//mongodb.conf   配置文件:
port=27010
dbpath=/smart/mongodb/data
logpath=/smart/mongodb/log/mongod.log
pidfilepath=/smart/mongodb/data/mongod.pid
fork=true
logappend=true
storageEngine=wiredTiger
profile=1
slowms=200
journal=true
directoryperdb=true
maxConns=20000
replSet=repl1
auth=false
bind_ip=0.0.0.0
2 添加主从关系:
主库进入并配置复制集:
mongo --port 27010
config={_id:'repl1',members:[{_id:0,host:'10.12.28.29:27010',priority:2},{_id:1,host:'10.12.30.41:27010', priority:1},
{_id:2,host:'10.12.28.29:27020',arbiterOnly:true}]}
rs.initiate(config)
从库进入并执行可读操作:
在从库中确认从库 rs.slaveOk()
查看副本集状态
rs.status()
mongo库搭建完毕:
3 java设置读写分离:
applicationContext-mongodb.xml  文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        classpath:/org/springframework/beans/factory/xml/spring-beans-3.2.xsd
        http://www.springframework.org/schema/data/mongo
        http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
        ">
    <!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 -->
    <!-- 连接 -->
    <mongo:mongo id="mongo" replica-set="10.12.28.29:27010,10.12.30.41:27010" >
        <mongo:options connections-per-host="${mongo.connectionsPerHost}"
            threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
            socket-keep-alive="${mongo.socketKeepAlive}" 
            slave-ok="${mongo.slaveOk}" />
    </mongo:mongo>
    <!-- 
            10.12.28.29:27010,10.12.30.41:27010
            ${mongo.host.smart}
            connect-timeout="${mongo.connectTimeout}" 
            max-wait-time="${mongo.maxWaitTime}" 
            auto-connect-retry="${mongo.autoConnectRetry}"  
            socket-timeout="${mongo.socketTimeout}"
            slave-ok="${mongo.slaveOk}" #读写分离
            write-number="${mongo.writeNumber}" 
            write-timeout="${mongo.writeTimeout}" 
            write-fsync="${mongo.writeFsync}"
     -->
    <!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->
    <mongo:db-factory dbname="smart" mongo-ref="mongo" id="mongoDbFactory"/>
    <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongoDbFactory"/>
    </bean>
</beans>

完成搭建!
========================================================================================================================
    @RequestMapping(value = "mysql-proxy")
    public void mysqlProxy(HttpServletRequest request, HttpServletResponse response) {
        //执行任务
        List<String> hostIds = monitorNodeService.getHostIdList();
        dataProcessingService.selectVmInfoStatMonitor();
        //计时结束
    }

---------------------------------------
    @Override
    public void selectVmInfoStatMonitor() {
        Query query = new Query();
        query.addCriteria(Criteria.where(MongoFields.VM_INFO_STAT_VID).is("9132917"));
        query.with(new Sort(Sort.DEFAULT_DIRECTION.DESC, MongoFields.VM_INFO_STAT_CREATE_TIME));
        VmStatInfoVO vmInfoVo = mongoTemplate.findOne(query, VmStatInfoVO.class, "VmInfoStatMonitor");
    }

==========================================================================================================================
./mongod -f /smart/mongodb/conf/mongodb.conf 
./mongod -f /smart/mongodb/conf/mongodb.conf
1 安装mongo:https://www.mongodb.com/download-center
https://www.mongodb.org/dl/linux/
tar -xvzf mongodb-linux-x86_64-rhel70-3.4.10.tgz
    linux/mongodb-linux-x86_64-rhel70-3.4.2.tgz


storage:
 dbPath: "/smart/mongodb/data"
systemLog:
 destination: file
 path: "/smart/mongodb/log/mongod.log"
net:
 port: 27022
 http:
 RESTInterfaceEnabled: true
processManagement:
 fork: false

port=27022
dbpath=/smart/mongodb/data
logpath=/smart/mongodb/log/mongod.log

=========================================================================================
1. 官网下载安装介质https://www.mongodb.org/dl/linux/,选
择适当的版本,这里以linux版本为例;
2. 解压到系统某路径, tar -xvzf mongodb-linux-x86_64-rhel70-3.4.10.tgz
 并在安装目录创建data目录,以及logs目录和logs/mongodb.log文件
3. 使用vim在mongodb的bin目录创建mongodb的配置文件,如:vim
bin/mongodb.conf,mongodb.conf内容请见下一页课件;
4. 编写shell脚本,命名为start-mongodb.sh,脚本内容如下:
   nohup ./mongod -f mongodb.conf &
5. 使用start-mongodb.sh启动mongodb实例,如:./start-mongodb
6. 使用mongoClient进行测试

ps -aux |grep mongo
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps u   以用户为主的格式来显示程序状况。 
ps x   显示所有程序,不以终端机来区分。 
=========================================================================================
1 启动:./mongod 
    指定配置文件:
    ./mongod -f mongodb.conf
后台启动:nohup ./mongod -f mongodb.conf &
加可执行权限:chmod 777 xxx.sh
2连接mongo
./mongo localhost:27010

3 基本命令:
关闭mongo进程:
use admin
db.shutdownServer();
show dbs
db.stats() :显示数据库信息db.help(),db.collection.help():内置帮助,显示各种方法的说明;
创建数据库:
   use lijufa
//展示集合
   show collections
//创建集合  并插入数据
   db.users.insert({"name":"test"})
//展示集合
db.users.find().pretty()
=============================
1.特别在生产环境,不要用kill -9关掉mongodb的进程,很可能造成mongodb的数据丢失;
优雅的关机:

(1)第一种方式

use admin

db.shutdownServer()


(2)第二种方式
mongod --shutdown -f mongodb.conf

==========================================

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值