当前位置: 首页 > article >正文

mongodb 按条件进行备份和恢复

在宝塔面板环境下,可以在定时任务设置备份mongodb
但是存在缺陷,mongodb如果存储日志,一定时间后会特别巨大,全量备份会导致服务器卡死并很快耗尽磁盘空间,按一定的条件对进行,按天备份数据是必须的。我们用过自己编写shell脚本来实现。

sudo -u root #!/bin/bash
now=$(date +%Y-%m-%d)
#yesterday=2024-05-15
yesterday=$(date -d "yesterday" +"%Y-%m-%d")
whereday="{\"day\":\"$yesterday\"}"
dir=/www/backup/database/mongodb/table_day_backup/$yesterday
if [ ! -d "$dir" ]; then
    mkdir -p $dir
fi
cd $dir

echo "当前日期是: $whereday -> "
source  /www/backup/database/mongodb/.env

mongodump --host $MONGO_DB_HOST --port $MONGO_DB_PORT \
          --username $MONGO_DB_USERNAME --password $MONGO_DB_PASSWORD \
          --db ad_db --collection  production_websocket_client_logs \
          --query  $whereday \
          --out  $dir 
zip -r $yesterday'.zip'  ./* 

首先在.env文件里面指定mongdb的链接信息

--db ad_db   指定备份的数据库
--collection  websocket_client   指定备份发集合
--query  $whereday    这里指定筛选数据的条件是 按天
--out  $dir   指定备份文件输出的目录

这样我们就实现了对库下的一个集合,按天进行备份。
如果某一天数据丢失需要进行还原
 

sudo -u root #!/bin/bash

source  /www/backup/database/mongodb/.env
day=2024-05-15
dir=/www/backup/database/mongodb/table_day_backup/$day/audi/production_websocket_client_logs.bson
echo $dir

mongorestore  --host $MONGO_DB_HOST --port $MONGO_DB_PORT \
              --username $MONGO_DB_USERNAME --password $MONGO_DB_PASSWORD \
              --db ad_db --collection  back_websocket_client $dir 


http://www.kler.cn/a/377124.html

相关文章:

  • TSN:工业通信的未来
  • Doris安装部署
  • 自定义luacheck校验规则
  • 深度学习——神经网络中前向传播、反向传播与梯度计算原理
  • “进制转换”公式大集合
  • Microsoft word@【标题样式】应用不生效(主要表现为在导航窗格不显示)
  • Windows版 nginx安装,启动,目录解析,常用命令
  • 单调队列—————力扣239题
  • C++11标准模板(STL)- 常用数学函数 - 浮点数操作函数 - 检查给定数是否具有有限值(std::isfinite)
  • 从三方云服务器将数据迁移至本地,如何保障安全高效?
  • solidity中的继承
  • 质数的小游戏~(牛客,cf)
  • 《机器人SLAM导航核心技术与实战》第1季:第10章_其他SLAM系统
  • 【VUE+DRF】案例升级
  • 如何在Oracle数据库中获取版本信息
  • es拼音分词器(仅供自己参考)
  • 前端react常见面试题目(basic)
  • 树莓派开发相关知识七 -串口数码管
  • 从0开始学统计-什么是中心极限定理
  • [perl] 数组与哈希
  • 【Linux】IPC进程间通信:并发编程实战指南(一)
  • 纯前端生成PDF(jsPDF)并下载保存或上传到OSS
  • 提升当当网数据爬取效率:代理IP并发抓取技术
  • [Redis] Redis事务
  • Linux内核与用户空间
  • 问:Redis如何做到原子性?