Oracle 数据库定期备份和归档日志清理 -YB
Oracle 数据库定期备份和归档日志清理 -YB
一、Oracle 数据库定期备份
需求:
每天备份一次数据库,只保留七天内的,并将七天外的备份文件干掉。
方法:创建批处理,然后添加进入 Windows 系统的计划任务,定时执行。
步骤:
- 步骤一:创建批处理
@echo off
set DATEDIR=
set u_date=%date:~0,4%_%date:~5,2%_%date:~8,2%
set nceedmp=unimax_cimc%u_date%.dmp
set nceelog=unimax_cimc%u_date%.log
expdp unimax_cimc/unimax_cimc directory=DATA_PUMP_DIR schemas=unimax_cimc dumpfile=%nceedmp% logfile=%nceelog% version=10.0.2
set rarncee=unimax_cimc%u_date%.rar
set rar_cmd="C:\Program Files\WinRAR\WinRAR.EXE"
echo 删除7天前的备份开始
forfiles /p "D:\db_dump" /s /m *.dmp /d -7 /c "cmd /c del @path"
forfiles /p "D:\db_dump" /s /m *.log /d -7 /c "cmd /c del @path"
echo forfiles /p "D:\ora_bak" /s /m *.* /d -7 /c "cmd /c del @path"
forfiles /p "D:\ora_bak\dataRAR" /s /m *.* /d -7 /c "cmd /c del @path"
echo 删除7天前的备份结束
echo 数据库文件压缩开始
%rar_cmd% a -m1 "D:/ora_bak/dataRAR/%rarncee%" "D:\db_dump/%nceedmp%" "D:\db_dump/%nceelog%"
echo 复制到远程文件夹开始
copy "D:\ora_bak\dataRAR\%rarncee%" z:\
echo "z:\%rarncee%"
if exist "z:\%rarncee%" goto sendmail
exit
:sendmail
powershell -executionpolicy remotesigned -File "D:\ora_bak\SendMail.ps1"
注 1:这个里面是包含了备份和清理 7 天以外的,同时将打包后的文件拷贝至远程磁盘,并发送邮件。
注 2:forfiles /p 后面的文件夹路径不需要引号,右斜杠为分隔符而不能用左斜杠。否则识别不到路径。
- 步骤二:创建定时任务
计算机 - 右键 - 管理 - 任务计划程序。
创建任务、创建触发器等。
参考:https://blog.csdn.net/wd2011063437/article/details/79168735
二、归档日志定期清理
创建 rman 命令文件:clearArchLog.rman
run{
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'SYSDATE-7';
}
exit
创建批处理文件:clearArchLog.bat
@echo off
set DaysAgo=7
set LogPath=D:\oracle\rm_archivelog\LOG
forfiles /p %LogPath% /s /m *.log /d -%DaysAgo% /c "cmd /c del @file"
set h=%time:~0,2%
set h=%h: =0%
set RMARCHDATE=%date:~0,4%%date:~5,2%%date:~8,2%_%h%%time:~3,2%%time:~6,2%
rman target / cmdfile=D:\oracle\rm_archivelog\CMD\clearArchLog.rman log=D:\oracle\rm_archivelog\LOG\rm_archive_%RMARCHDATE%.log
exit
同样在 windows 里创建计划任务,让批处理定期执行即可。
注 1:Linux 时:
linux 的创建定时任务 通过 crontab 的方式。
注 2:报错:
释放的通道: ORA_DISK_1 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=8 设备类型 =DISK 说明与资料档案库中的任何归档日志都不匹配
开启 rman 命令后,直接去执行:delete noprompt archivelog until time “sysdate-10”;
也是报这个错。后来检查归档日志文件也没啥问题。最后将时间 sysdate-10 调整为 sysdate-3,可以了。
但归档日志的文件删除现象有些奇怪,并不是准确的保留前几天的。是删除了其中一段。有些奇怪。
三、YB- 相关附件
在捷翼数据库服务器上实践 -windows.
文件内容: