热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

mongodb持久化(3)

1.载体崩溃当出现硬件问题或文件系统出错,特别是硬盘损坏了,就没法保护数据安全了。另外,不同品牌的硬件和软件具有不同的持久保证的。总而言之,如果硬件或文件系统破坏了数据,MongoDB是无法保护数据的,这已经属于底层存储的事情了。可以使用复制来避

1. 载体崩溃 当出现硬件问题或文件系统出错,特别是硬盘损坏了,就没法保护数据安全了。另外,不同品牌的硬件和软件具有不同的持久保证的。总而言之,如果硬件或文件系统破坏了数据,MongoDB是无法保护数据的,这已经属于底层存储的事情了。可以使用复制来避

1. 载体崩溃

当出现硬件问题或文件系统出错,特别是硬盘损坏了,就没法保护数据安全了。另外,不同品牌的硬件和软件具有不同的持久保证的。 总而言之,如果硬件或文件系统破坏了数据,MongoDB是无法保护数据的,这已经属于底层存储的事情了。可以使用复制来避免这个问题,其实就是单点问题了。

2. ?检查损坏

validate命令用来检测一个集合的损坏,如:
> db.posts.validate({full:true})
{
        "ns" : "ttlsa_com.posts",
        "firstExtent" : "1:1036000 ns:ttlsa_com.posts",
        "lastExtent" : "4:2000 ns:ttlsa_com.posts",
        "extentCount" : 14,
        "extents" : [
                {
                        "loc" : "1:1036000",
                        "xnext" : "1:104e000",
                        "xprev" : "null",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 61440,
                        "firstRecord" : "1:1037c30",
                        "lastRecord" : "1:103e4f0"
                },
                {
                        "loc" : "1:104e000",
                        "xnext" : "1:108a000",
                        "xprev" : "1:1036000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 245760,
                        "firstRecord" : "1:104e0b0",
                        "lastRecord" : "1:10556b0"
                },
                {
                        "loc" : "1:108a000",
                        "xnext" : "1:117a000",
                        "xprev" : "1:104e000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 983040,
                        "firstRecord" : "1:108a0b0",
                        "lastRecord" : "1:109a9b0"
                },
                {
                        "loc" : "1:117a000",
                        "xnext" : "1:155e000",
                        "xprev" : "1:108a000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 3932160,
                        "firstRecord" : "1:117a0b0",
                        "lastRecord" : "1:13739f0"
                },
                {
                        "loc" : "1:155e000",
                        "xnext" : "1:24ee000",
                        "xprev" : "1:117a000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 15728640,
                        "firstRecord" : "1:155e0b0",
                        "lastRecord" : "1:1bbe4f0"
                },
                {
                        "loc" : "1:24ee000",
                        "xnext" : "1:392e000",
                        "xprev" : "1:155e000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 21233664,
                        "firstRecord" : "1:24ee8b0",
                        "lastRecord" : "1:2b485b0"
                },
                {
                        "loc" : "1:392e000",
                        "xnext" : "1:56c5000",
                        "xprev" : "1:24ee000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 28667904,
                        "firstRecord" : "1:392e0b0",
                        "lastRecord" : "1:450dd30"
                },
                {
                        "loc" : "1:56c5000",
                        "xnext" : "2:2000",
                        "xprev" : "1:392e000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 38703104,
                        "firstRecord" : "1:56c50b0",
                        "lastRecord" : "1:617c0b0"
                },
                {
                        "loc" : "2:2000",
                        "xnext" : "2:3ad7000",
                        "xprev" : "1:56c5000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 52252672,
                        "firstRecord" : "2:20b0",
                        "lastRecord" : "2:188ac30"
                },
                {
                        "loc" : "2:3ad7000",
                        "xnext" : "2:7e1d000",
                        "xprev" : "2:2000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 70541312,
                        "firstRecord" : "2:3ad7470",
                        "lastRecord" : "2:66b8af0"
                },
                {
                        "loc" : "2:7e1d000",
                        "xnext" : "3:2000",
                        "xprev" : "2:3ad7000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 95232000,
                        "firstRecord" : "2:7e1d0b0",
                        "lastRecord" : "2:be8a2b0"
                },
                {
                        "loc" : "3:2000",
                        "xnext" : "3:dd21000",
                        "xprev" : "2:7e1d000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 128565248,
                        "firstRecord" : "3:20b0",
                        "lastRecord" : "3:63eb670"
                },
                {
                        "loc" : "3:dd21000",
                        "xnext" : "4:2000",
                        "xprev" : "3:2000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 173563904,
                        "firstRecord" : "3:dd210b0",
                        "lastRecord" : "3:12fccc30"
                },
                {
                        "loc" : "4:2000",
                        "xnext" : "null",
                        "xprev" : "3:dd21000",
                        "nsdiag" : "ttlsa_com.posts",
                        "size" : 234311680,
                        "firstRecord" : "4:20b0",
                        "lastRecord" : "4:7bec3b0"
                }
        ],
        "datasize" : 614217440,
        "nrecords" : 305603,
        "lastExtentSize" : 234311680,
        "padding" : 1.0000000000221079,
        "firstExtentDetails" : {
                "loc" : "1:1036000",
                "xnext" : "1:104e000",
                "xprev" : "null",
                "nsdiag" : "ttlsa_com.posts",
                "size" : 61440,
                "firstRecord" : "1:1037c30",
                "lastRecord" : "1:103e4f0"
        },
        "lastExtentDetails" : {
                "loc" : "4:2000",
                "xnext" : "null",
                "xprev" : "3:dd21000",
                "nsdiag" : "ttlsa_com.posts",
                "size" : 234311680,
                "firstRecord" : "4:20b0",
                "lastRecord" : "4:7bec3b0"
        },
        "objectsFound" : 305603,
        "invalidObjects" : 0,
        "bytesWithHeaders" : 619107088,
        "bytesWithoutHeaders" : 614217440,
        "deletedCount" : 125358,
        "deletedSize" : 244912976,
        "nIndexes" : 9,
        "keysPerIndex" : {
                "ttlsa_com.posts.$_id_" : 305603,
                "ttlsa_com.posts.$index_doctorSn" : 305603,
                "ttlsa_com.posts.$index_doctorUid" : 305603,
                "ttlsa_com.posts.$index_hosDeptId" : 305603,
                "ttlsa_com.posts.$index_hospitalId" : 305603,
                "ttlsa_com.posts.$doctorNumberList_1_doctorOrderId_-1" : 305924,
                "ttlsa_com.posts.$cityId_1_displayStatus_1" : 305603,
                "ttlsa_com.posts.$standardDeptId_1_displayStatus_1" : 305603,
                "ttlsa_com.posts.$doctorCode_1" : 305603
        },
        "valid" : true,
        "errors" : [ ],
        "ok" : 1
}
在上面输出底部,有个"valid" : true 说明没有损坏,如果不是,会找到一些损坏的细节。大部分输出是描述集合内部的结构,对于调试不是特别有用的。 只能检测集合,不能检测索引。 如果出现无效的BSONbj,通常就是损坏了。最糟糕的是出现pdfile,pdfile基本上是mongodb的数据存储核心,几乎可以判断数据文件已经损坏了。 如果出现损坏,会看到下面的日志信息: Tue Dec 20 01:12:09 [initandlisten] Assertion: 10334: Invalid BSONObj size: 285213831 (0x87040011) first element: _id: ObjectId('4e5efa454b4ae20fa6000013') 如果第一个元素显示的是垃圾,不需要做什么。如果第一个元素是可见的,可以移除损坏的文档。如: > db.remove({_id: ObjectId('4e5efa454b4ae20fa6000013')}) 如果损坏并不局限于该文档,这种技术可能无法工作,你仍然需要进行修复。

