Table des matières
1. 载体崩溃" >1. 载体崩溃
2. ?检查损坏" >2. ?检查损坏
3. 复制的持久性" >3. 复制的持久性
Maison base de données tutoriel mysql mongodb 持久化(3)

mongodb 持久化(3)

Jun 07, 2016 pm 04:36 PM
mongodb Apparaître 崩溃 持久化 文件 硬件 问题

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
}
Copier après la connexion
在上面输出底部,有个"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未必持久化。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

A quoi sert net4.0 A quoi sert net4.0 May 10, 2024 am 01:09 AM

.NET 4.0 est utilisé pour créer une variété d'applications et offre aux développeurs d'applications des fonctionnalités riches, notamment : programmation orientée objet, flexibilité, architecture puissante, intégration du cloud computing, optimisation des performances, bibliothèques étendues, sécurité, évolutivité, accès aux données et mobile. soutien au développement.

Comment configurer l'expansion automatique de MongoDB sur Debian Comment configurer l'expansion automatique de MongoDB sur Debian Apr 02, 2025 am 07:36 AM

Cet article présente comment configurer MongoDB sur Debian System pour réaliser une expansion automatique. Les étapes principales incluent la configuration de l'ensemble de répliques MongoDB et de la surveillance de l'espace disque. 1. Installation de MongoDB Tout d'abord, assurez-vous que MongoDB est installé sur le système Debian. Installez à l'aide de la commande suivante: SudoaptupDaSudoaptInstall-myongoDB-Org 2. Configuration de la réplique MongoDB Ensemble de répliques MongoDB assure la haute disponibilité et la redondance des données, ce qui est la base de la réalisation d'une expansion de capacité automatique. Démarrer le service MongoDB: Sudosystemctlstartmongodsudosys

Comment assurer la haute disponibilité de MongoDB sur Debian Comment assurer la haute disponibilité de MongoDB sur Debian Apr 02, 2025 am 07:21 AM

Cet article décrit comment construire une base de données MongoDB hautement disponible sur un système Debian. Nous explorerons plusieurs façons de garantir que la sécurité des données et les services continueront de fonctionner. Stratégie clé: réplicaset: réplicaset: Utilisez des répliques pour obtenir la redondance des données et le basculement automatique. Lorsqu'un nœud maître échoue, l'ensemble de répliques élise automatiquement un nouveau nœud maître pour assurer la disponibilité continue du service. Sauvegarde et récupération des données: utilisez régulièrement la commande Mongodump pour sauvegarder la base de données et formuler des stratégies de récupération efficaces pour faire face au risque de perte de données. Surveillance et alarmes: déploier les outils de surveillance (tels que Prometheus, Grafana) pour surveiller l'état de course de MongoDB en temps réel, et

Comment lire et écrire des fichiers simultanément dans Golang ? Comment lire et écrire des fichiers simultanément dans Golang ? Jun 05, 2024 pm 06:12 PM

Lecture simultanée de fichiers : créez une goroutine pour lire les blocs de données simultanément et utilisez la coordination de la communication par pipeline ; Écriture simultanée de fichiers : utilisez la goroutine pour écrire des données et utilisez un mutex pour protéger l'opération d'écriture.

Meilleures pratiques pour la modélisation et la persistance des données dans les frameworks PHP Meilleures pratiques pour la modélisation et la persistance des données dans les frameworks PHP Jun 04, 2024 pm 01:43 PM

Dans le framework PHP, les meilleures pratiques en matière de modélisation de données incluent l'utilisation de types de données appropriés, l'application de contraintes, la prise en compte des index et l'utilisation de diagrammes ER. Les meilleures pratiques en matière de persistance incluent l'utilisation d'outils ORM, de DAO, la gestion des transactions et l'application de la validation des données. Le respect de ces pratiques garantit un code maintenable, efficace et évolutif et maintient l’intégrité et la fiabilité des données.

Comparaison technique du middleware de persistance dans le framework Java Comparaison technique du middleware de persistance dans le framework Java Jun 03, 2024 pm 01:24 PM

Comparaison des technologies middleware de persistance Java : JDBC : évolutif et efficace, mais verbeux et sujet aux erreurs. Mise en veille prolongée : facile à utiliser, offre des fonctionnalités avancées, mais peut être lente. JPA : standardisé et compatible avec JavaEE, mais comporte davantage de restrictions de configuration. Le choix de la bonne technologie dépend des besoins de l'application : JDBC se concentre sur le contrôle et l'évolutivité, Hibernate/JPA se concentre sur l'efficacité et la fonctionnalité du développement.

Mise à jour majeure de Pi Coin: PI Bank arrive! Mise à jour majeure de Pi Coin: PI Bank arrive! Mar 03, 2025 pm 06:18 PM

Pinetwork est sur le point de lancer Pibank, une plate-forme bancaire mobile révolutionnaire! Pinetwork a publié aujourd'hui une mise à jour majeure sur Elmahrosa (face) Pimisrbank, appelée Pibank, qui intègre parfaitement les services bancaires traditionnels avec des fonctions de crypto-monnaie de pignon (prend en charge l'échange entre les Fiat Currency tels que le Dollar, l'Euro, Usdt, Usdc, Ripiah avec des crypto-monnaies. Quel est le charme de Pibank? Découvrons! Les principales fonctions de Pibank: gestion unique des comptes bancaires et des actifs de crypto-monnaie. Soutenez les transactions en temps réel et adoptez les biospécies

Qu'est-ce qu'un crash de crypto-monnaie? Quelles sont les stratégies pour les débutants pour faire face aux accidents de crypto-monnaie? Qu'est-ce qu'un crash de crypto-monnaie? Quelles sont les stratégies pour les débutants pour faire face aux accidents de crypto-monnaie? Mar 03, 2025 pm 09:03 PM

Les stratégies de volatilité et d'adaptation du marché des crypto-monnaies sont connues pour leur volatilité drastique, et les investisseurs sont souvent confrontés au risque d'une forte baisse de la valeur des actifs. Cet article explorera les raisons de l'effondrement du marché des crypto-monnaies et fournira des stratégies d'adaptation pour aider les investisseurs à rester rationnels et à réduire les risques pendant les troubles du marché. Quel est l'effondrement du marché des crypto-monnaies? La forte fluctuation des prix des crypto-monnaies à court terme est un effondrement du marché. Ces événements peuvent être déclenchés par une variété de facteurs, tels que: les changements dans les politiques réglementaires, les changements dans le sentiment du marché, les fluctuations de l'environnement macroéconomique, etc. Lorsque des événements majeurs se produisent, la vente de panique exacerbe souvent la baisse du marché. Le manque de réglementation sur le marché des crypto-monnaies le rend également plus susceptible de manipulation et de spéculation. Changements réglementaires: les nouvelles politiques réglementaires peuvent entraîner une incertitude accrue des investisseurs et déclencher une vente.

See all articles