oracle归档、alert、监听日志备份与清理

时间:2022-05-08 22:39:27

1、监听日志

su - oracle  //切换到oracle用户
cd /oracle/OraHome1/network/log  //进入监听日志目录,不同数据库监听日志目录会有差异

lsnrctl  //进入监听器
set password //如果监听器有密码,需要通过此选项输入密码,否则上一条命令直接进入监听器
******  //输入密码
set log_status off  //停止监听日志记录
quit  //退出监听器
mv listener.log listener.old  //将监听日志改名后备份到其它磁盘或者直接删除

lsnrctl //进入监听器
set password //如果监听器有密码,需要通过此选项输入密码,否则上一条命令直接进入监听器
******  //输入密码
set log_status on  //开启监听日志记录
quit  //退出监听器

2、oracle数据库alert日志

cd /.../budmp  //进入oracle数据库alert日志目录

 

mkdir -p bak  //新建备份文件夹

LG=alert$ORACLE_SID.log
cat $LG| gzip -9c > bak/$LG.bak.`date +%Y%m%d`.gz && cat /dev/null > $LG

解释如下:

LG=alert$ORACLE_SID.ora 定义变量 

bak/$LG.bak.`date +%Y%m%d`.gz 备份的文件名,包含了日期信息 

cat $LG| gzip -9c > bak/$LG.bak.`date +%Y%m%d`.gz 把$LG的内容压缩,保存为备份文件 

cat /dev/null > $LG 清空老log 文件的内容。 

这样做不会改变文件的handle,直接move可能导致某些已经打开该文件的进程往该文件写时丢失数据。

3、归档日志

进入归档目录直接删除较早归档日志文件,释放空间

进入rman删除控制文件controlfile记录对应的archivelog信息

export ORACLE_SID=orcl  //linux系统设置数据库实例名称

rman target /                   //进入rman

crosscheck archivelog all; 
delete expired archivelog all; 

exit    //退出rman