您的位置:首页 > 数据库 > Oracle

Oracle归档日志清理

2019-02-07 20:36 274 查看
版权声明:本文为作者原创,转载请标明出处! https://blog.csdn.net/kiral07/article/details/86772849

Oracle归档日志清理

一、Linux平台

备注:RAC环境同样适用

操作步骤:
1、在/home/oracle内创建一个目录,用来放shell脚本日志。

[root@orcldb4 arch_clean_log]$ su - oracle
--->从root用户切换到oracle用户,注意横线“-”左右都有空格
[oracle@orcldb4 arch_clean_log]$ mkdir /home/oracle/arch_clean_log

2、查看Oracle环境变量

[oracle@orcldb ~]$ env|grep ORA --->敲完命令之后,将如下名称记录下来,用于第三步设置脚本的环境变量
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

3、在/home/oracle/目录下新建脚本文件
以下的环境变量需要在第2步中获取

[oracle@orcldb4 ORACLE]vi clean_arch.sh
#!/bin/bash
export ORACLE_SID=orcl   --->生产环境中Oracle实例名
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 --->数据库软件目录
export ORACLE_BASE=/u01/app/oracle --->Oracle基目录
time=`date +"20%y%m%d%H%M%S"` --->日期格式
logdir="/home/oracle/arch_clean_log" --->脚本执行日志
find $logdir -type f -name "*.log" -mtime +7 -exec rm -rf {} \;--->此处保留7天脚本执行日志
$ORACLE_HOME/bin/rman target /  log=$logdir/archClean_$time.log  <<EOF
run{
crosscheck archivelog all;
delete noprompt expired archivelog all;
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';--->此处示例为保留7天的归档日志
}
exit
EOF

4、对脚本文件赋予可执行权限

[oracle@orcldb4 ORACLE]$ chmod +x clean_arch.sh

5、设置定时计划
在oracle用户下,添加crontab
下面示例为每天凌晨3点开始执行定时清理脚本

[oracle@orcldb4 arch_clean_log]$ crontab -e
0 3 * * * /bin/bash /home/oracle/clean_arch.sh >/dev/null 2>&1

最后检查下crontab是否已添加

[oracle@orcldb4 arch_clean_log]$ crontab -l
0 3 * * * /bin/bash /home/oracle/clean_arch.sh >/dev/null 2>&1

二、Windows平台

操作步骤:
1、新建一个文件夹用于存放脚本执行的日志

2、查看Oracle sid
在Windows环境可以:
开始—>运行(输入regedit),在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb开头g_home1中有ORACLE_SID的键值(系统默认值),如下图所示:


3、新建txt,将如下内容复制到文本内

set ORACLE_SID=orcl --->注册表中Oracle实例名
set arch_log=D:\arch_log --->脚本执行日志目录
rman target / cmdfile='%arch_log%\script.txt' log='%arch_log%\del_arch_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log'
--->调用RMAN脚本
forfiles /P %arch_log% /M *.log /S /D -7 /C "cmd /c del /F /s /q @file"
--->此处示例为保留7天的脚本日志记录

4、添加RMAN脚本

run{
crosscheck archivelog all;
delete noprompt expired archivelog all;
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
--->此处示例为保留7天的归档日志
}

5、修改脚本后缀名为bat
确保bat文件与script文件在一个目录

6、添加任务计划
在windows添加任务计划,设定时间即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: