子嘉的博客 子嘉的博客
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

高子嘉

没有比脚更长的路,没有比人更高的山
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • 博客搭建

  • 服务端

  • distributed

  • golang

  • db

    • mysql

    • mongodb

      • mongodb
      • mongodb restore
        • 备份
        • 恢复
        • 无密码启动
        • 注意事项
    • redis
  • docker

  • linux

  • 技术
  • db
  • mongodb
子嘉
2025-03-06
目录

mongodb restore


# MongoDB Restore

当自建数据库时,需要备份和恢复数据库,这里将对 MongoDB 的备份和恢复进行介绍。对于备份和回复可借助gpt快速完成。

# 备份

使用mongodump命令备份数据库,可参照官方文档 (opens new window)

#!/bin/bash

# 设置 MongoDB 相关变量
DB_HOST="127.0.0.1"
DB_PORT="27017"
DB_NAME="school"  # 替换为你的数据库名称
BACKUP_DIR="/var/backups/mongo_school"  # 替换为你的备份目录
DATE=$(date +"%Y%m%d_%H%M%S")
USERNAME="hello"
PASSWORD="world"

# 创建备份文件夹
mkdir -p $BACKUP_DIR

# 执行 mongodump 命令,生成备份
mongodump --username $USERNAME --password $PASSWORD --authenticationDatabase=admin  --host $DB_HOST --port $DB_PORT --db $DB_NAME --out $BACKUP_DIR/$DB_NAME_$DATE

# 打包备份文件为 tar.gz 压缩包
tar -zcvf $BACKUP_DIR/mongodb_backup_$DATE.tar.gz -C $BACKUP_DIR $DB_NAME_$DATE

# 删除未压缩的备份文件夹
rm -rf $BACKUP_DIR/$DB_NAME_$DATE

# 上传备份文件到华为云 OBS
OBS_BUCKET="ziga"  # 替换为你的OBS桶名称
OBS_DIR="backup/mongo_school"           # 替换为你希望存储的 OBS 路径
/root/download/obsutil_linux_amd64_5.5.12/obsutil cp $BACKUP_DIR/mongodb_backup_$DATE.tar.gz obs://$OBS_BUCKET/$OBS_DIR/


# 删除旧备份文件,只保留最近 10 个文件
cd $BACKUP_DIR
ls -t mongodb_backup_*.tar.gz | sed -e '1,10d' | xargs -d '\n' rm -f

# 输出备份完成信息
echo "MongoDB 数据备份已完成并上传至华为云 OBS: $OBS_BUCKET/$OBS_DIR/mongodb_backup_$DATE.tar.gz"


 curl 'https://oapi.dingtalk.com/robot/send?access_token=ca462bb7sdfasd767asdxchj789' \
          -H 'Content-Type: application/json' \
          -d '{"msgtype": "text","text": {"content":"【通知】mongodb 数据库备份完成"}}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

# 恢复

在没有密码的情况下,可以直接恢复数据库。可参照官方文档 (opens new window)

mongore dump_folder
1

# 无密码启动

避免记忆密码,可以配置不开启授权,从而无密码启动;启动完成后即可无密码恢复,恢复完成后再开启授权。

通常,mongo使用systemctl启动,可查看对应的service文件,找到配置文件。

例如我安装的mongo配置文件路径为:/etc/mongod.conf

对应的service文件为:/usr/lib/systemd/system/mongod.service

# 注意事项

当mongo使用命令行启动,而不是systemctl启动时,可能使用root用户启动,从而导致生成了root权限的mongo相关文件,继而再使用systemctl启动时,mongo无法启动

编辑 (opens new window)
#mongodb#restore
上次更新: 2025/03/08, 12:51:50
mongodb
redis

← mongodb redis→

最近更新
01
pytesseract
02-28
02
consul
02-24
03
dump
01-17
更多文章>
Theme by Vdoing | Copyright © 2022-2025 子嘉 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式