windows下的数据库备份脚本

1.windows下的数据备份是如何实现的?
在今天数据备份的重要性不言而喻,正所谓’硬盘有价,数据无价‘,数据备份是运维人员必备的基本技能,没有人会为你的无操作买单,所于不要盲目自信自身的操作,备份是你唯一的后悔药。闲话少说,现在进入正题,在windows环境下如何进行数据库的备份操作,幸运的是我们属于站在巨人肩膀上的一代,无数的大佬已经为我们提供了基本的解决方法。备份的方法总的来说就是两种:方法一:借助软件(ps放心你的领导肯定不会同意的,天下哪有免费的午餐),方法二:脚本+windos自带的定时任务。
2.脚本在哪里?如何编写的
正如刚才我所说,我们属于站在巨人肩膀上的一代,脚本已经为你准备好了(ps我可不是什么大佬)脚本如下:

@echo off

md "%date:~0,7%"
cd "%date:~0,7%"
echo


rem Oracle 数据库的自动导出备份脚本(windows环境)。
rem author xq
rem date 2019-09-19

rem ===========================================================================

echo =========================================================================
echo Oracle  数据库的自动导出备份脚本(windows环境)。
echo  说明:启动备份时,需要配置以下变量
echo    1、ORACLE_USERNAME      指定备份所用的Oracle用户名
echo    2、ORACLE_PASSWORD      指定备份所用的Oracle密码
echo    3、ORACLE_DB            指定备份所用的Oracle服务名
echo    4、BACK_OPTION          备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 或 TABLES=() 等等....
echo    5、RAR_CMD              指定RAR命令行压缩工具所在目录
echo    6、RAR_CMD              指定保留压缩文件天数
echo =========================================================================
 
REM ======================================================

REM ======================================================
rem 以下变量需要根据实际情况进行修改(修改等号后面的值)
rem ****************修改ORACLE_USERNAME(用户名)*************************
rem ****************修改ORACLE_PASSWORD(密码)***************************
rem ****************修改ORACLE_DB(数据库名称)***************************
rem ****************修改BACK_OPTION(需要导出的用户)*********************
rem ****************修改RAR_CMD(压缩程序路径)***************************
rem ****************修改BackDay(保留压缩文件天数,默认为保留3天)***************************
set ORACLE_USERNAME=system
set ORACLE_PASSWORD=system
set ORACLE_DB=oracle
set BACK_OPTION="owner=(dlsys,dlmis,dlinit,dldoc,dlgis,sde,dlmlr,dlarable,dletl,dlexc)"
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
REM ======================================================



REM 如果文件名中需要小时及分钟,用下面第一行语句
REM   set BACK_NAME=%ORACLE_DB%_%TODAY%(%time:~0,2%时%time:~3,2%分)
REM   set BACK_NAME=%ORACLE_DB%_%ORACLE_USERNAME%_%TODAY%

set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set Rname=%year%%month%%day%
set BACK_FULL_NAME=%Rname%
set RarName=%date:~0,15%


echo ==================================准备备份========================== >>%BACK_FULL_NAME%_bat.log
echo =======================导出%ORACLE_DB%数据库的数据================= >>%BACK_FULL_NAME%_bat.log
echo 导出开始...... >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
 exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%.log" %BACK_OPTION%

echo 导出完成...... >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log

echo ==================================准备压缩========================== >>%BACK_FULL_NAME%_bat.log

echo 压缩并删除原有dmp文件...... >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
%RAR_CMD% a -df -ep1 "%RarName%.rar" "%BACK_FULL_NAME%.dmp"  "%BACK_FULL_NAME%.log"
echo 压缩并删除原有dmp文件结束! >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log

echo "%ORACLE_DB%数据库逻辑备份已于:%DATE% %time% 完成!">>%BACK_FULL_NAME%_bat.log
echo  
echo 备份完成!!! >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
echo ===============备份%ORACLE_DB%数据库的数据完成!!!============== >>%BACK_FULL_NAME%_bat.log

rem 删除超过20天的备份数据
echo ===============删除的数据备份============== >>%BACK_FULL_NAME%_bat.log
forfiles /m *_bat.log /c "cmd /c echo @fname>>%BACK_FULL_NAME%_bat.log"
forfiles /m *1.log /c "cmd /c del @path /f /s"

3.如何使用
代码中对操作的含义进行了详细的讲解,如果实在无法看懂代码,请自行百度。新建一个记事本,将代码复制粘贴到新建的文本中保存,然后更改文件的后缀,并且配合windows的定时任务进行设置,你基本上就可以去做其他事情了。

你可能感兴趣的:(数据库)