zoukankan      html  css  js  c++  java
  • 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:恢复单个库的时候,后面加库名
  • 相关阅读:
    淘宝返回顶部
    混合布局
    css布局使用定位和margin
    选项卡 js操作
    ul li 好友列表
    js添加删除元素
    下拉列表的简单操作
    python笔记
    kali linux 虚拟机网卡未启动
    python 重新安装pip(python2和python3共存以及pip共存)
  • 原文地址:https://www.cnblogs.com/Sungeek/p/11904825.html
Copyright © 2011-2022 走看看