侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 461 篇文章
  • 累计创建 184 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MongoDB Cluster 新建、备份、删除、还原数据库操作

WinJay
2024-09-27 / 0 评论 / 0 点赞 / 22 阅读 / 5369 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

MongoDB Cluster 新建、备份、删除、还原数据库操作

image-20240927105810511

前言

  • 所有操作都要在主节点执行,否则会由于权限不足导致失败!

image-20240927145747267

新建数据库

  • MongoDB 新建库后,由于是空库,在Navicat中不显示数据库名,我们需要先insert一条数据后,让他不为空,即可显示出来。
use New-Database
db
db.check.insertOne({"ClientName":"WinJay"});

以下是关于如何备份、清空和还原 MongoDB 集群中 processtask 数据库的步骤。

备份 MongoDB 数据库

你可以使用 mongodump 命令备份 MongoDB 数据库。这个工具会将你的数据库导出到 BSON 文件中。

以下是备份 processtask 数据库的命令示例:

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

这将备份 processtask 数据库到 /data/backup 目录中。
image-20240927143659120

清空 MongoDB 数据库

要清空一个 MongoDB 数据库,你可以使用 mongo shell 来删除所有集合。以下是清空 processtask 数据库的命令示例:

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 命令还原之前备份的数据。以下是还原 processtask 数据库的命令示例:

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 目录中还原 processtask 数据库,并在还原之前删除目标数据库中的现有数据。
image-20240927144210459

注意事项

确保备份和还原时只在一个节点(例如 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

这会将 processtask 数据库的备份文件保存到 /data/backup 目录下。

清空数据库

清空数据库

进入 MongoDB Shell:

docker exec -it MongoDB-Cluster-RS01 mongosh -u root -p P@88W0rd --authenticationDatabase admin

image-20240927143846909
在 MongoDB Shell 中,切换到目标数据库并清空它们:

use process
db.dropDatabase()
   
use task
db.dropDatabase()

image-20240927144017848

还原数据库

使用 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

image-20240927144210459

通过上述步骤,你可以完成 MongoDB 数据库的备份、清空和还原操作。

注意事项

  • 数据一致性:在进行备份和还原操作时,确保数据库处于一致状态(如停止写操作),以避免数据不一致问题。
  • 文件权限:备份和还原文件的目录权限需要确保 MongoDB 进程能够读写。
  • 网络配置:在集群环境下,备份和还原操作最好在主节点上进行,确保操作的有效性。
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区