我是一个萌新,每天日检太麻烦了,领导说写一个脚本,环境是aix双机rac 巡检内容包括,aix磁盘,集群状态,还有就是数据库内的问题,例如asm磁盘,变空间等。现在问题出在切换oracle数据库然后无法返回root.请各位大神指教
sqlplus -s /nolog <<EOF 2>>error.log
conn usrname/passwd
set colsep ','
set echo off
set feed off
set head off
set pagesize 0
set linesize 500
set termout off
set trimout on
set trimspool on
spool "test.lst"
select sysdate from dual;
spool off
quit;
EOF
在shell中访问数据库大概手写了一个样例,,好长时间比搞了,仅做参考,关于sqlplus的参数开关以及spool的用法,可以进一步找参考资料查询,以上都是常见的一些。
收起print_command "$2" "SQL";print_result_top
command_output=`su - oracle -c "export ORACLE_SID=$db_name
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
sqlplus -s /nolog <<EOF
connect / as sysdba
spool "${LogFile}.log"
set pagesize 999
set line 170
$3$4$5$6$7$8
spool off
quit
EOF
" 2>&1`
echo "$command_output"|grep -q "no rows selected"
if [[ $? -eq 0 ]];then eecho "No rows selected"
else cat ${LogFile}.log|egrep -v "rows selected"|egrep -v "PL/SQL procedure successfully completed"|awk 'NF'>>${LogFile} 2>&1;fi
RM "${LogFile}.log"
else
print_command "$3 $2 $4";print_result_top
if [[ $1 = "N_Spfile" ]];then
su - oracle -c "export ORACLE_SID=$db_name
sqlplus -s /nolog <<EOF
connect / as sysdba
quit
EOF
">/dev/null
收起