Inhaltsverzeichnis
1. 载体崩溃" >1. 载体崩溃
2. ?检查损坏" >2. ?检查损坏
3. 复制的持久性" >3. 复制的持久性
Heim Datenbank MySQL-Tutorial mongodb 持久化(3)

mongodb 持久化(3)

Jun 07, 2016 pm 04:36 PM
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
}
Nach dem Login kopieren
在上面输出底部,有个"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未必持久化。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

Wie lese und schreibe ich Dateien gleichzeitig in Golang? Wie lese und schreibe ich Dateien gleichzeitig in Golang? Jun 05, 2024 pm 06:12 PM

Gleichzeitiges Lesen von Dateien: Erstellen Sie eine Goroutine, um Datenblöcke gleichzeitig zu lesen, und verwenden Sie die Pipeline-Kommunikationskoordination. Gleichzeitiges Schreiben von Dateien: Verwenden Sie Goroutine, um Daten zu schreiben, und verwenden Sie einen Mutex, um den Schreibvorgang zu schützen.

Best Practices für Datenmodellierung und -persistenz in PHP-Frameworks Best Practices für Datenmodellierung und -persistenz in PHP-Frameworks Jun 04, 2024 pm 01:43 PM

Zu den Best Practices für die Datenmodellierung im PHP-Framework gehören die Verwendung geeigneter Datentypen, die Anwendung von Einschränkungen, die Berücksichtigung von Indizes und die Verwendung von ER-Diagrammen. Zu den Best Practices für die Persistenz gehören die Verwendung von ORM-Tools, DAOs, die Abwicklung von Transaktionen und die Durchsetzung der Datenvalidierung. Die Einhaltung dieser Vorgehensweisen stellt wartbaren, effizienten und skalierbaren Code sicher und sorgt für die Datenintegrität und -zuverlässigkeit.

Technischer Vergleich der Persistenz-Middleware im Java-Framework Technischer Vergleich der Persistenz-Middleware im Java-Framework Jun 03, 2024 pm 01:24 PM

Vergleich der Java-Persistenz-Middleware-Technologie: JDBC: skalierbar und effizient, aber ausführlich und fehleranfällig. Ruhezustand: Einfach zu bedienen, bietet erweiterte Funktionen, kann jedoch langsam sein. JPA: Standardisiert und kompatibel mit JavaEE, weist jedoch mehr Konfigurationseinschränkungen auf. Die Wahl der richtigen Technologie hängt von den Anwendungsanforderungen ab: JDBC konzentriert sich auf Kontrolle und Skalierbarkeit, Hibernate/JPA konzentriert sich auf Entwicklungseffizienz und Funktionalität.

Großes Update von Pi Coin: Die PI Bank kommt! Großes Update von Pi Coin: Die PI Bank kommt! Mar 03, 2025 pm 06:18 PM

Pinetwork startet Pibank, eine revolutionäre Mobile -Banking -Plattform! PiNetwork today released a major update on Elmahrosa (Face) PIMISRBank, referred to as PiBank, which perfectly integrates traditional banking services with PiNetwork cryptocurrency functions to realize the atomic exchange of fiat currencies and cryptocurrencies (supports the swap between fiat currencies such as the US dollar, euro, and Indonesian rupiah with cryptocurrencies such as PiCoin, USDT, and USDC). Was ist der Charme von Pibank? Lass uns herausfinden! Die Hauptfunktionen von Pibank: One-Stop-Management von Bankkonten und Kryptowährungsvermögen. Unterstützen Sie Echtzeittransaktionen und übernehmen Sie Biospezies

Was ist ein Cryptocurrency Crash? Was sind die Strategien für Anfänger, um mit Cryptocurrency Crashs umzugehen? Was ist ein Cryptocurrency Crash? Was sind die Strategien für Anfänger, um mit Cryptocurrency Crashs umzugehen? Mar 03, 2025 pm 09:03 PM

Kryptowährungsmarkt Volatilität und Bewältigungsstrategien Kryptowährungsmärkte sind für ihre drastische Volatilität bekannt, und die Anleger stehen häufig dem Risiko eines starken Rückgangs des Vermögenswerts aus. In diesem Artikel werden die Gründe für den Zusammenbruch des Kryptowährungsmarktes untersucht und Bewältigungsstrategien bereitgestellt, um Anlegern dabei zu helfen, rational zu bleiben und Risiken während des Marktes zu verringern. Was ist der Zusammenbruch des Kryptowährungsmarktes? Die scharfe Schwankung der Kryptowährungspreise kurzfristig ist ein Marktkollaps. Solche Ereignisse können durch eine Vielzahl von Faktoren ausgelöst werden, wie z. Wenn Großereignisse auftreten, verschärft der Marktverkauf häufig den Markt. Der Mangel an Regulierung auf dem Kryptowährungsmarkt macht es auch anfälliger für Manipulation und Spekulation. Regulatorische Änderungen: Neue Regulierungsrichtlinien können zu einer erhöhten Unsicherheit der Anleger führen und einen Ausverkauf auslösen.

See all articles