Linux下shell脚本实现mongodb定时自动备份
时间:2019-11-21
本文章向大家介绍Linux下shell脚本实现mongodb定时自动备份,主要包括Linux下shell脚本实现mongodb定时自动备份使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
1、创建备份目录
[root@localhost data]# mkdir -p /data/backup/mongo/mongodb_bak_tmp
[root@localhost data]# mkdir -p /data/backup/mongo/mongodb_bak_path
2、创建MongoDB备份shell脚本
#!/bin/bash # @Author: Tse先生 # @Create date: 2019-11-21 # @full backup MongoDB #mongodump命令路径 DUMP=/usr/local/mongodb/bin/mongodump #tar备份包临时备份目录,这个tar包最好定时传到本地存储做备份 OUT_DIR=/data/backup/mongo/mongodb_bak_tmp #完整备份目录路径 TAR_DIR=/data/backup/mongo/mongodb_bak_path #获取当前系统时间 DATE=`date +%Y_%m_%d_%H_%M` #数据库账号 DB_USER=root #数据库密码 DB_PASS=123456 #DAYS=15代表删除15天前的备份,即只保留近15天的备份 DAYS=15 #最终保存的数据库备份文件 TAR_BAK="mongodb_bak_$DATE.tar.gz" cd $OUT_DIR #rm -rf $OUT_DIR/* mkdir -p $OUT_DIR/$DATE #备份全部数据库 $DUMP -h 127.0.0.1:3717 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE #压缩为.tar.gz格式 tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #删除15天前的备份文件 find $TAR_DIR/ -mtime +$DAYS -delete #删除tar备份包10天前的备份文件 find $OUT_DIR/ -mtime +10 -name "*.tar.gz" -exec rm -rf {} \; exit
3、添加文件为可执行权限
[root@localhost script]# chmod +x mongodbfullbackup.sh
4、添加定时计划任务(设置每天晚上3点定时完整备份)
[root@localhost script]# crontab -e #每天凌晨3点开始执行MongoDB完整备份脚本 0 3 * * * sh /data/script/mongodbfullbackup.sh >/dev/null 2>&1
关于需要修改crontab的定时任务时间的,可以参考博主另外一篇随笔文章说明:
https://www.cnblogs.com/Sungeek/p/9561833.html
5、MongoDB数据库恢复说明
#恢复单个库: /usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 123456 --drop --stopOnError --db local /tmp/2019_11_21_14_57/local #恢复所有库: /usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 3717 --authenticationDatabase admin --username root --password 123456 --drop --stopOnError /tmp/2019_11_21_14_57
参数说明:
-
--authenticationDatabase admin:验证库,也就验证你账号密码的
-
--drop:恢复数据之前删除原来的数据,避免数据重复
-
--stopOnError:恢复时候遇到错误就停止
-
--db:恢复单个库的时候,后面加库名
原文地址:https://www.cnblogs.com/Sungeek/p/11904825.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 跳表
- 浅谈AQS
- linux进程调度
- 696. 计数二进制子串 Krains 2020-08-10 09:42:23 字符串
- 给你的热图挑选一个合适的渐变色
- 网易云解锁灰色音乐
- AndroidStdio1_4
- 130. 被围绕的区域 Krains 2020-08-11 10:50:01 并查集DFS
- scRNA-seq Clustering(二)
- Apache-Hive 使用MySQL存储Hive的元数据
- 使用TensorFlow创建能够图像重建的自编码器模型
- Qt音视频开发9-ffmpeg录像存储
- AntDesignPro使用electron构建桌面应用
- 跨域资源共享
- AndroidStdio1_3