Oracle数据库 定时备份

说明

学习了如何Oracle如何备份数据库,实际开发过程中数据库应该每隔一段时间就要备份一次,所以我们就需要一个定时执行这个代码的功能,同时备份的文件可能进行一些处理,比如压缩。

步骤

  1. 建一个文本文件,添加以下内容,后缀名修改为 .bat

    :: 代码页更改为Unicode(UTF-8)
    chcp 65001
    
    @echo off : "===============开始导出数据库文件以及日志文件==============="
    
    :: 使用exp方式导出
    exp system/1234@127.0.0.1:1521/orcl file=G:\backup\orcl_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=G:\backup\orcl_%date:~0,4%%date:~5,2%%date:~8,2%.log 
    
    @echo : "===============开始压缩导出的数据库文件以及日志文件==============="
    
    :: 这里用的是Bandizip压缩工具的命令,其他压缩工具命令可能不一样
    D:\Bandizip\Bandizip.exe c "G:\backup\%date% %time:~0,2%时%time:~3,2%分.zip" "G:\backup\orcl_%date:~0,4%%date:~5,2%%date:~8,2%.dmp" "G:\backup\orcl_%date:~0,4%%date:~5,2%%date:~8,2%.log" 
    
    @echo : "===============开始删除导出的数据库文件以及日志文件==============="
    
    del G:\backup\*.dmp
    del G:\backup\*.log
    
    @echo "===============自动备份完成==============="
    
    :: 遍历指定文件夹与指定文件格式的文件,并最后修改日期在30日以外的文件,进行删除
    forfiles /p "G:\backup" /s /m *.zip /d -30 /c "cmd /c del @path"
    
    :: 仅用于延迟关闭窗口 30 = 30秒
    ping 127.1 -n 30>nul
    
    @exit
    

    image-20240509145109383

  2. 测试文件效果

    image-20240509154500501
  3. 利用系统的计划和程序定时执行

    控制面板 --> 系统和安全 --> 计划任务

    image-20240509155737560

    计划任务 --> 任务计划程序 --> 创建基本任务

    image-20240509161105686 image-20240509161626501
  4. 选择离当前时间相近的时间测试是否能够定时备份。测试完再将时间设置为数据库数据变动少的时间。

    image-20240509162209749
posted @ 2024-05-09 17:07  克峰同学  阅读(4)  评论(0编辑  收藏  举报