oracle监听日志定时删除
时间: 2023-08-12 10:08:51 浏览: 212
你可以使用一个简单的 shell 脚本来定期删除监听日志。以下是一个例子:
```
#!/bin/bash
# 设置监听日志目录
LOG_DIR=/u01/app/oracle/diag/tnslsnr/myserver/listener/trace
# 设置要删除的日志文件类型和保留天数
FILE_TYPE=trc
DAYS_TO_KEEP=7
# 删除旧的监听日志文件
find $LOG_DIR -name "*.$FILE_TYPE" -type f -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
```
在此脚本中,你需要设置监听日志目录、要删除的日志文件类型和保留天数。然后,使用 `find` 命令查找要删除的文件,并使用 `-exec` 选项执行删除操作。
你可以将此脚本添加到 crontab 中,以便每天自动运行。例如,如果你想每天凌晨 1 点运行此脚本,可以将以下行添加到 crontab 文件中:
```
0 1 * * * /path/to/script.sh
```
这将在每天凌晨 1 点运行脚本。
相关问题
oracle集群巡检脚本
以下是一个 Oracle RAC 集群巡检脚本的示例,您可以根据自己的需要进行修改和调整:
```bash
#!/bin/bash
# Author: Your Name
# Date: 2021-06-01
# Description: A script to perform Oracle RAC cluster health check
# Define variables
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
GRID_HOME=/u01/app/11.2.0/grid
LOG_FILE=/var/log/oracle/check.log
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# Define functions
function check_asm_diskgroup {
$GRID_HOME/bin/asmcmd lsdg | grep --quiet '+DATA'
if [ $? -ne 0 ]; then
echo "$DATE ERROR: +DATA diskgroup not found" >> $LOG_FILE
return 1
fi
return 0
}
function check_asm_listener {
$GRID_HOME/bin/lsnrctl status LISTENER_ASM | grep --quiet 'Instance "ASM", status READY'
if [ $? -ne 0 ]; then
echo "$DATE ERROR: ASM listener not running" >> $LOG_FILE
return 1
fi
return 0
}
function check_database_listener {
$ORACLE_HOME/bin/lsnrctl status LISTENER | grep --quiet 'Instance ".*", status READY'
if [ $? -ne 0 ]; then
echo "$DATE ERROR: Database listener not running" >> $LOG_FILE
return 1
fi
return 0
}
function check_database_status {
$ORACLE_HOME/bin/sqlplus -S / as sysdba << EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT STATUS FROM V\\$INSTANCE;
EXIT;
EOF
if [ $? -ne 0 ]; then
echo "$DATE ERROR: Failed to connect to database" >> $LOG_FILE
return 1
fi
return 0
}
# Main script
echo "$DATE Starting Oracle RAC cluster health check" >> $LOG_FILE
check_asm_diskgroup && echo "$DATE +DATA diskgroup found" >> $LOG_FILE
check_asm_listener && echo "$DATE ASM listener running" >> $LOG_FILE
check_database_listener && echo "$DATE Database listener running" >> $LOG_FILE
check_database_status && echo "$DATE Database status is OK" >> $LOG_FILE
echo "$DATE Oracle RAC cluster health check completed" >> $LOG_FILE
```
此脚本使用了多个 Oracle 命令来检查各个组件的运行状态,包括 ASM 磁盘组、ASM 监听器、数据库监听器和数据库本身。脚本输出会写入日志文件中,您可以根据需要将其添加到定时任务中进行定期检查。
阅读全文