mysql数据库hang住_oracle数据库满了,数据库hang住

Oracle数据库归档目录usr5满的解决办法

故障现象:

C网数据库的逻辑日志增长很快,有时候每分钟就产生150M的日志文件,导致归档目录不到一天的时间就满了。我们的备份策略是每天的晚上0点执行,也就是说还没来得及备份归档目录就满了。

导致的结果:

数据库挂起不能工作。

问题分析及解决办法:

解决办法有3种:

1,增加归档目录的空间 2,增加备份频度 3,删除归档日志文件

每一种办法都会存在一些问题或产生一些负面影响:

1,增加归档目录的空间,这个已经不可行,因为已经没有可用空间

2,增加备份频度,会影响部分系统性能,后来观察影响不大,远远排在了oracle进程后面。

3,删除归档日志文件,这只是权宜之计,会带来控制文件和日志文件的不同步从而影响下一次的数据库备份失败,以及万一数据文件损坏从而因影响恢复的问题。

经过分析和权衡,初步采用了每天办法2次的办法。除了原来夜里零点备份的1次之外,又安排在白天2点备份一次,至于为什么定到2点,主要是想均衡一下业务量,考虑到凌晨业务量较小可能产生较少的日志(相对白天而言)。结果很见效。后来讨论,又发现了一下新的问题。 问题是: 万一备份失败或者在12小时之内usr5空间满怎么办?于是又添加了一个执行脚本fs_monitor.sh,每小时执行一次,若发现usr5空间达到80% 就自动删除归档日志文件然后自动数据库同步

以下是自动自动清楚自动同步的脚本(由左亮撰写)

#!/bin/sh

#Please change the ARCHIVE_FS to your actual filesystem that your archive log storaged

ARCHIVE_FS=/usr5

#Please change the ARCHIVE_DIR to your actual directory that your archive log storaged

ARCHIVE_DIR=/usr5/oracle/bjdb/arch_2

#Defined the location of log file

LOG=/usr5/oracle/bjdb/${0}.`date +%m%d`.log

#Obtain the usage of filesystem at that time

DFK=`df -k|grep $ARCHIVE_FS|awk ’{USAGE=substr($5,1,length($5) - 1)

print USAGE}’`

START_RMAN="

setenv ORACLE_SID rman

sqlplus /nolog <

connect /as sysdba

startup

exit

EOF"

STOP_RMAN="

setenv ORACLE_SID rman

sqlplus /nolog <

connect /as sysdba

shutdown immediate

exit

EOF

"

#Defined the command of archivelog crosscheck

CMD_STR="

setenv ORACLE_SID bjdb

rman target sys/sys catalog rman/rman@rman<

crosscheck archivelog all;

exit

EOF

"

#Check the usage of ARCHIVE_FS

if [ $DFK -gt 80 ]

then

TIME=`date`

echo "At the time: "$TIME", Usage of " $ARCHIVE_FS "filesystem is beyond 80%. The used rate is :"$DFK"% now">>$LOG

cd $ARCHIVE_DIR

#Obtain file list that need to be remove

FILE_LIST=`ls -lt|tail -600|awk ’{print $9}’`

for FILE in $FILE_LIST

do

rm $FILE 2>>$LOG

done

#Start rman database

su - oracle -c "$START_RMAN">>$LOG

#Run the crosscheck operation

su - oracle -c "$CMD_STR">>$LOG

#Stop rman database

su - oracle -c "$STOP_RMAN">>$LOG

echo "……">>$LOG

else

exit 0

fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值