侧边栏壁纸
博主头像
WinJay博主等级

博观而约取 厚积而薄发

  • 累计撰写 333 篇文章
  • 累计创建 168 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

MongoDB的备份与恢复

WinJay
2021-05-20 / 0 评论 / 0 点赞 / 316 阅读 / 970 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-12-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

今天早上刚到公司就接到一个系统用户信息异常的问题,简单排查后看到没有用户数据了,随登录查看,发现MongoDB的数据表全空了,

image.png

赶紧进行处理一下。首先对数据库的现状进行备份,备份完成后看到确实是数据都被恶意清除了。
image.png
image.png

幸好之前做的有定时数据库备份,随后进行数据库恢复。

C:\Users\Administrator>cd C:\Program Files\MongoDB\Server\4.2\bin

C:\Program Files\MongoDB\Server\4.2\bin>mongorestore --host 127.0.0.1 --port 27017 --drop -d wechat --dir D:\DB_Bak\001.MongoDB_AutoBackup\wechat_bak_2021052000\wechat

image.png

看到数据库恢复已经完成。然后对比一下数据信息。

问题

image.png

image.png


Windows与Linux 容器化的MongoDB服务登录信息对比:

登录:mongo mongodb://localhost

image.png
image.png

需要处理空帐号及空密码登录问题

还原数据库

1.建立数据库
登录:mongo mongodb://localhost -u admin
image.png
建立数据库:
use wechat-0518;
直接使用use dbname即可,如果数据库存在,则切换,如果不存在,则自动创建。
image.png

2.授权--建立当前数据库下的用户及配置密码
----注意选择相应的数据库名

db.createUser(
  {
    user: "admin",
    pwd: "*******",
    roles: [ { role: "readWrite", db: "wechat-0518" } ]
  }
)

image.png
3.还原

mongorestore -d wechat-0518 /data/db/wechat_bak_20210518/wechat/ -u admin

image.png
image.png

4.删除数据库集合

show collections	#查看所有集合信息
db.tokens.drop()	#删除tokens这个集合

5.删除整个数据库

> use wechat-0519;
switched to db wechat-0519
> db
wechat-0519
> db.dropDatabase();
{ "ok" : 1 }

image.png

0

评论区