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
==========================================