• 数据库定时备份winserver2012篇


    1 序言

    数据是无价的,所以生产环境中定时备份数据库显得尤为重要。备份能防止服务器故障、天灾人祸和人为误操作带来的数据丢失。

    上一篇文章我们说了Linux环境下的数据备份。这一篇就把之前留下的坑给填上了。
    这一篇我们说一说winserver2012环境下如何做好数据库备份?

    工作中虽然大部分生产环境首选服务器是Linux,Linux的性能毋庸置疑。但是也不排除会用的windows server作为服务器的情况

    这里呢还是以这几年工作中接触到的几种常见数据库为例吧。

    • Oracle
    • mysql
    • postgresql
    • mongoDB

    2 任务计划相关知识点介绍

    2.1 任务计划 是什么?

    • 任务计划是Windows操作系统非常强大的一个功能,利用任务计划,我们可以将任何脚本、程序或文档安排在每天、每周、每个月甚至某个特定的时间运行。
    • windows 本身也有一些定时任务
    • 比如通过任务计划可以让QQ在每周五晚上7点准时运行。注意,只有在开机状态任务计划才能起作用。

    2.2 批处理文件

    2.2.1 批处理文件简介

    • 应用于DOS和Windows系统中的一种简化的脚本语言。
    • 批处理文件的扩展名为.bat或.cmd
    • 类似于Unix中的Shell脚本。简单的可以使是逐行书写在命令行中的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程
    • 分为DOS批处理和PS批处理两类。
    • 可以用记事本直接编辑或用DOS命令创建或各种编辑器打开

    我们可以用一下命令实现helloworld

    @echo off
    echo hello world
    pause & exit
    
    • 1
    • 2
    • 3

    2.2.2 批处理常用命令介绍

    本来在这里加了一堆批处理常用命令,发现篇幅太长了。那就后面单独弄一篇总结Windows批处理常用命令吧(又给自己挖了一个坑)。

    在这里插入图片描述

    3 各个数据库备份脚本

    将需要备份的脚本添加到backup.bat中

    3.1 Oracle数据库

    @echo off
    echo 当前的盘符及路径:%~dp0
    echo 当前的盘符及路径的短文件名格式:%~sdp0
    
    set filename=%date:~0,4%%date:~5,2%%date:~8,2%
    set expcmd=scott/tiger file=%~dp0\%filename%.dmp owner=scott log=%~dp0\%filename%.log buffer=9999999
    echo 导出 >>exe%filename%.log 2>&1
    call exp %expcmd%
    echo 压缩 >>exe%filename%.log 2>&1
    7zr a %filename%.dmp.7z %filename%.dmp %filename%.log
    echo 删除 >>exe%filename%.log 2>&1
    del %filename%.dmp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.2 Mysql数据库

    @echo off
    set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
    D:\MySQL\bin\mysqldump  -u root -p123456 --databases db1 > D:\db_backup\db1_%Ymd%.sql
    @echo on
    
    • 1
    • 2
    • 3
    • 4

    3.3 postgresql数据库

    @ECHO OFF
    @setlocal enableextensions
    @cd /d "%~dp0"
    SET PGPATH=D:\PostgreSQL\9.3\bin\pg_dump
    SET SVPATH=E:\
    SET PRJDB=db1
    SET DBUSR=postgres
    SET DBROLE=postgres
    FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k
    FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k
    SET DBDUMP=%PRJDB%_%d%_%t%.backup
    @ECHO OFF
    %PGPATH% -h localhost -p 5432 -U %DBUSR% --role %DBROLE% -w -F c -b -v -f %SVPATH%%DBDUMP% %PRJDB% 
    echo Backup Taken Complete %SVPATH%%DBDUMP%
    pause
    
    --SET SVPATH=E:\ 表示文件存放路径
    --SET PRJDB=BaoShan 表示要备份的数据库名称
    --%PGPATH% -h localhost -p 5432 -U %DBUSR% --role %DBROLE% -w -F c -b -v -f %SVPATH%%DBDUMP% %PRJDB% 表示本机执行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3.4 mongoDB数据库

    @echo off
    set SrcDir=E:\mongodb4.1.7\backup
    forfiles /p %SrcDir% /s /m *.* /d -7 /c "cmd del /c /f /q /a @path"
    
    set path=%path%;E:\mongodb4.1.7\bin
    set Ymd=%date:~,4%%date:~5,2%%date:~8,2%
    mongoexport -d dbcloudresource -c sys_resource -u cloud_resource -p cloud_resource --type=JSON  -o E:\mongodb4.1.7\backup\backup_%Ymd%.js
    
    set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
    %RAR_CMD% a -df  "E:\mongodb4.1.7\backup\backup_%Ymd%.rar"   "E:\mongodb4.1.7\backup\backup_%Ymd%.js"   
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4 添加任务计划定时备份数据库

    ① 首先打开系统的管理工具,选择《任务计划程序》

    在这里插入图片描述

    ② 点击创建基本任务,输入这个定时任务的名称,比如我这边就是做一个db1数据库的备份

    ③ 点击下一步选择定时任务执行频率

    在这里插入图片描述

    ④ 点击下一步选择任务开始时间 今晚0点10分开始

    在这里插入图片描述

    ⑤ 选择执行的操作,此处选择上面已经添加好的backup.bat批处理脚本,因此选择《启动程序》

    在这里插入图片描述

    在这里插入图片描述

    ⑥ 完成

    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJYJt8oz-1659275990435)(https://gitee.com/xiezhr/image-learn-bed/raw/master/image/20210320134902.gif)]

  • 相关阅读:
    vue3 中的根据某些特定的文字来筛选数组数据
    VSCode下载安装与使用教程
    UI组件库基础
    uniapp实现下载图片到本地
    【设计模式专题】策略模式之多场景下的代码解耦“神器“
    (附源码)ssm基于jsp高校选课系统 毕业设计 291627
    MySQL数据库表的分区
    一零二零、C语言白菜入门--流程控制
    springboot中如何集成logback呢?
    江苏专转本考试时,遇到不会的题目该怎么办呢??
  • 原文地址:https://blog.csdn.net/rong0913/article/details/126091273