Mongodbのバックアップと復元
論理バックアップにはMongodumpを使用して、指定されたデータベース、コレクション、圧縮、アーカイブをサポートします。 2。Mongorestoreを使用してデータを復元し、元のデータをクリアするか、ターゲットの名前を - ドロップで変更できます。 3.効率的な物理的バックアップを実現するために、生産環境にファイルシステムスナップショット(EBS/LVMなど)を推奨します。 4。MongodbAtlasユーザーは、連続クラウドバックアップなどのネイティブツールを有効にする必要があります。 5.ベストプラクティスに従ってください:定期的なテスト、オフサイトストレージ、バージョンの命名、監視ログ、ハードコード化された資格情報を回避 - バックアップが信頼性が高く利用可能であることを確認してください。将来的には、現在の将来に設定および検証されている戦略に感謝します。
MongoDBを使用する場合、偶発的な損失、腐敗、またはシステムの障害からデータを保護するために、強固なバックアップと復元戦略を持つことが不可欠です。小さなアプリであろうと大規模な生産システムを管理しているかどうかにかかわらず、MongodBのバックアップを処理して効果的に復元する方法を以下に示します。

✅1。バックアップにmongodump
を使用する(論理バックアップ)
mongodump
、論理バックアップを作成するためのMongoDBの組み込みツールです。BSONファイルとしてデータをエクスポートします。
基本コマンド:

mongodump -uri = "mongodb:// localhost:27017" -out =/path/to/backup/directory
一般的なオプション:
-
--db <dbname>
- 特定のデータベースをバックアップします --collection <collname>
- バックアップ1つのコレクションのみ--gzip
- 出力を圧縮します(スペースを節約します)-
--archive
- ディレクトリ構造の代わりに単一のアーカイブファイルに書き込みます
例(圧縮とアーカイブ付き):

mongodump -uri = "mongodb:// localhost:27017" -gzip -archive = backup-$(date%y-%m-%d).gz
?ヒント:これは、CRONジョブまたは定期的な自動バックアップのためにスケジュールされたタスクを介して実行します。
✅2。Mongorestoreで復元しmongorestore
mongodump
バックアップから復元するには:
基本的な復元:
mongorestore -uri = "mongodb:// localhost:27017"/path/to/backup/directory
アーカイブファイルから:
mongorestore -uri = "mongodb:// localhost:27017" -gzip -archive = backup-2025-04-05.gz
便利なフラグ:
-
--drop
- 復元する前にコレクションをドロップする(クリーンスレート) -
--nsFrom
および--nsTo
- 復元中のデータベース/コレクションの名前を変更します(たとえば、dev_db
からprod_db
に移行します)
✅3。生産用:ファイルシステムのスナップショット(物理バックアップ)を検討してください
WiredTigerを使用してMongoDBを使用しており、スナップショット(LVM、AWS EBS、ZFSなど)をサポートするファイルシステムで実行する場合は、次のことができます。
- 停止します(または
fsyncLock
を使用してディスクにフラッシュします) - スナップショットを取ります
- ロックを解放する(
fsyncUnlock
)
これにより、ポイントインタイムの物理的なバックアップが得られます。これは、大規模なデータセットの論理ダンプよりも高速かつ効率的です。
mongodbが実行されていない場合、またはスナップショット中にロックされた状態にある場合にのみ機能します。
✅4。クラウド&アトラスユーザー:ネイティブツールを使用します
Mongodb Atlasにいる場合は、以下を使用してください。
- 連続クラウドバックアップを備えたクラウドバックアップ(ポイントインタイムリカバリ)
- 自己ホストクラスターのOPSマネージャーまたはクラウドマネージャー
これらのツールは、バックアップスケジューリング、保持ポリシー、およびUIまたはAPIを介して簡単な復元を自動化します。手動のmongodump
は必要ありません。
?ボーナス:ベストプラクティス
- ✅バックアップを定期的にテストする - 開発環境に復元する
- backupsオフサイト(例:S3、クラウドストレージの暗号化)を保存する
- ✅バックアップタイムスタンプを使用します
- backupバックアップログを監視 - 故障が静かに発生します
- connection接続文字列の
.env
または構成ファイルを使用 - ハードコードされた資格情報を避けます
結論:
ほとんどの場合、 mongodump
mongorestore
を使用してください。シンプルで信頼性が高く、ポータブルです。生産規模のシステムについては、ファイルシステムのスナップショットまたはAtlasなどの管理サービスと組み合わせてください。データの損失がバックアッププランがないことに気付かないのを待ってはいけません。
基本的に、それを設定してチェックするだけです - あなたの将来の自己はあなたに感謝します。
以上がMongodbのバックアップと復元の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

UseProperIndexesonQuery、sort、andprojectionfields、abowndexessequalitybforerangefields、andavoidover-dexing;

changeStreamsinmongodbenablereal-timemonitoring ofdatachangesacrosscolsections、databases、ordeployments、clustertoaccesstheoplogを使用する必要があります

MongoDBクエリパフォーマンスボトルネックを正確に見つけるには、説明( "ExecutionStats")を使用します。コアは、TotalDocsexaminedがTotalDocSreturnedよりもはるかに大きいことを確認することです。 2。Collscanは完全なテーブルスキャンを意味し、インデックスを作成する必要があります。 3.スキャンするドキュメントが多すぎる場合、または返信するドキュメントが非常に少ない場合、{status:1、created:-1}など、コンポジットインデックスを使用する必要があります。 4。ExecutionTimemillisは50〜100msを超え、インデックスを最適化する必要があるか、結果セットが制限されています。 5.クエリがindexonlyによって上書きされていることを確認してください:改善に忠実です

TTLインデックスは、期限切れのドキュメントを自動的に削除できます。これは、ログ、セッション、その他の時間のかかるデータに適しています。日付フィールドに基づいて作成する必要があり、expireaftersecondsは時限クリーニングを実装するように設定されており、バックグラウンドタスクが60秒ごとにチェックされ、データが自動的にクリアされるようにします。

node.js、socket.io、mongodbを使用して、チャットアプリケーションを構築します。まず、テクノロジースタックを構築し、ユーザーとメッセージのデータモデルを設計します。マングースを使用してスキーマを定義し、インデックスを作成してクエリ効率を向上させます。次に、socket.ioを介して、ユーザーは部屋に参加し、リアルタイムでメッセージを送信して受信し、履歴メッセージを読み込みます。メッセージを受け取った後、サーバーはそれをMongodbに堆積させ、部屋の他のメンバーにプッシュします。メッセージの履歴と拡張をサポートするために、MongoDBクエリを使用してメッセージを時間ごとにソートし、メッセージを取得し、ページングまたは無限のスクロールと組み合わせてより多くのコンテンツをロードします。 Mongodbatlas Cloud Serviceは自動拡張とバックアップを達成し、必要に応じて期限切れのメッセージを自動的にクリーンアップするためにTTLインデックスを設定することをお勧めします。

designaroundAccesspatternsbyusinging fleximawitemwithemdeddocumentsforporformance;

shardingisessentialforscalingmongodbwhendataex seceex single-servercapacitythroughputlimits、enablinghorizontalscalingbydistributingdataacrossmultipleshards.2.ashardedclusterconsistsofshards(dataStorage)、mongosroters(metrouting)、confighers、andsuntrouts、andsustrouters(quiryrouting)など

効率的なものは、schemadesign、properindexing、andcompression.schemasshortfieldnamesを使用して、在庫を維持するために、効率的なものを採用しました
