备份是任何数据库系统中都必不可少的一项工作,它可以帮助我们应对系统故障或数据丢失等问题。MongoDB 作为一款流行的 NoSQL 数据库,在备份方面同样有着自己独特的方法和工具。本文将对 MongoDB 中备份的方法进行探究,介绍常见的备份方式,并提供示例代码及指导意义。
MongoDB 备份概述
MongoDB 数据库的备份通常分为两种方式:物理备份和逻辑备份。物理备份是指直接备份 MongoDB 数据文件,适用于大数据量、较为关键的数据,逻辑备份则是通过 MongoDB 提供的导出命令将数据导出到文档格式的文件中,适用于不太关键的数据和需要对数据进行筛选、转换操作的情况。
MongoDB 备份工具
MongoDB 官方提供了 mongodump 和 mongorestore 两个工具用于备份和还原 MongoDB 数据库。mongodump 工具可以将数据库备份到指定的目录,mongorestore 工具可以从备份目录中恢复数据库。下面分别对这两个工具进行详细介绍。
mongodump
mongodump 工具用于将 MongoDB 数据库备份到指定的目录。它能够备份整个数据库或者指定的集合。使用时可以采用如下命令:
mongodump --host [hostname] --port [portnumber] --db [databasename] [--collection collectionname] --out [backupdir]
其中,--host
参数用于指定 MongoDB 服务器的主机名或 IP 地址,默认为本地主机(localhost);--port
参数用于指定 MongoDB 服务器的端口号,默认为 27017;--db
参数用于指定要备份的数据库名称;--collection
参数用于指定要备份的集合名称,如果不指定则备份整个数据库;--out
参数用于指定备份文件的输出目录。
以下是一个备份名为 mydb
,集合名为 mycollection
的命令示例:
mongodump --host localhost --port 27017 --db mydb --collection mycollection --out /data/backup/
如果备份整个数据库,则无需指定 --collection
参数。
mongorestore
mongorestore 工具用于从指定的目录中恢复 MongoDB 数据库。使用时可以采用如下命令:
mongorestore --host [hostname] --port [portnumber] --db [databasename] [backupdir]
其中,--host
参数用于指定 MongoDB 服务器的主机名或 IP 地址,默认为本地主机(localhost);--port
参数用于指定 MongoDB 服务器的端口号,默认为 27017;--db
参数用于指定备份数据的目标数据库名称;备份目录应该是一个包含实际备份数据的目录,而不是一个包含备份数据的父目录。
以下是一个从备份目录 /data/backup/
中恢复名为 mydb
,集合名为 mycollection
的命令示例:
mongorestore --host localhost --port 27017 --db mydb /data/backup/mydb/mycollection.bson
如果备份整个数据库,则备份目录应该是整个数据库备份的目录。
密码认证情况下的备份
如果 MongoDB 数据库启用了密码认证,那么在备份和还原时需要提供管理员或具有足够权限的用户的用户名和密码。使用时可以采用如下命令:
mongodump --host [hostname] --port [portnumber] --db [databasename] [--collection collectionname] --out [backupdir] --username [username] --password [password] --authenticationDatabase [authdb]
mongorestore --host [hostname] --port [portnumber] --db [databasename] [backupdir] --username [username] --password [password] --authenticationDatabase [authdb]
其中,--username
参数用于指定管理员或具有足够权限的用户的用户名;--password
参数用于指定用户密码;--authenticationDatabase
参数用于指定用于身份验证的数据库,默认为 admin
。
综述
在 MongoDB 中进行数据备份是一项很重要的工作。本文介绍了 MongoDB 备份的两种方式和两个备份工具 mongodump 和 mongorestore 的使用方法,同时针对密码认证情况下的使用给出了详细说明。读者可以根据实际需求参考本文提供的示例代码进行数据备份操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67beb1010c976d473a2d438a