副本集添加一个节点,不需要oplog也能数据同步?

lanbaibai 2014-04-17 09:03:02
我在本机架设了两个mongodb实例,一个端口30000,一个30001
这两个实例一开始不是副本集。
30000实例已经有了一部分数据,30001实例没有任何数据。
此时我进入30000实例,local库下面没有oplog.rs集合。
后来我把这两个实例架设成副本集,
之后,我发现30000实例的数据同步到30001实例。
而此时这两个实例的local库下面都有oplog.rs集合了,但是我执行db.oplog.rs.find(),发现只有设置副本集脚本的那一条记录。
没有oplog,我想问这数据是怎么同步过来的?
...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
远航的TJ 2014-04-19
  • 打赏
  • 举报
回复
当你初始设置或者增加一个新的副本(30001)的时候,mongodb同步数据有下述3个步骤: 1) 副本的mongod在主本上执行一个table scan,把主本上所有的纪录复制过来。注意这个不是用oplog,而是直接query 然后insert。 假设开始时间是12:00:00 2) 全部复制完后,副本再把主本的oplog从12:00:00开始的部分复制过来然后在副本上执行那些oplog。这些oplog包括了同步开始以后的数据更新。 3) 重建所有的indexes 所以针对于那些在3000上的已有数据,你不会看到之前(开始同步之前)的oplog。
《10天掌握MongoDB》2012翻新完整版,大小 4.6 MB,NewSQL 中文社区系列课程。本版本带有 PDF 书签,方便读者朋友阅览。 目录: 第一天:认识MONGODB 从NOSQL说起 NOSQL数据库特点 NOSQL数据库类型 MONGODB简介 数据库、合、文档命名规范 MONGODB的下载与安装 MONGODB SHELL MONGODB的数据类型 MONGODB的基本数据类型 MONGODB的数组 MONGODB的文档嵌套 MONGODB的OBJECTID 结束语 第二天:初识增删改 添加文档 删除文档 更新文档-文档更换1 更新文档-文档替换2 更新文档-UPSERT模式 更新文档-MULTI模式 更新文档-修改器 定位操作符("$")-神马是定位 定位操作符("$")-未知 FINDANDMODIFY-有神马不同 FINDANDMODIFY-返回已更新的文档 FINDANDMODIFY-实现自增标识 其他 第三天:学会FIND 认识FIND 子键筛选 复杂查询 查询条件操作符 正则表达式 数组查询 数组查询-$SIZE 数组查询-$SLICE 数组查询-子项定位 数组查询-$ELEMMATCH 游标 $WHERE 排序分页 排序分页-排序比较的顺序 排序分页-分页示例 排序分页-不使用SKIP分页 结束语 第四天:使用索引 创建索引 修改索引 删除索引 唯一索引 地理空间索引-创建1 地理空间索引-创建2 地理空间索引-$NEAR 地理空间索引-$WITHIN(BOX) 地理空间索引-$WITHIN(CENTER) 地理空间索引-$WITHIN(POLYGON) 地理空间索引-球形查找 查询计划 强制使用索引 实战技巧 第五天:聚合操作 聚合操作-COUNT 聚合操作-DISTINCT 聚合操作-GROUP 聚合操作-GROUP完成器 聚合操作-GROUP键函数 聚合操作-MAPREDUCE(简介) 聚合操作-MAPREDUCE(OUTPUT) 第六天:进阶指南 数据库命令-概览 数据库命令-BUILDINFO 数据库命令-COLLSTATS 数据库命令-DROP 数据库命令-DROPINDEXES 数据库命令-GETLASTERROR 数据库命令-ISMASTER 数据库命令-LISTCOMMANDS 数据库命令-LISTDATABASES 数据库命令-PING 数据库命令-RENAMECOLLECTION 数据库命令-REPAREDATABASE 数据库命令-SERVERSTATUS 定容合 定容合-自然排序 定容合-尾部游标 GRIDFS GRDFS-原理 服务器端脚本 服务器端脚本-存储JAVASCRIPT 数据库引用-DBREF 第七天:服务器管理 启动和停止 配置文件 管理界面 安全与认证 备份与恢复 备份与恢复-冷备份 备份与恢复-热备份 备份与恢复-主从复制备份 备份与恢复-修复 第八天:MONGODB复制 主从复制 主从复制-选项 副本 副本-特点 副本-活跃节点选举 读写分离 工作原理-OPLOG 工作原理-同步 复制管理-诊断 复制管理-变更OPLOG容量 复制管理-复制认证 第九天:MONGODB分片 分片与自动分片 片键与片键选择 分片群的组成部分 创建分片 管理分片 结语 第十天:分享实战经验 对NOSQL的理解 为什么是MONGODB 文档结构设计 索引及查询优化 复制分片及副本 其他
内容简介 MongoDB如何帮你管理通过Web应用收的海量数据呢?通过本书的权威解读,你会了解面向文档数据库的诸多优点,会发现MongoDB如此稳定、性能优越甚至能够无限水平扩展背后的原因。 本书的两位作者均来自开发并支持开源数据库MongoDB的公司10gen。数据库开发人员可将此书作为参考指南,系统管理员可以从本书中找到高级配置技巧,其他用户可以了解一些基本概念和用例。你会发现,将数据组织成自包含的JSON风格的文档比组织成关系型数据库中的记录要容易得多。 编辑本段 目录 录 中文版序一 XI 中文版序二 XIII 序 XV 前言 XVII 第1章 简介 1 1.1 丰富的数据模型 1 1.2 容易扩展 1 1.3 丰富的功能 2 1.4 不牺牲速度 3 1.5 简便的管理 3 1.6 其他内容 3 第2章 入门 5 2.1 文档 5 2.2 合 6 2.2.1 无模式 6 2.2.2 命名 7 2.3 数据库 8 2.4 启动MongoDB 9 2.5 MongoDB shell 10 2.5.1 运行shell 10 2.5.2 MongoDB客户端 11 2.5.3 shell中的基本操作 11 2.5.4 使用shell的窍门 13 2.6 数据类型 15 2.6.1 基本数据类型 15 2.6.2 数字 17 2.6.3 日期 18 2.6.4 数组 19 2.6.5 内嵌文档 19 2.6.6 _id和ObjectId 20 第3章 创建、更新及删除文档 23 3.1 插入并保存文档 23 3.1.1 批量插入 23 3.1.2 插入:原理和作用 24 3.2 删除文档 24 3.3 更新文档 25 3.3.1 文档替换 26 3.3.2 使用修改器 27 3.3.3 upsert 36 3.3.4 更新多个文档 38 3.3.5 返回已更新的文档 38 3.4 瞬间完成 41 3.4.1 安全操作 41 3.4.2 捕获“常规”错误 42 3.5 请求和连接 43 第4章 查询 45 4.1 find简介 45 4.1.1 指定返回的键 46 4.1.2 限制 46 4.2 查询条件 47 4.2.1 查询条件 47 4.2.2 OR查询 47 4.2.3 $not 48 4.2.4 条件句的规则 49 4.3 特定于类型的查询 49 4.3.1 null 49 4.3.2 正则表达式 50 4.3.3 查询数组 51 4.3.4 查询内嵌文档 53 4.4 $where查询 55 4.5 游标 56 4.5.1 limit、skip和sort 57 4.5.2 避免使用skip略过大量结果 58 4.5.3 高级查询选项 60 4.5.4 获取一致结果 61 4.6 游标内幕 63 第5章 索引 65 5.1 索引简介 65 5.1.1 扩展索引 67 5.1.2 索引内嵌文档中的键 68 5.1.3 为排序创建索引 68 5.1.4 索引名称 69 5.2 唯一索引 69 5.2.1 消除重复 69 5.2.2 复合唯一索引 70 5.3 使用explain和hint 70 5.4 索引管理 75 5.5 地理空间索引 76 5.5.1 复合地理空间索引 78 5.5.2 地球不是二维平面 78 第6章 聚合 79 6.1 count 79 6.2 distinct 79 6.3 group 80 6.3.1 使用完成器 82 6.3.2 将函数做为键使用 84 6.4 MapReduce 84 6.4.1 例1:找出合中的所有键 85 6.4.2 例2:网页分类 87 6.4.3 MongoDB和MapReduce 87 第7章 进阶指南 91 7.1 数据库命令 91 7.1.1 命令的工作原理 92 7.1.2 命令参考 93 7.2 固定合 95 7.2.1 属性及用法 96 7.2.2 创建固定合 96 7.2.3 自然排序 97 7.2.4 尾部游标 98 7.3 GridFS:存储文件 99 7.3.1 开始使用GridFS:mongofiles 99 7.3.2 通过MongoDB驱动程序操作GridFS100 7.3.3 内部原理 100 7.4 服务器端脚本 101 7.4.1 dbeval 101 7.4.2 存储JavaScript 102 7.4.3 安全性 103 7.5 数据库引用 104 7.5.1 什么是DBRef 104 7.5.2 示例模式 104 7.5.3 驱动对DBRef的支持 105 7.5.4 什么时候该使用DBRef呢 106 第8章 管理 107 8.1 启动和停止MongoDB 107 8.1.1 从命令行启动 107 8.1.2 配置文件 109 8.1.3 停止MongoDB 110 8.2 监控 110 8.2.1 使用管理接口 110 8.2.2 serverStatus 112 8.2.3 mongostat 113 8.2.4 第三方插件 113 8.3 安全和认证 114 8.3.1 认证的基础知识 114 8.3.2 认证的工作原理 115 8.3.3 其他安全考虑 116 8.4 备份和修复 116 8.4.1 数据文件备份 117 8.4.2 mongodump和mongorestore 117 8.4.3 fsync和锁 118 8.4.4 从属备份 119 8.4.5 修复 119 第9章 复制 121 9.1 主从复制 121 9.1.1 选项 122 9.1.2 添加及删除源 123 9.2 副本 124 9.2.1 初始化副本 125 9.2.2 副本中的节点 127 9.2.3 故障切换和活跃节点选举 128 9.3 在从服务器上执行操作 129 9.3.1 读扩展 130 9.3.2 用从节点数据处理 130 9.4 工作原理 130 9.4.1 oplog 131 9.4.2 同步 131 9.4.3 复制状态和本地数据库 132 9.4.4 阻塞复制 132 9.5 管理 133 9.5.1 诊断 133 9.5.2 变更oplog的大小 134 9.5.3 复制的认证问题 134 第10章 分片 135 10.1 分片简介 135 10.2 MongoDB中的自动分片 135 10.3 片键 137 10.3.1 将已有的合分片 137 10.3.2 递增片键还是随机片键 137 10.3.3 片键对操作的影响 138 10.4 建立分片 139 10.4.1 启动服务器 139 10.4.2 切分数据 140 10.5 生产配置 140 10.5.1 健壮的配置 141 10.5.2 多个mongos 141 10.5.3 健壮的片 141 10.5.4 物理服务器 142 10.6 管理分片 142 10.6.1 配置合 142 10.6.2 分片命令 143 第11章 应用举例 145 11.1 化学品搜索引擎:Java 145 11.1.1 安装Java驱动程序 145 11.1.2 使用Java驱动程序 145 11.1.3 模式设计 146 11.1.4 用Java实现 148 11.1.5 一些问题 149 11.2 新闻聚合器:PHP 149 11.2.1 安装PHP驱动程序 150 11.2.2 使用PHP驱动程序 151 11.2.3 设计新闻聚器 151 11.2.4 评论树 152 11.2.5 投票 153 11.3 自定义提交表单:Ruby 154 11.3.1 安装Ruby驱动 154 11.3.2 使用Ruby驱动 155 11.3.3 自定义表单提交 155 11.3.4 Ruby的对象映射和在Rails中使用MongoDB 157 11.4 实时分析:Python 157 11.4.1 安装PyMongo 157 11.4.2 使用PyMongo 158 11.4.3 用于实时分析的MongoDB 158 11.4.4 模式 159 11.4.5 处理请求 159 11.4.6 使用分析数据 160 11.4.7 其他因素 160 附录A 安装MongoDB 163 附录B mongo:MongoDB shell 167 附录C 深入MongoDB内部 169 关于封面 172
第1 章 简介  1 1.1 丰富的数据模型  1 1.2 容易扩展   1 1.3 丰富的功能    2 1.4 不牺牲速度    3 1.5 简便的管理    3 1.6 其他内容   3 第2 章 入门  5 2.1 文档  5 2.2 合  6 2.2.1 无模式    6 2.2.2 命名    7 2.3 数据库   8 2.4 启动MongoDB  9 2.5 MongoDB Shell      10 2.5.1 运行shell    10 2.5.2 MongoDB 客户端  11 2.5.3 shell 中的基本操作  11 2.5.4 使用shell 的窍门    13 2.6 数据类型    15 2.6.1 基本数据类型  15 2.6.2 数字  17 2.6.3 日期  18 2.6.4 数组  19 2.6.5 内嵌文档    19 2.6.6 _id 和ObjectId   20 第3 章 创建、更新及删除文档   23 3.1 插入并保存文档   23 3.1.1 批量插入    23 3.1.2 插入:原理和作用  24 3.2 删除文档    24 3.3 更新文档    25 3.3.1 文档替换    26 3.3.2 使用修改器  27 3.3.3 Upsert    36 3.3.4 更新多个文档  38 3.3.5 返回已更新的文档  38 3.4 瞬间完成    41 3.4.1 安全操作    41 3.4.2 捕获“常规”错误  42 3.5 请求和连接    43 第4 章 查询     45 4.1 find 简介    45 4.1.1 指定返回的键  46 4.1.2 限制  46 4.2 查询条件    47 4.2.1 查询条件    47 4.2.2 OR 查询  47 4.2.3 $not    48 4.2.4 条件句的规则  49 4.3 特定于类型的查询    49 4.3.1 null   49 4.3.2 正则表达式  50 4.3.3 查询数组    51 4.3.4 查询内嵌文档  53 4.4 $where 查询    55 4.5 游标    56 4.5.2 避免使用skip 略过大量结果   58 4.5.3 高级查询选项  60 4.5.4 获取一致结果  61 4.6 游标内幕    63 第5 章 索引     65 5.1 索引简介    65 5.1.1 扩展索引    67 5.1.2 索引内嵌文档中的键    68 5.1.3 为排序创建索引   68 5.1.4 索引名称    69 5.2 唯一索引    69 5.2.1 消除重复    69 5.2.2 复合唯一索引  70 5.3 使用explain 和hint  70 5.4 索引管理    75 5.5 地理空间索引  76 5.5.1 复合地理空间索引  78 5.5.2 地球不是二维平面  78 第6 章 聚合     79 6.1 count   79 6.2 distinct    79 6.3 group   80 6.3.1 使用完成器  82 6.3.2 将函数做为键使用  84 6.4 MapReduce    84 6.4.1 例1:找出合中的所有键  85 6.4.2 例2: 网页分类    87 6.4.3 MongoDB 和MapReduce   87 第7 章 进阶指南     91 7.1 数据库命令    91 7.1.1 命令的工作原理   92 7.1.2 命令参考    92 7.2 固定合    95 7.2.1 属性及用法  96 7.2.2 创建固定合  96 7.2.3 自然排序    97 7.2.4 尾部游标    98 7.3 GridFS:储存文件    99 7.3.1 开始使用GridFS:mongofiles  99 7.3.2 通过MongoDB 驱动程序操作GridFS    100 7.3.3 内部原理  100 7.4 服务器端脚本  101 7.4.1 db.eval  101 7.4.2 存储JavaScript 脚本    102 7.4.3 安全性  103 7.5 数据库引用   104 7.5.1 什么是DBRef  104 7.5.2 示例模式  104 7.5.3 驱动对DBRef 的支持   105 7.5.4 什么时候该使用DBRef 呢  106 第8 章 管理    107 8.1 启动和停止MongoDB  107 8.1.1 从命令行启动    107 8.1.2 配置文件  109 8.1.3 停止MongoDB   110 8.2 监控   110 8.2.1 使用管理接口    110 8.2.2 serverStatus  112 8.2.3 mongostat  113 8.2.4 第三方插件    113 8.3 安全和认证   114 8.3.1 认证的基础知识  114 8.3.2 认证的工作原理  115 8.3.3 其他安全考虑    116 8.4 备份和修复   116 8.4.1 数据文件备份    117 8.4.2 mongodump 和mongorestore  117 8.4.3 fsync 和锁    118 8.4.4 从属备份  119 8.4.5 修复    119 第9 章 复制    121 9.1 主从复制    121 9.1.1 选项    122 9.1.2 添加删除源    123 9.2 副本   124 9.2.1 初始化副本    125 9.2.2 副本中的节点  127 9.2.3 故障切换和主节点选举   128 9.3 在从服务器上执行操作    129 9.3.1 读扩展  130 9.3.2 用从节点数据处理  130 9.4 工作原理    130 9.4.1 oplog  131 9.4.2 同步    131 9.4.3 复制状态和本地数据库   132 9.4.4 阻塞复制  132 9.5 管理   133 9.5.1 诊断    133 9.5.2 变更oplog 的大小    134 9.5.3 认证复制  134 第10 章 分片   135 10.1 分片简介    135 10.2 MongoDB 中的分片   135 10.3 片键   137 10.3.1 将已有的合分片  137 10.3.2 递增片键还是随机片键  137 10.3.3 片键对操作的影响  138 10.4 建立分片    139 10.4.1 启动服务器   139 10.4.2 切分数据  140 10.5 生产配置  140 10.5.1 健壮的配置   141 10.5.2 多个mongos   141 10.5.3 健壮的片  141 10.5.4 物理服务器   142 10.6 管理分片    142 10.6.1 配置合  142 10.6.2 分片命令  143 第11 章 应用举例    145 11.1 化学品搜索引擎:Java  145 11.2 新闻聚合器:PHP    149 11.3 自定义提交表单:Ruby  154 11.4 实时分析: Python  157 附录A 安装MongoDB   163 附录B mongo:MongoDB shell   167 附录C 深入MongoDB 内部   169

1,746

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