MongoDB Cluster 新建、备份、删除、还原数据库操作
前言
- 所有操作都要在主节点执行,否则会由于权限不足导致失败!
新建数据库
- MongoDB 新建库后,由于是空库,在Navicat中不显示数据库名,我们需要先insert一条数据后,让他不为空,即可显示出来。
use New-Database
db
db.check.insertOne({"ClientName":"WinJay"});
以下是关于如何备份、清空和还原 MongoDB 集群中 process
和 task
数据库的步骤。
备份 MongoDB 数据库
你可以使用 mongodump
命令备份 MongoDB 数据库。这个工具会将你的数据库导出到 BSON 文件中。
以下是备份 process
和 task
数据库的命令示例:
docker exec MongoDB-Cluster-RS01 mongodump --username=root --password=P@88W0rd --authenticationDatabase=admin --db=process --out=/data/backup
docker exec MongoDB-Cluster-RS01 mongodump --username=root --password=P@88W0rd --authenticationDatabase=admin --db=task --out=/data/backup
这将备份 process
和 task
数据库到 /data/backup
目录中。
清空 MongoDB 数据库
要清空一个 MongoDB 数据库,你可以使用 mongo
shell 来删除所有集合。以下是清空 process
和 task
数据库的命令示例:
docker exec -it MongoDB-Cluster-RS01 mongosh --username=root --password=P@88W0rd --authenticationDatabase=admin --eval "db.getSiblingDB('process').dropDatabase()"
docker exec -it MongoDB-Cluster-RS01 mongosh --username=root --password=P@88W0rd --authenticationDatabase=admin --eval "db.getSiblingDB('task').dropDatabase()"
还原 MongoDB 数据库
你可以使用 mongorestore
命令还原之前备份的数据。以下是还原 process
和 task
数据库的命令示例:
docker exec MongoDB-Cluster-RS01 mongorestore --username=root --password=P@88W0rd --authenticationDatabase=admin --db=process --drop /data/backup/process
docker exec MongoDB-Cluster-RS01 mongorestore --username=root --password=P@88W0rd --authenticationDatabase=admin --db=task --drop /data/backup/task
这个命令会从 /data/backup
目录中还原 process
和 task
数据库,并在还原之前删除目标数据库中的现有数据。
注意事项
确保备份和还原时只在一个节点(例如 MongoDB-Cluster-RS01
)上执行,以避免数据不一致。
方式二:
备份数据库
使用 mongodump
工具备份数据库:
进入其中一个 MongoDB 容器(例如 MongoDB-Cluster-RS01
):
docker exec -it MongoDB-Cluster-RS01 bash
运行 mongodump
命令进行备份:
mongodump --authenticationDatabase admin -u root -p P@88W0rd --db process --out /data/backup
mongodump --authenticationDatabase admin -u root -p P@88W0rd --db task --out /data/backup
这会将 process
和 task
数据库的备份文件保存到 /data/backup
目录下。
清空数据库
清空数据库:
进入 MongoDB Shell:
docker exec -it MongoDB-Cluster-RS01 mongosh -u root -p P@88W0rd --authenticationDatabase admin
在 MongoDB Shell 中,切换到目标数据库并清空它们:
use process
db.dropDatabase()
use task
db.dropDatabase()
还原数据库
使用 mongorestore
工具还原数据库:
将备份的数据还原到数据库中:
mongorestore --authenticationDatabase admin -u root -p P@88W0rd --db process --dir /data/backup/Res/process
mongorestore --authenticationDatabase admin -u root -p P@88W0rd --db task --dir /data/backup/Res/task
通过上述步骤,你可以完成 MongoDB 数据库的备份、清空和还原操作。
注意事项
- 数据一致性:在进行备份和还原操作时,确保数据库处于一致状态(如停止写操作),以避免数据不一致问题。
- 文件权限:备份和还原文件的目录权限需要确保 MongoDB 进程能够读写。
- 网络配置:在集群环境下,备份和还原操作最好在主节点上进行,确保操作的有效性。
评论区