3. 复制的持久性

复制集一个写可被回滚,直到它被写入到一个大多数的集合中。 > db.runCommand({"getLastError" : 1, "j" : true, "w" : "majority"}) 只能保证primary写入已经持久化,secondary未必持久化。
推荐阅读
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • MongoDB的核心特性与架构解析
    本文深入探讨了MongoDB的核心特性,包括其强大的查询语言、灵活的文档模型以及高效的索引机制。此外,还详细介绍了MongoDB的体系结构,解释了其文档、集合和数据库的层次关系,并对比了MongoDB与传统关系型数据库(如MySQL)的逻辑结构。 ... [详细]
  • Mongoose 5.12.10 发布:MongoDB 异步对象模型工具的新特性与修复
    Mongoose 是一款专为异步环境设计的 MongoDB 对象模型工具,支持 Promise 和回调函数。最新版本 Mongoose 5.12.10 带来了多项修复和改进,包括查询选项中的默认值设置、嵌入式判别器填充、以及 TypeScript 定义文件的优化。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文介绍了如何利用MongoDB的$exists操作符在Java应用程序中检查特定字段是否存在于文档中,包括示例代码和解释。 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • 本文将介绍如何利用Python爬虫技术抓取国内主流在线学习平台的数据,并以51CTO学院为例,进行详细的技术解析和实践操作。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
  • 本文详细介绍了如何在MongoDB中创建全文索引及其使用方法。全文索引允许用户通过部分匹配的方式快速搜索文档中的文本内容,但需注意的是,每个集合仅能创建一个全文索引。 ... [详细]
  • 多键索引(MultiKey Indexes)是在包含数组类型字段上创建的特殊索引,旨在优化对数组元素的查询性能。本文将通过实例介绍如何在MongoDB中创建和使用多键索引。 ... [详细]
  • ODBC介绍:开放式数据库连接详解
    本文详细介绍了ODBC(开放式数据库连接),这是一种允许应用程序访问多种数据库系统的标准API。自1992年由微软与Simba合作推出以来,ODBC已成为跨平台数据访问的重要标准。 ... [详细]
  • 利用GitHub热门资源,成功斩获阿里、京东、腾讯三巨头Offer
    Spring框架作为Java生态系统中的重要组成部分,因其强大的功能和灵活的扩展性,被广泛应用于各种规模的企业级应用开发中。本文将通过一份在GitHub上获得极高评价的Spring全家桶文档,探讨如何掌握Spring框架及其相关技术,助力职业发展。 ... [详细]
author-avatar
南非酋长
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有