希望大家一切都好。
我有一个ORACLE备用数据库,每天我们分别在3点和6点检查两次块错误,并且我们使用下面的带有rman run block的shell脚本来检查它。问题是它不等待rman块完成才发送输出。如果需要修改,请问我的建议。
prsl_phl_blk_chk.sh ++++++++++++++++++++++
MAIL_ID="abcd@google.com"
export ORACLE_HOME=/u01/app/oowner/product/11.2.0.4/dbhome_1
export ORACLE_SID=ABCD_STBY
export PATH=$ORACLE_HOME/bin:$PATH
NLS_DATE_FORMAT="dd-MON-YYYY hh24:mi:ss"; export NLS_DATE_FORMAT
nohup rman target=/ @/scripts/rman_blk_check.scr > /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log 2>&1 &
mail -s "ABCD_STBY logical Block Corruption check on `date`" ${MAIL_ID} < /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log
rman_blk_check.scr
++++++++++++++++++
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup validate check logical database;
}
谢谢
答案 0 :(得分:1)
如果您从&
行的末尾删除nohup
,则rman
命令将在mail
运行之前运行完成。
nohup rman target=/ @/scripts/rman_blk_check.scr > /scripts/log/ABCD_STBY_logicalblk_chk_25SEP2017.log 2>&1
&
告诉bash
在后台运行rman
命令,这不是您想要的。
我注意到在rman
下仅运行nohup
有点奇怪。大概还应该保护脚本的其余部分不受干扰。