1.linux下,oracle的alert日志与listener日志定期备份
#cd /.../admain/bdump/
#mkdir -p bak
#LG=alert $ORACLE_SID.ora
#cat $LG | gzip -9c > bak/ $LG.bak.`date +%Y%m%d`.gz && cat /dev/null > $LG
#cd $ORACLE_HOME/network/log/
#mkdir -p bak
#LG=listener.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可能导致某些已经打开该文件的进程往该文件写时丢失数据。
2.VI中定位指定日期间ORA的位置
思路:用grep -n ‘日期‘ alert.log | head -1和grep -n ‘日期‘ alert.log | tail -1 分别得到两个行数,然后用sed -n 第一行、最后一行,p alert.log | grep ORA-。