• mongodump备份数据


    使用mongodump备份数据库,以下是备份脚本。可以用 which -a mongodump 查看PATH的位置。

    把脚本保存为backup.sh, {{ mongodump_path }} 换成你的mongodump的PATH位置,修改dbHost、dbPort、dbName、dbUsername、dbPassword,增加可执行权限:  chmod a+x backup.sh ,然后执行脚本:  ./backup.sh 

     1 #!/bin/sh 
     2 #备份Mongo 数据库:
     3 echo "1.初始化..."
     4 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:{{ mongodump_path }}
     5 export PATH 
     6 
     7 #数据库
     8 dbHost="127.0.0.1"
     9 dbPort=27017
    10 dbName=""
    11 dbUsername=""
    12 dbPassword=""
    13 
    14 #备份目录
    15 bakDir="`pwd`/db_backup"
    16 timeStr="`date +%Y%m%d`"
    17 fileName=$dbName"_${timeStr}.tar"
    18 realDbBakDir=$bakDir/$timeStr
    19 
    20 if [ ! -x "$bakDir" ];then
    21 mkdir $bakDir
    22 fi
    23 cd $bakdir
    24 echo "备份的数据库为:" $dbName
    25 echo "备份目录为:" $bakDir
    26 echo $dbName "数据库备份文件目录为:" $realDbBakDir
    27 echo "2.备份开始:"
    28 mongodump2 -h $dbHost:$dbPort -u $dbUsername -p $dbPassword  --authenticationDatabase $dbName -d $dbName -o $realDbBakDir
    29 echo "3.备份结束,开始打包"
    30 for((i=1;i<10;i++))
    31 do
    32    echo "当前等待时间" $i ""
    33    sleep 1
    34 done
    35 echo "备份文件:" $realDbBakDir/$dbName/$fileName
    36 tar -czvf $realDbBakDir/$fileName $realDbBakDir/$dbName/
    37 echo "4.打包完成,开始scp上传"
    38 #scp $realDbBakDir/$fileName  root@xxxx
    39 echo "5.上传成功"
    40 echo "备份成功日志`date`" >> $realDbBakDir/bak.log

    如果不打包,可以把29~39行注释掉。

    mongodump参数解析:(可以用mongodump --help查看)

    • -h:mongodb连接的host和port;用 --host <mongodb_host> --port <port> 也是相同的
    • -u:用户名(--username)
    • -p:密码(--password)
    • --authenticationDatabase:认证数据库
    • -d:指定数据库名称
    • -c:指定集合名称
    • -o:指明要导出的文件名
    • -q:指明导出数据时的查询条件
  • 相关阅读:
    第 2 章 OpenStack 架构
    第 2 章 OpenStack 架构
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
    第 1 章 虚拟化
  • 原文地址:https://www.cnblogs.com/shengmading/p/14626760.html
Copyright © 2020-2023  润新知