db_conn_coll.sh 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. #!/bin/sh
  2. . ./helper_functions.sh
  3. get_USR_ID()
  4. {
  5. USER_ID_CMD=`type whoami >/dev/null 2>/dev/null && echo "Found" || echo "NotFound"`
  6. if [ "$USER_ID_CMD" = "Found" ] ; then
  7. USR_ID=`whoami`
  8. else
  9. if [ "$OS_NAME" = "SunOS" ] ; then
  10. if [ -x /usr/ucb/whoami ] ; then
  11. USR_ID=`/usr/ucb/whoami`
  12. fi
  13. else
  14. USR_ID=$LOGNAME
  15. fi
  16. fi
  17. }
  18. set_IFS()
  19. {
  20. OLDIFS=$IFS
  21. if [ "$OS_NAME" = "Linux" ] ; then
  22. IFS=$'\n'
  23. elif [ "$OS_NAME" = "HP-UX" ] ; then
  24. IFS="
  25. "
  26. else
  27. IFS='
  28. '
  29. fi
  30. }
  31. ask_yn()
  32. {
  33. answ=""
  34. while [ "$answ" = "" ]
  35. do
  36. $ECHO "$question (y/n)?"; read answ
  37. $ECHO "------------------------------------------------------------------------------"
  38. done
  39. if [ "$answ" = "y" -o "$answ" = "Y" ]; then
  40. yn="y";
  41. else
  42. if [ "$answ" = "n" -o "$answ" = "N" ]; then
  43. yn="n";
  44. else
  45. ask_yn;
  46. fi
  47. fi
  48. }
  49. is_in_conn_list()
  50. {
  51. in_conn_list=-1
  52. echo ",$1," | grep ",$2," > /dev/null
  53. if [ $? = 0 ]; then
  54. in_conn_list=0
  55. else
  56. in_conn_list=1
  57. fi
  58. }
  59. export_env()
  60. {
  61. NLS_LANG=AMERICAN_AMERICA.UTF8
  62. export NLS_LANG
  63. ORACLE_HOME=$V_ORACLE_HOME
  64. export ORACLE_HOME
  65. if [ "$LD_LIBRARY_PATH" != "" ]; then
  66. LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
  67. export LD_LIBRARY_PATH
  68. fi
  69. chkee=0
  70. }
  71. check_space() {
  72. CT_NOSPACE=0
  73. echo "checking disk space" >checkspace.txt
  74. if [ ! -s checkspace.txt ]; then
  75. CT_NOSPACE=1
  76. CT_NOSPACEFOLDER=`pwd`
  77. echo "DB: CT-02019: ERROR: No disk space available on ${CT_NOSPACEFOLDER} folder"
  78. if [ -f checkspace.txt ]; then
  79. rm -f checkspace.txt
  80. fi
  81. else
  82. rm -f checkspace.txt
  83. fi
  84. }
  85. check_oracle_home()
  86. {
  87. if [ "$V_ORACLE_HOME" = "" ] || [ "$REMOTE_DB" = "YES" ] ; then
  88. if [ ! -f oracle_homes_u.txt ] ; then
  89. if [ -f oracle_homes_a.txt ] ; then
  90. if [ "$ORACLE_HOME" != "" ]; then
  91. echo $ORACLE_HOME >>oracle_homes_a.txt
  92. fi
  93. cat oracle_homes_a.txt | sort | uniq >oracle_homes_u.txt
  94. chmod 777 oracle_homes_u.txt
  95. fi
  96. fi
  97. $ECHO "Enter a valid ORACLE_HOME location for the SQL*Plus client to be used"
  98. if [ -f oracle_homes_u.txt ] ; then
  99. echo "Location(s) found on this machine:"
  100. cat oracle_homes_u.txt
  101. $ECHO
  102. fi
  103. if [ "$V_ORACLE_HOME_PREV" != "" ]; then
  104. ORACLE_HOME=$V_ORACLE_HOME_PREV
  105. fi
  106. if [ `cat oracle_homes_u.txt | wc -l` -eq 1 ] && [ "$ORACLE_HOME" = "" ] ; then
  107. ORACLE_HOME=`cat oracle_homes_u.txt`
  108. fi
  109. if [ "$ORACLE_HOME" = "" ]; then
  110. question="Enter ORACLE_HOME "
  111. else
  112. $ECHO "Enter ORACLE_HOME or press Return to accept the default"
  113. question="($ORACLE_HOME)"
  114. fi
  115. answer=""
  116. while [ "$answer" = "" ]
  117. do
  118. $ECHO "$question"; read answer
  119. $ECHO "------------------------------------------------------------------------------"
  120. if [ "$ORACLE_HOME" != "" ] && [ "$answer" = "" ]; then
  121. answer=$ORACLE_HOME
  122. fi
  123. done
  124. V_ORACLE_HOME=$answer
  125. if [ "$V_ORACLE_HOME_PREV" = "" ];then
  126. V_ORACLE_HOME_PREV=$answer
  127. fi
  128. fi #V_ORACLE_HOME null
  129. if [ -f $V_ORACLE_HOME/bin/sqlplus -a -x $V_ORACLE_HOME/bin/sqlplus ]; then
  130. # if [ -f $V_ORACLE_HOME/bin/tnsping -a -x $V_ORACLE_HOME/bin/tnsping ]; then
  131. chkoh=0
  132. # else
  133. # $ECHO "tnsping is not found on $V_ORACLE_HOME/bin/ or it is not an executable"
  134. # chkoh=1
  135. # fi
  136. else
  137. $ECHO "sqlplus executable was not found in $V_ORACLE_HOME/bin."
  138. chkoh=1
  139. fi
  140. if [ $chkoh -eq 1 ]; then
  141. question="Do you want to re-enter the location for ORACLE_HOME"
  142. ask_yn
  143. if [ "$yn" = "n" ]; then
  144. log_write "$question answer = $yn"
  145. echo "CT-02010 : Access error on ORACLE_HOME: ${V_ORACLE_HOME}" >>$log_err
  146. continue
  147. else
  148. V_ORACLE_HOME=""
  149. check_oracle_home
  150. fi
  151. else
  152. export_env
  153. fi
  154. }
  155. check_tnsping()
  156. {
  157. chktnsp=1
  158. log_write "Checking tnsping on $1"
  159. if [ -f $V_ORACLE_HOME/bin/tnsping -a -x $V_ORACLE_HOME/bin/tnsping ]; then
  160. $ORACLE_HOME/bin/tnsping "$1" >> $logfile
  161. if [ $? -eq 0 ]; then
  162. chktnsp=0
  163. else
  164. $ECHO "TNSPING test failed for the specified connection description."
  165. question="Do you want to re-enter the connection details"
  166. ask_yn
  167. if [ "$yn" = "n" ]; then
  168. log_write "$question answer = $yn"
  169. continue
  170. else
  171. chktnsp=1
  172. fi
  173. fi
  174. else
  175. chktnsp=0
  176. log_write "Can't find tnsping on $V_ORACLE_HOME, unable to test the connection string"
  177. fi
  178. }
  179. check_conn()
  180. {
  181. log_write "Checking remote connection ${V_DB_USER}@$conn_str $sysdba"
  182. check_space
  183. if [ $CT_NOSPACE -eq 1 ];then
  184. logwrite "DB: CT-02019: ERROR: No disk space available on ${CT_NOSPACEFOLDER} folder"
  185. grep 'CT-02019' $log_err >/dev/null 2>&1
  186. if [ $? -eq 1 ] ; then
  187. echo "DB: CT-02019: ERROR: No disk space available on ${CT_NOSPACEFOLDER} folder" >>$log_err
  188. fi
  189. exit
  190. fi
  191. echo " " >checkconn.txt
  192. $V_ORACLE_HOME/bin/sqlplus /nolog <<EOF > checkconn.log
  193. set echo off
  194. set verify off
  195. set termout off
  196. set define off
  197. CONNECT ${V_DB_USER}/${pass}@"$conn_str" $sysdba
  198. select 'Connected' || ' successfully' from v\$database;
  199. exit
  200. EOF
  201. cat checkconn.log | egrep 'ORA-[0-9]*:' >> $logfile
  202. cat checkconn.log | egrep 'SP2-[0-9]*:' >> $logfile
  203. cat checkconn.log | grep "Connected successfully" >/dev/null
  204. if [ $? -eq 0 ]; then
  205. $ECHO "Connected successfully to ${V_DB_USER}@$1 $sysdba"
  206. cc=0
  207. log_write "Connected successfully to ${V_DB_USER}@$1 $sysdba, SQL=${V_SQL}"
  208. log_write "GREPME_DB_LIST>>,$V_CONNECTION_METHOD,$V_ORACLE_HOME,,,$V_TNS_NAME,$V_TNS_HOST,$V_TNS_PORT,$V_TNS_SERVICE_NAME,$V_TNS_SID,$V_DB_USER,$V_SQL,$NOW"
  209. else
  210. cc=1
  211. $ECHO "Failed to connect to the database"
  212. log_write "Failed to connect to ${V_DB_USER}@$1 $sysdba"
  213. cat checkconn.log | egrep 'ORA-01017|ORA-28009|ORA-01031' >/dev/null
  214. if [ $? -eq 0 ]; then
  215. $ECHO "Connection error: invalid username/password"
  216. question="Do you want to re-enter the database user and password"
  217. ask_yn
  218. if [ "$yn" = "n" ]; then
  219. log_write "$question answer = $yn"
  220. if [ ! "$REMOTE_DB" = "YES" ];then
  221. echo "DB: CT-02011: Failed to connect to instance ${V_ORACLE_SID}: `egrep 'ORA-[0-9]*:' checkconn.log`" >>$log_err
  222. fi
  223. rm -f checkconn.log
  224. continue
  225. else
  226. V_DB_USER=""; check_db_user
  227. ask_db_user_pass
  228. check_conn $conn_str
  229. fi
  230. else
  231. #$ECHO "Errors are logged in db_conn_coll.log file"
  232. if [ ! "$REMOTE_DB" = "YES" ];then
  233. echo "DB: CT-02011: Failed to connect to instance ${V_ORACLE_SID}: `egrep 'ORA-[0-9]*:' checkconn.log`" >>$log_err
  234. fi
  235. fi
  236. fi
  237. rm -f checkconn.log
  238. }
  239. check_tns_name()
  240. {
  241. if [ "$V_TNS_NAME" = "" ]; then
  242. $ECHO "Enter value for TNS_NAME, as registered in your Oracle Names"
  243. var="solution (tnsmanes.ora, Oracle Internet Directory, etc)"
  244. ask_variable V_TNS_NAME
  245. fi
  246. conn_str=$V_TNS_NAME
  247. check_tnsping $conn_str
  248. if [ $chktnsp -eq 1 ];then
  249. V_TNS_NAME=""
  250. #check_tns_name
  251. #ask_connection_method
  252. fi
  253. }
  254. check_hpsn()
  255. {
  256. if [ "$V_TNS_HOST" = "" ]; then
  257. var="Enter value for listener HOST (network name or IP address)"
  258. ask_variable V_TNS_HOST
  259. fi
  260. if [ "$V_TNS_PORT" = "" ]; then
  261. var="Enter value for listener PORT"
  262. ask_variable V_TNS_PORT
  263. fi
  264. if [ "$V_TNS_SERVICE_NAME" = "" ]; then
  265. $ECHO "Enter value for database SERVICE_NAME, as known by the listener."
  266. var="For container databases, enter the value for the CDB\$ROOT container."
  267. ask_variable V_TNS_SERVICE_NAME
  268. fi
  269. conn_str="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $V_TNS_HOST)(PORT = $V_TNS_PORT)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = $V_TNS_SERVICE_NAME)))"
  270. check_tnsping $conn_str
  271. if [ $chktnsp -eq 1 ];then
  272. V_TNS_HOST=""
  273. V_TNS_PORT=""
  274. V_TNS_SERVICE_NAME=""
  275. #check_hpsn
  276. #ask_connection_method
  277. fi
  278. }
  279. check_hpsid()
  280. {
  281. if [ "$V_TNS_HOST" = "" ]; then
  282. var="Enter value for listener HOST (network name or IP address)"
  283. ask_variable V_TNS_HOST
  284. fi
  285. if [ "$V_TNS_PORT" = "" ]; then
  286. var="Enter value for listener PORT"
  287. ask_variable V_TNS_PORT
  288. fi
  289. if [ "$V_TNS_SID" = "" ]; then
  290. var="Enter value for database SID"
  291. ask_variable V_TNS_SERVICE_NAME
  292. fi
  293. conn_str="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$V_TNS_HOST)(PORT=$V_TNS_PORT))(CONNECT_DATA=(SID=$V_TNS_SID)))"
  294. check_tnsping $conn_str
  295. if [ $chktnsp -eq 1 ];then
  296. V_TNS_HOST=""
  297. V_TNS_PORT=""
  298. V_TNS_SID=""
  299. #check_hpsid
  300. #ask_connection_method
  301. fi
  302. }
  303. ask_variable()
  304. {
  305. answer=""
  306. while [ "$answer" = "" ]
  307. do
  308. $ECHO "$var"; read answer
  309. $ECHO "------------------------------------------------------------------------------"
  310. done
  311. eval $1="$answer"
  312. }
  313. check_db_user()
  314. {
  315. while [ "$V_DB_USER" = "" ]
  316. do
  317. $ECHO "Enter database user (e.g. SYS AS SYSDBA, SYSTEM, SCOTT)"; read V_DB_USER
  318. $ECHO "------------------------------------------------------------------------------"
  319. done
  320. echo ${V_DB_USER} | grep -i "as sysdba" >/dev/null
  321. if [ $? = 0 ]; then
  322. V_DB_USER=`echo ${V_DB_USER} | cut -d' ' -f1`
  323. sysdba="as sysdba"
  324. else
  325. sysdba=""
  326. fi
  327. }
  328. check_sql_file()
  329. {
  330. while [ "$V_SQL" = "" ]
  331. do
  332. $ECHO "Enter value for sql file(s), separated by | "; read V_SQL
  333. $ECHO "------------------------------------------------------------------------------"
  334. done
  335. }
  336. ask_connection_method()
  337. {
  338. $ECHO "Select connection description method:"
  339. $ECHO " 1) Enter TNS_NAME registered in your Oracle Names solution(ex. tnsmanes.ora)"
  340. $ECHO " 2) Enter listener HOST (name or IP address), PORT and database SERVICE_NAME"
  341. $ECHO " 3) Enter listener HOST (name or IP address), PORT and database instance SID"
  342. $ECHO " 4) SKIP"
  343. $ECHO "Enter selection or press Return to accept the default (2)"
  344. read answer
  345. $ECHO "------------------------------------------------------------------------------"
  346. if [ "$answer" = "" ]; then
  347. answer=2
  348. fi
  349. if [ "$answer" = "4" ] ; then
  350. log_write "ask_connection_method - SKIP"
  351. V_CONNECTION_METHOD=SKIP
  352. continue
  353. else
  354. if [ "$answer" = "1" ] ; then
  355. V_CONNECTION_METHOD=TNS_NAME
  356. else
  357. if [ "$answer" = "2" ] ; then
  358. V_CONNECTION_METHOD=HOST_PORT_SERVICE_NAME
  359. else
  360. if [ "$answer" = "3" ] ; then
  361. V_CONNECTION_METHOD=HOST_PORT_SID
  362. else
  363. ask_connection_method
  364. fi
  365. fi
  366. fi
  367. fi
  368. log_write "ask_connection_method - $V_CONNECTION_METHOD"
  369. }
  370. ask_db_user_pass()
  371. {
  372. $ECHO "Enter password" ; stty -echo; read pass; stty echo
  373. $ECHO "------------------------------------------------------------------------------"
  374. }
  375. log_write()
  376. {
  377. $ECHO $1 >>$logfile
  378. }
  379. run_sql()
  380. {
  381. check_sql_file
  382. check_db_user
  383. ask_db_user_pass
  384. check_conn $conn_str
  385. if [ $cc -eq 0 ]; then
  386. sql_no=`echo $V_SQL | tr -d ' ' | tr -s '|' ' ' | wc -w`
  387. i=1; while [ $i -le $sql_no ];
  388. do
  389. R_SQL=`echo $V_SQL | cut -d'|' -f$i`
  390. $ECHO "Running ${R_SQL} ..."
  391. log_write "Running ${R_SQL} ..."
  392. echo @${R_SQL} > runtime.sql
  393. rm -f *_sql_*.log
  394. $ORACLE_HOME/bin/sqlplus "${V_DB_USER}/${pass}@$conn_str $sysdba" @runtime.sql
  395. ./logcolstat.sh DB NO
  396. ./logcolstat.sh EBS NO
  397. i=`expr $i + 1`
  398. done
  399. fi
  400. }
  401. check_remote_conn()
  402. {
  403. if [ "$V_CONNECTION_METHOD" = "TNS_NAME" ]; then
  404. check_tns_name
  405. conn_message="@${V_TNS_NAME}"
  406. # $ECHO "CONNECTION TYPE:TNS_NAME, ORACLE_HOME:$V_ORACLE_HOME, V_TNS_NAME:$V_TNS_NAME"
  407. fi
  408. if [ "$V_CONNECTION_METHOD" = "HOST_PORT_SERVICE_NAME" ]; then
  409. check_hpsn
  410. conn_message="on ${V_TNS_SERVICE_NAME}@${V_TNS_HOST}"
  411. # $ECHO "CONNECTION TYPE:HOST_PORT_SERVICE_NAME, ORACLE_HOME:$V_ORACLE_HOME, SERVER:$V_TNS_HOST, PORT:$V_TNS_PORT, SERVICE_NAME:$V_TNS_SERVICE_NAME"
  412. fi
  413. if [ "$V_CONNECTION_METHOD" = "HOST_PORT_SID" ]; then
  414. check_hpsid
  415. conn_message="on ${V_TNS_SID}@${V_TNS_HOST}"
  416. # $ECHO "CONNECTION TYPE:HOST_PORT_SID, ORACLE_HOME:$V_ORACLE_HOME, SERVER:$V_TNS_HOST, PORT:$V_TNS_PORT, SID:$V_TNS_SID"
  417. fi
  418. }
  419. remote_conn()
  420. {
  421. $ECHO "------------------------------------------------------------------------------"
  422. $ECHO "Entering details for connecting SQL*Plus to the database via listener."
  423. $ECHO
  424. ask_connection_method
  425. if [ "$V_CONNECTION_METHOD" != "SKIP" ] ; then
  426. chkee=1
  427. check_oracle_home
  428. if [ $chkee -eq 0 ] ; then
  429. check_remote_conn
  430. if [ $chktnsp -eq 0 ];then
  431. run_sql
  432. else
  433. remote_conn
  434. fi
  435. fi
  436. fi
  437. if [ "$REMOTE_DB" = "YES" ] ; then
  438. $ECHO
  439. $ECHO "------------------------------------------------------------------------------"
  440. question="Do you want to proceed with another database"
  441. ask_yn
  442. if [ "$yn" = "y" ]; then
  443. V_TNS_NAME=""
  444. V_TNS_HOST=""
  445. V_TNS_PORT=""
  446. V_TNS_SERVICE_NAME=""
  447. V_TNS_SID=""
  448. V_DB_USER=""
  449. remote_conn
  450. else
  451. log_write "$question answer = $yn"
  452. exit
  453. fi
  454. fi
  455. }
  456. #main
  457. #setAlias
  458. db_file=$2
  459. OS_NAME=`uname -s`
  460. MACHINE_NAME=`uname -n`
  461. logfile=db_conn_coll.log
  462. log_col=DB_collected.log
  463. log_warn=DB_warnings.log
  464. log_err=DB_errors.log
  465. SCRIPT_VERSION=$CT_BUILD_VERSION
  466. NOW="`date '+%Y%m%d%H%M'`"
  467. v_counter=1
  468. rm -f EBS_*.log
  469. for f in $log_col $log_warn $log_err
  470. do
  471. > $f
  472. chmod 777 $f
  473. done
  474. set_IFS
  475. log_write "=============================================================================="
  476. chmod 777 $logfile
  477. get_USR_ID
  478. log_write "Script Start Time=`date '+%m/%d/%Y %H:%M %Z'`"
  479. log_write "Script Version=$SCRIPT_VERSION"
  480. log_write "Products=$ALLPRODLIST"
  481. log_write "Silent mode=$LICAGREE"
  482. log_write "Remote collection=$REMOTE_DB"
  483. log_write "Operating System Name=$OS_NAME"
  484. log_write "Machine Name=$MACHINE_NAME"
  485. log_write "Script User=$USR_ID"
  486. log_write "Tmp Dir=$CT_TMP"
  487. log_write "=============================================================================="
  488. if [ -f "$db_file" ]; then
  489. if [ "$REMOTE_DB" = "YES" ] ; then #remote connection
  490. if [ "$LICAGREE" != "YES" ]; then #no silent mode
  491. V_SQL="db_conn_coll_main.sql NO $vprodlist"
  492. remote_conn
  493. else
  494. log_write "Skip remote connections in silent mode"
  495. fi
  496. else #local connections
  497. if [ "$1" = "YES" ] || [ "$1" = "yes" ] ; then
  498. cat $db_file | grep "^CONNECTION_METHOD"
  499. if [ $? = 0 ]; then
  500. v_counter=0
  501. else
  502. v_counter=1
  503. fi
  504. cat $db_file | grep -v "^CONNECTION_METHOD" | cat -n
  505. $ECHO "Enter the connection number(s)"
  506. read conn_list
  507. $ECHO "------------------------------------------------------------------------------"
  508. fi
  509. for line in `cat $db_file`
  510. #cat $db_file | while read line
  511. do
  512. V_CONNECTION_METHOD=`echo $line | cut -d',' -f1`
  513. V_ORACLE_HOME=`echo $line | cut -d',' -f2`
  514. V_ORACLE_SID=`echo $line | cut -d',' -f3`
  515. V_OS_USER=`echo $line | cut -d',' -f4`
  516. V_TNS_NAME=`echo $line | cut -d',' -f5`
  517. V_TNS_HOST=`echo $line | cut -d',' -f6`
  518. V_TNS_PORT=`echo $line | cut -d',' -f7`
  519. V_TNS_SERVICE_NAME=`echo $line | cut -d',' -f8`
  520. V_TNS_SID=`echo $line | cut -d',' -f9`
  521. V_DB_USER=`echo $line | cut -d',' -f10`
  522. V_SQL=`echo "$line" | cut -d',' -f11`
  523. is_in_conn_list $conn_list $v_counter
  524. v_counter=`expr $v_counter + 1`
  525. if [ "$1" = "no" ] || [ "$1" = "NO" ] || [ "$in_conn_list" = 0 ]; then #collect db_list
  526. if [ "$V_CONNECTION_METHOD" = "CONNECTION_METHOD" ]; then
  527. continue
  528. fi
  529. if [ "$V_CONNECTION_METHOD" = "LOCAL" ]; then
  530. #$ECHO "------------------------------------------------------------------------------"
  531. log_write "Start colecting data for local instance $V_ORACLE_SID"
  532. ./local_conn.sh $V_ORACLE_HOME $V_ORACLE_SID $V_OS_USER "$V_SQL"
  533. status=${?}
  534. if [ $status -eq 201 ]; then continue ; fi
  535. if [ $status -eq 18 ]; then
  536. grep 'CT-02019' $log_err >/dev/null 2>&1
  537. if [ $? -eq 1 ] ; then
  538. echo "DB: CT-02019: ERROR: No disk space available" >>$log_err
  539. fi
  540. exit
  541. fi
  542. if [ $status -eq 1 ] && [ "$LICAGREE" != "YES" ]; then #local failed, no silent mode
  543. $ECHO "------------------------------------------------------------------------------"
  544. $ECHO "Failed to connect \"sqlplus / as SYSDBA\" using:"
  545. $ECHO "OS user: $V_OS_USER"
  546. $ECHO "ORACLE_SID: $V_ORACLE_SID"
  547. $ECHO "ORACLE_HOME: $V_ORACLE_HOME"
  548. $ECHO "(errors are logged in db_conn_coll.log file)"
  549. $ECHO "Common cause: the database is not properly open or mounted."
  550. $ECHO
  551. $ECHO "You can address the error and rerun the tool later or, alternately,"
  552. $ECHO "you can continue now by trying to connect to this database via listener."
  553. $ECHO
  554. remote_conn
  555. else
  556. continue
  557. fi
  558. else
  559. if [ "$LICAGREE" != "YES" ]; then
  560. remote_conn
  561. else
  562. log_write "Skip remote connection (CONNECTION TYPE:$V_CONNECTION_METHOD) in silent mode"
  563. fi
  564. fi
  565. fi # end collect db_list
  566. done
  567. fi #remote/local
  568. fi #$db_file
  569. IFS=$OLDIFS
  570. log_write "#Troubleshooting"
  571. log_write "------------------------------------------------------------------------------"
  572. log_write "#df -k ${CT_TMP}"
  573. df -k "${CT_TMP}" >>$logfile
  574. log_write "------------------------------------------------------------------------------"
  575. ls -Rl >>$logfile
  576. if [ -f "look_for_running_sids.log" ]; then
  577. log_write "------------------------------------------------------------------------------"
  578. cat look_for_running_sids.log >>$logfile
  579. rm -f look_for_running_sids.log
  580. fi
  581. log_write "------------------------------------------------------------------------------"
  582. log_write "Script End Time=`date '+%m/%d/%Y %H:%M %Z'`"