oracle数据库自动备份实现效果
- 使用oracle exp命令导出dmp格式文件;
- 使用7z命令行自动压缩dmp文件,减少存储空间;
- 使用Windows定时任务自动备份,并且定时删除N天之前的备份;
备份bat命令
@echo off rem **********************配置开始********************** rem 连接oracle ip 端口 数据库名 set sid=127.0.0.1:1521/ORCL rem 连接oracle的用户名 set username=ORCL rem 连接oracle的密码 set password=123 rem 备份文件的文件夹 例如(D:ak) set bak_path=D:ak rem 7za.exe压缩文件路径 set rar_path=D:ak7za.exe rem **********************配置结束********************** set connect=%username%/%password%@%sid% echo 删除7天前的备分文件和日志7z文件 forfiles /p %bak_path% /m *.dmp /d -7 /c "cmd /c del @path" forfiles /p %bak_path% /m *.log /d -7 /c "cmd /c del @path" forfiles /p %bak_path% /m *.7z /d -7 /c "cmd /c del @path" echo 开始备份 rem 如果备份文件夹不存在则创建 if not exist "%bak_path%" mkdir "%bak_path%" set filename=oraclebak%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% set filepath=%bak_path%\%filename% rem 执行 exp 导出命令 exp %connect% file=%filepath%.dmp owner=%username% log=%filepath%.log INDEXES=y grants=y constraints=y compress=y rem 如果存在7za.exe 则执行压缩,不存在直接退出 if exist %rar_path% ( %rar_path% a %filepath%.7z %filepath%.dmp %filepath%.log rem 压缩后删除dmp文件 if errorlevel 0 ( del %filepath%.dmp del %filepath%.log ) ) else (echo 压缩文件不存在,dmp不压缩 exit) exit
将上方文本保存成bat文件,新建windows计划任务定时执行bat命令,实现定时备份。
oracle imp 导入备份数据bat命令
@echo off rem ************配置开始************* set sid=127.0.0.1:1521/ORCL rem 数据库用户名 set username=ORCL rem 数据库密码 set password=123 rem 备份文件所在目录 set dmp_path=D:akup rem 备份文件 .dmp 的文件名 set dmp_name=oraclebak rem ************配置结束************* set connect=%username%/%password%@%sid% imp %connect% BUFFER=64000 file=%dmp_path%\%dmp_name%.dmp ignore=y full=y statistics=none log=%dmp_path%imp_log.log pause