乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Mongodb 5.0 安全级别的写入
2017-09-17 01:08:12
70
0
0
admin
> 介绍mongo 写操作的参数选择,如何保证写入的数据不丢 * 这里所有的参数都是在write concern 上下功夫 ``` db.collection.insert( <document or array of documents>, { writeConcern: <document>, ordered: <boolean> } ) { w: <value>, j: <boolean>, wtimeout: <number> } //超时单位是秒 ``` *** #Journal >相当于oracle 的redo log, hadoop 的editlog 每个存储引擎的journal log 机制多少有点不同,其大致逻辑是将用户的写操作(元数据)优先写入磁盘(journal 文件),在一段时间后(一般60秒一次),再将满足数据文件格式的数据写入数据文件。 元数据优先写入journal 文件保证写入数据不会因为断电等原因丢失。 60秒一次将数据写入数据文件(批量操作)是为了提高性能。 **write concern**: 写入journal 以后才acknowledge ``` {j: <boolean>} ``` *** #控制写入备份的数量 * 要求至少n个数据节点acknowledge 以后才返回 ``` { w: n } ``` * 要求大多数节点acknowledge 以后才返回 ``` { w: "majority" } ``` ##指定哪些数据节点需要acknowledge ``` var config = rs.config() config.mambers[0].tags = {"datacenter":"shanghai"} config.mambers[1].tags = {"datacenter":"shanghai"} config.mambers[2].tags = {"datacenter":"shanghai"} config.mambers[3].tags = {"datacenter":"beijing"} config.mambers[4].tags = {"datacenter":"beijing"} config.mambers[5].tags = {"datacenter":"beijing"} config.settings.getLastErrorModes = [{"eachdatacenter":{"datacenter":2}}] //每个数据中心至少2台机器acknowledge //write concern {"w":"eachdatacenter"} ```
上一篇:
Mongodb 4.0 备份、导入/导出
下一篇:
MySQL 0.00 mysql引擎大致介绍
文档导航