home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a524 / 28.ddi / install / rdbms.install < prev    next >
Encoding:
Text File  |  1991-03-04  |  15.5 KB  |  554 lines

  1. :
  2.  
  3. #
  4. # $Header: rdbms.in.pp,v 6.95 89/11/14 15:30:36 rafsarif Exp $ rdbms.in.pp
  5. #
  6.  
  7. #
  8. #  rdbms.install
  9. #
  10. #  This is the installation script to install the ORACLE RDBMS on a
  11. #  UNIX ORACLE system.
  12. #
  13. #  It can be invoked by the master installation script, oracle.install,
  14. #  or as a stand alone procedure.
  15. #
  16. #  The master script, oracle.install, sets ORACLE_HOME, 
  17. #  and LOG before it runs this script.
  18. #  If the script is run stand-alone, then these variables must be set and
  19. #  exported before it is run.
  20. #
  21. #  Default answers are shown in square brackets.
  22. #
  23.  
  24. NETLIBNAME="nsl_s"
  25. PHYS_BLK_SIZE=2048  
  26. VNDR_NETLIBS="-lnsl_s "
  27. CHOWN=/bin/chown
  28. MAKE=make        
  29. ORACLE_LPPROG="/usr/bin/lp"
  30. ORACLE_PAGER="/usr/bin/more"
  31. ORACLE_LPSTAT="/usr/bin/lpstat"
  32.  
  33. product=rdbms
  34. PRODUCT=RDBMS
  35. MKTG_NAME="ORACLE RDBMS"
  36.  
  37. #
  38. #  Setup  the environment variables for the installation script.
  39. #
  40. . $ORACLE_HOME/install/setup.ins
  41.  
  42. #
  43. # Protect bin directory
  44. #
  45. cd $ORACLE_HOME/bin
  46.     chmod 755 .
  47.  
  48. chmod 4751 oracle 2>/dev/null
  49. chmod 751 sqldba exp imp odl 2>/dev/null
  50.  
  51. #
  52. # "install" user scripts
  53. #
  54. chmod 755 coraenv dbhome oerr oraenv >> $LOG 2>&1
  55.  
  56. #
  57. # Protect dbs directory
  58. #
  59. cd $ORACLE_HOME/dbs
  60. chmod 755 . >> $LOG 2>&1
  61. for i in `ls $ORACLE_HOME/dbs/* `;
  62. do
  63.      if [ -f $i ]; then
  64.             chmod 644 $i;
  65.      fi
  66. done
  67.  
  68. chmod 444  $ORACLE_HOME/${product}/mesg/*
  69.  
  70. #
  71. #  Create rdbms/log directory for trace files.
  72. #
  73. if [ ! -d $ORACLE_HOME/rdbms/log ]; then
  74.    mkdir $ORACLE_HOME/rdbms/log >> $LOG 2>&1
  75. fi
  76.  
  77. #
  78. #  Check if any database or log files corresponding to the same SID
  79. #  already exist. If they do ask user if they want to continue since 
  80. #  the old data will be lost by recreating the database.
  81. #  For 6.0.27, the default control file name has been changed from
  82. #  control1{SID}.dbf to cntrl{SID}.dbf.
  83. #
  84. if [ "$UPDATE" = "Y" ] ; then
  85.    if [ -f $ORACLE_HOME/dbs/control1${ORACLE_SID}.dbf \
  86.     -a ! -f $ORACLE_HOME/dbs/cntrl${ORACLE_SID}.dbf ]; then
  87.      echo "Please rename 'control1${ORACLE_SID}.dbf' to 'cntrl${ORACLE_SID}.dbf' for 6.0.27." | tee -a $LOG
  88.      echo "Also modify the database startup parameter 'control_files' if necessary." | tee -a $LOG
  89.      echo "Please refer to IUG for more information." | tee -a $LOG
  90.      echo "Upgrade to 6.0.27 failed!" | tee -a $LOG
  91.      echo "Exiting ORACLE RDBMS install." | tee -a $LOG
  92.      exit 1
  93.    fi
  94. else
  95.  
  96.    if [ -f $ORACLE_HOME/dbs/*${ORACLE_SID}.dbf ] ; then
  97.  
  98.       echo ""
  99.       echo "The following database files were found in $ORACLE_HOME/dbs:" | tee -a $LOG
  100.       ls $ORACLE_HOME/dbs/*${ORACLE_SID}.dbf | tee -a $LOG
  101.       echo "Continuing with DEFAULT installation will overwrite these files." | tee -a $LOG
  102.       echo $N "Okay to continue? $C" | tee -a $LOG
  103.       DEFLT=N; . $INSTALL_HOME/read.sh; ANSWER=$RDVAR
  104.       case $ANSWER in
  105.           Y|y)     ;;
  106.            *)      echo "Exiting ORACLE RDBMS install." | tee -a $LOG
  107.                exit 0 ;;
  108.       esac
  109.    fi
  110. fi
  111.  
  112. #
  113. #  Check if a database is already running.  If it is, then ask if install
  114. #  should proceed?
  115. #
  116. if [ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf ] ; then
  117.     echo ""
  118.     echo ""
  119.     echo "Database currently running." | tee -a $LOG
  120.     echo $N "Okay to shutdown the database? $C" | tee -a $LOG
  121.     DEFLT=N; . $INSTALL_HOME/read.sh; ANSWER=$RDVAR
  122.     case $ANSWER in
  123.     Y|y)    echo "Shutting down current database..." | tee -a $LOG
  124.         sqldba command=shutdown >> $LOG ;;
  125.     *)    echo "
  126. The database has to be brought down for $MKTG_NAME installation.
  127. You can shutdown the database and repeat the installation,
  128. or repeat the automated installation and answer Y to the above question.
  129. Exiting ORACLE RDBMS install." | tee -a $LOG
  130.         exit 0 ;;
  131.     esac
  132. fi
  133.  
  134. #
  135. #  Run the script under osh to raise the ulimit if osh has been installed
  136. #  but not run.
  137. #  The number compared to $LIMIT is taken from osh.c.
  138. #
  139.  
  140. ULIMIT=`ulimit`
  141.  
  142. if [ -x $ORACLE_HOME/bin/osh -a "$ULIMIT" -lt 2113674 ]; then
  143.     $ORACLE_HOME/bin/osh $0
  144.     exit 0
  145. fi
  146.  
  147. #
  148. # Touch sysliblist. This assures that makefiles will find this file
  149. # even if no network driver was installed.
  150. #
  151. touch  $ORACLE_HOME/rdbms/lib/sysliblist
  152.  
  153. #
  154. # If executables are not going to be linked, check to make sure the dba group
  155. # in config.c is valid. If not the user will have the choice between relinking
  156. # or exiting and reseting the group id.
  157. #
  158. if [ "$LINK_PRODUCT" != "T" ] ; then
  159.    DBA_GRP="`grep '#define SS_DBA_GRP' $ORACLE_HOME/rdbms/lib/config.c |   \
  160.             sed 's/#define SS_DBA_GRP \"//' | sed 's/\"$//'`"
  161.  
  162.    GID=`id| sed 's/.*gid=.*(//'| sed 's/)$//'`
  163.    if [ "`echo $GID | grep $DBA_GRP`" = "" ] ; then
  164.       echo ""
  165.       echo "
  166.       $DBA_GRP is the privileged group in $ORACLE_HOME/rdbms/lib/config.c,
  167.       but is not your current group id. Your options are:
  168.       
  169.     1 - Continue running $MKTG_NAME installation and relink the 
  170.         rdbms executables, with group id = $GID.
  171.     2 - Exit $MKTG_NAME installation, reset you group id, and repeat 
  172.         the installation." | tee -a $LOG
  173.  
  174.       echo $N "Please enter you option. $C" | tee -a $LOG
  175.       DEFLT=2; . $INSTALL_HOME/read.sh; ANSWER=$RDVAR
  176.       case $ANSWER in
  177.      1)    LINK_PRODUCT="T" ;;
  178.      *)    echo "Exiting ORACLE RDBMS install..." | tee -a $LOG
  179.         exit 0 ;;
  180.       esac
  181.    fi
  182. fi
  183.  
  184. #
  185. #  Determine gid for ORACLE DBA access and put it into config.c.
  186. #
  187. if [ "$LINK_PRODUCT" = "T" -o "$TPO_INSTALL" = "T" -o "$PLSQL_INSTALL" = "T" ]
  188. then 
  189. GID=`grep "^$ORACLE_OWNER:" /etc/passwd 2>/dev/null| awk -F: '{print $4}'` 
  190.  
  191. # If GID is null, check if the system is yellow paged.
  192. if [ "$GID" = "" ] ; then
  193.    GID=`sh ypmatch $ORACLE_OWNER passwd.byname 2>/dev/null | awk -F: '{print $4}'`
  194. fi
  195.  
  196. GROUPD=`fgrep :$GID: /etc/group | awk -F: '{print $1}'` 2>> $LOG
  197.  
  198. # If GROUPD is null check if yellow page is running
  199. if [ "$GROUPD" = "" ] ; then
  200.    GROUPD=`sh ypmatch "$GID" group.bygid 2> /dev/null | awk -F: '{print $1}'`
  201. fi
  202. while : ; do
  203.     echo ""
  204.     echo ""
  205.     echo $N "Enter the privileged group name for SQL*DBA. $C"
  206.     DEFLT="$GROUPD"; . $INSTALL_HOME/read.sh; ANS=$RDVAR
  207.     SAVE_ANS=`grep "^$ANS:" /etc/group`
  208. # Check the yellow pages.
  209.     if [ "$SAVE_ANS" = "" ] ; then
  210.     SAVE_ANS=`sh ypmatch "$ANS" group.byname 2> /dev/null`
  211.     fi
  212.     if [ "$SAVE_ANS" = "" ] ; then
  213.     if [ "$ORACLE_DEFAULT" = "T" ] ; then
  214.         echo ""
  215.         echo "The default group name corresponding to group id $GID is not valid."
  216.         echo "Please check /etc/passwd and /etc/group, and run the script again."
  217.         exit 1
  218.     else
  219.         echo ""
  220.         echo "$ANS is not a valid group. Please select again."
  221.         continue
  222.     fi
  223.     fi
  224.     case "$ANS" in
  225.     "")    GROUP=$GROUPD ; break ;;
  226.     *)    GROUP=$ANS ; break ;;
  227.     esac
  228. done
  229.  
  230. GID=`echo $SAVE_ANS | awk -F: '{print $3}'` 2>> $LOG
  231.  
  232. echo ""
  233. echo "Setting ORACLE DBA access group to $GROUP ($GID)..." | tee -a $LOG
  234. echo ""
  235. cd $ORACLE_HOME/rdbms/lib
  236. chmod u+w config.c > /dev/null 2>&1
  237. if [ ! -f config.cO ]  ; then
  238.   cp config.c config.cO > /dev/null 2>&1
  239. fi
  240. sed -e "s/#define SS_DBA_GRP.*$/#define SS_DBA_GRP \"$GROUP\"/" config.cO > config.c 2>> $LOG
  241.  
  242. #
  243. #  Link and install product executables.
  244. #
  245. echo ""
  246. echo "Linking and installing $MKTG_NAME executables..." | tee -a $LOG
  247. echo ""
  248. cd $ORACLE_HOME/rdbms/lib
  249. $MAKE -f oracle.mk ORACLE_HOME=$ORACLE_HOME install osntabst.o >> $LOG 2>&1
  250. if [ $? != 0 ] ; then
  251.       echo "
  252.     Relinking Error.
  253.     The executable for $MKTG_NAME was not made successfully.
  254.     Please check the log file, and repeat the installation
  255.     procedure for $MKTG_NAME.
  256.     " | tee -a $LOG
  257. fi
  258. else
  259. cd $ORACLE_HOME/rdbms/lib
  260. $MAKE -f oracle.mk ORACLE_HOME=$ORACLE_HOME osntab.o osntabst.o >> $LOG 2>&1
  261. if [ $? != 0 ] ; then
  262.       echo "
  263.     Relinking Error.
  264.     $ORACLE_HOME/rdbms/lib/osntab.o was not made successfully.
  265.     Please check the log file, and generate osntab.o by:
  266.     cd $ORACLE_HOME/rdbms/lib
  267.     rm osntab.c
  268.     make -f oracle.mk osntab.o osntabst.o
  269.     " | tee -a $LOG
  270. fi
  271. fi          # end of LINK_PRODUCT
  272.  
  273. #
  274. #  Set up init.ora file for this SID.
  275. #
  276. echo ""
  277. if [ "$UPDATE" = "Y" ] ; then
  278.    if [ -f $ORACLE_HOME/dbs/init${ORACLE_SID}.ora ]; then
  279.       echo "Removing obsoleted database startup parameters in"
  280.       echo "($ORACLE_HOME/dbs/init${ORACLE_SID}.ora) for 6.0.27..." |tee -a $LOG
  281.       grep -i -v 'db_block_.*_pct' $ORACLE_HOME/dbs/init${ORACLE_SID}.ora \
  282.        > /tmp/init$$.ora
  283.       mv -f /tmp/init$$.ora $ORACLE_HOME/dbs/init${ORACLE_SID}.ora 2> /dev/null
  284.    else
  285.       echo "$ORACLE_HOME/dbs/init${ORACLE_SID}.ora does not exist!"| tee -a $LOG
  286.       echo "Upgrade to 6.0.27 failed!" | tee -a $LOG
  287.       echo "Exiting ORACLE RDBMS install." | tee -a $LOG
  288.       exit 1
  289.    fi
  290.    #
  291.    #  Bring up the database
  292.    #
  293.    echo ""
  294.    echo "Bringing the database up..." | tee -a $LOG
  295.    echo ""
  296.    sqldba command=startup > temp$$.log 2>&1
  297.    fgrep 'Database opened.' temp$$.log > /dev/null 2>&1
  298.    if test $? -gt 0
  299.    then
  300.       echo "Upgrade to 6.0.27 failed!" | tee -a $LOG
  301.       echo "Please check diagnostic output file $LOG"
  302.       echo "and restart the upgrade process."
  303.       cat temp$$.log >> $LOG
  304.       echo "Exiting ORACLE RDBMS install." | tee -a $LOG
  305.       exit 10
  306.    fi
  307.    rm -f temp$$.log
  308. else
  309.    echo $N "Name of the database? $C"
  310.    DEFLT=$ORACLE_SID ; . $INSTALL_HOME/read.sh; DBNAME=$RDVAR
  311.    echo "Creating database startup parameter file 
  312. ($ORACLE_HOME/dbs/init${ORACLE_SID}.ora)..." | tee -a $LOG
  313.    mv -f $ORACLE_HOME/dbs/init${ORACLE_SID}.ora \
  314.     $ORACLE_HOME/dbs/init${ORACLE_SID}.oraO >> $LOG 2> /dev/null
  315.    sed "s/^db_name.*/db_name = $DBNAME/" $ORACLE_HOME/dbs/init.ora > $ORACLE_HOME/dbs/init${ORACLE_SID}.ora 2>&1
  316.    chmod 664 $ORACLE_HOME/dbs/init${ORACLE_SID}.ora >> $LOG 2>&1
  317.  
  318.    case $LOG_SIZE in
  319.     "")     LOG_SIZE=500K ;;        # default log file size (bytes)
  320.    esac
  321.    case $DBS_SIZE in
  322.     "")     DBS_SIZE=10M ;;         # default database size (bytes)
  323.    esac
  324.    case $DBS_FILE in
  325.     "")    DBS_FILE=\?/dbs/dbs${ORACLE_SID}.dbf ;;
  326.    esac
  327.    case $LOG_FILE1 in
  328.     "")    LOG_FILE1=\?/dbs/log1${ORACLE_SID}.dbf ;;
  329.    esac
  330.    case $LOG_FILE2 in
  331.      "")    LOG_FILE2=\?/dbs/log2${ORACLE_SID}.dbf ;;
  332.    esac
  333.  
  334.    echo
  335.    echo "The default database and log files are as follows:
  336.  
  337.    database file:    $DBS_SIZE    bytes in $DBS_FILE
  338.    log file 1:        $LOG_SIZE    bytes in $LOG_FILE1
  339.    log file 2:        $LOG_SIZE    bytes in $LOG_FILE2
  340.  
  341.    "
  342.    echo $N "Is this okay? $C"
  343.    DEFLT=Y ; . $INSTALL_HOME/read.sh; DBCORRECT=$RDVAR
  344.  
  345.    case $DBCORRECT in
  346.      N|n)
  347.     echo $N "Name of the database file? $C"
  348.     DEFLT=$DBS_FILE ; . $INSTALL_HOME/read.sh; DBS_FILE=$RDVAR
  349.  
  350.     echo $N "Size of the database file? $C"
  351.     DEFLT=$DBS_SIZE ; . $INSTALL_HOME/read.sh; DBS_SIZE=$RDVAR
  352.  
  353.     echo $N "Name of log file 1? $C"
  354.     DEFLT=$LOG_FILE1 ; . $INSTALL_HOME/read.sh; LOG_FILE1=$RDVAR
  355.  
  356.     echo $N "Name of log file 2? $C"
  357.     DEFLT=$LOG_FILE2 ; . $INSTALL_HOME/read.sh; LOG_FILE2=$RDVAR
  358.  
  359.     echo $N "Size of the log files? $C"
  360.     DEFLT=$LOG_SIZE ; . $INSTALL_HOME/read.sh; LOG_SIZE=$RDVAR ;;
  361.    esac
  362.  
  363.    case $LOG_SIZE in
  364.      *K|*k)
  365.     LOG_NUM=`echo $LOG_SIZE | sed -e 's/K//' -e 's/k//'`
  366.     LOG_BYTES=`expr $LOG_NUM \* 1024`
  367.     ;;
  368.      *M|*m)
  369.     LOG_NUM=`echo $LOG_SIZE | sed -e 's/M//' -e 's/m//'`
  370.     LOG_BYTES=`expr $LOG_NUM \* 1048576`
  371.     ;;
  372.      *)
  373.     LOG_BYTES=$LOG_SIZE
  374.     ;;
  375.    esac
  376.  
  377.    case $DBS_SIZE in
  378.      *K|*k)
  379.     DBS_NUM=`echo $DBS_SIZE | sed -e 's/K//' -e 's/k//'`
  380.     DBS_BYTES=`expr $DBS_NUM \* 1024`
  381.     ;;
  382.      *M|*m)
  383.     DBS_NUM=`echo $DBS_SIZE | sed -e 's/M//' -e 's/m//'`
  384.     DBS_BYTES=`expr $DBS_NUM \* 1048576`
  385.     ;;
  386.      *)
  387.     DBS_BYTES=$DBS_SIZE
  388.     ;;
  389.    esac
  390.  
  391.    ULIMIT_BYTES=`expr $ULIMIT \* $PHYS_BLK_SIZE`
  392.  
  393.    if [ "$DBS_BYTES" -gt "$ULIMIT_BYTES" -o "$LOG_BYTES" -gt "$ULIMIT_BYTES" ]
  394.    then
  395.       echo ""
  396.       echo "The specified database ($DBS_SIZE) or log ($LOG_SIZE) "
  397.       echo "file size is larger than your ulimit ($ULIMIT). "
  398.       echo "Run root install or consult installation guide to install \"osh\"."
  399.       exit 1
  400.    fi
  401.  
  402.    #
  403.    #  Create database & log files and init database.
  404.    #
  405.    echo ""
  406.    echo "Creating and initializing database and log files." | tee -a $LOG
  407.    echo "This may take several minutes.  Please be patient..."
  408.    sqldba <<END  > temp$$.log 2>&1
  409.    startup nomount
  410.    connect internal
  411.    create database $DBNAME controlfile reuse
  412.        logfile '$LOG_FILE1' size $LOG_SIZE reuse,
  413.                '$LOG_FILE2' size $LOG_SIZE reuse
  414.        datafile '$DBS_FILE' size $DBS_SIZE reuse ;
  415. END
  416.  
  417.    # a hack to check if create database has succeeded.
  418.    grep 'Statement processed.' temp$$.log >/dev/null 2>&1
  419.    if test $? -gt 0
  420.    then
  421.       echo "Create database Failed." | tee -a $LOG
  422.       echo "Please check diagnostic output file $LOG"
  423.       echo "and restart installation."
  424.       cat temp$$.log >> $LOG
  425.       exit 10
  426.    fi
  427.    rm -f temp$$.log
  428.  
  429.    case $SUPER_USER in
  430.       TRUE) $CHOWN $ORACLE_OWNER $LOG_FILE1 $LOG_FILE2 $DBS_FILE init.log ;;
  431.    esac
  432.  
  433.    #
  434.    #  Load System Catalog.
  435.    #
  436.    echo ""
  437.    echo "Installing Data Dictionary Views (sqldba @catalog.sql)." | tee -a $LOG
  438.  
  439.    echo "This may take 20-30 minutes.  Please be patient..."
  440.  
  441.    sqldba <<END  >> $LOG 2>&1
  442. set termout off
  443. connect sys/change_on_install
  444. @?/rdbms/admin/catalog.sql
  445. @?/rdbms/admin/expvew.sql
  446. END
  447.    echo "
  448. Data Dictionary Views Installed.
  449.    " >> $LOG
  450.  
  451.    #
  452.    #  Change the SYS and SYSTEM password
  453.    #
  454.    echo ""
  455.    case "$SYS_PASS" in
  456.       "")    ;;
  457.       change_on_install)    ;;
  458.       *)    echo "Changing SYS account password..." | tee -a $LOG
  459.          sqldba <<! >> $LOG 2>&1 ;;
  460.         connect sys/change_on_install
  461.         grant connect to sys identified by $SYS_PASS;
  462. !
  463.    esac
  464.    case "$SYSTEM_PASS" in
  465.       "")    ;;
  466.        system/manager)    ;;
  467.        *)    PASS=`basename $SYSTEM_PASS`
  468.         echo "Changing SYSTEM account password..." | tee -a $LOG
  469.         sqldba <<! >> $LOG 2>&1 ;;
  470.         connect system/manager
  471.         grant connect to system identified by $PASS;
  472. !
  473.    esac
  474.    echo ""
  475. fi
  476.  
  477. #
  478. #  Use "touch" to time stamp hidden file, for future verification of 
  479. #  product installation.
  480. touch "$ORACLE_HOME/$product/install/.$product" 2> /dev/null
  481.  
  482. #
  483. #  Hook for verification scripts -- this must happen last
  484. #
  485. case "$ORACLE_VERIFY" in
  486.     T)    if [ -f $ORACLE_HOME/$product/install/${product}.verify ] ; then
  487.         ORACLE_INSTALL=T ; export ORACLE_INSTALL
  488.         chmod 755 $ORACLE_HOME/$product/install/${product}.verify
  489.         $ORACLE_HOME/$product/install/${product}.verify
  490.     fi
  491.     #
  492.     # if tcp.install and rdbms.install are both called (e.g. by
  493.     # oracle.install), verify TCP/IP too.
  494.     #
  495.     if [ "$TCP_INSTALL" = "T" ] ; then
  496.         if [ -f $ORACLE_HOME/tcp/install/tcp.verify ] ; then
  497.         chmod 755 $ORACLE_HOME/tcp/install/tcp.verify
  498.         $ORACLE_HOME/tcp/install/tcp.verify
  499.         fi
  500.     fi
  501.     #
  502.     # if async.install and rdbms.install are both called (e.g. by
  503.     # oracle.install), verify ASYNC too.
  504.     #
  505.     if [ "$ASYNC_INSTALL" = "T" ] ; then
  506.         if [ -f $ORACLE_HOME/async/install/async.verify ] ; then
  507.         chmod 755 $ORACLE_HOME/async/install/async.verify
  508.         $ORACLE_HOME/async/install/async.verify
  509.         fi
  510.     fi
  511.     #
  512.     # if dnt.install and rdbms.install are both called (e.g. by
  513.     # oracle.install), verify DNT too.
  514.     #
  515.     if [ "$DNT_INSTALL" = "T" ] ; then
  516.         if [ -f $ORACLE_HOME/dnt/install/dnt.verify ] ; then
  517.         chmod 755 $ORACLE_HOME/dnt/install/dnt.verify
  518.         $ORACLE_HOME/dnt/install/dnt.verify
  519.         fi
  520.     fi
  521.     #
  522.     # if plsql.install and rdbms.install are both called (e.g. by
  523.     # oracle.install), verify PL/SQL too.
  524.     #
  525.     if [ "$PLSQL_INSTALL" = "T" ] ; then
  526.         if [ -f $ORACLE_HOME/plsql/install/plsql.verify ] ; then
  527.         chmod 755 $ORACLE_HOME/plsql/install/plsql.verify
  528.         $ORACLE_HOME/plsql/install/plsql.verify
  529.         fi
  530.     fi
  531.     #
  532.     # if tpo.install and rdbms.install are both called (e.g. by
  533.     # oracle.install), verify the transaction processing option too.
  534.     #
  535.     if [ "$TPO_INSTALL" = "T" ] ; then
  536.         if [ -f $ORACLE_HOME/tpo/install/tpo.verify ] ; then
  537.            $ORACLE_HOME/tpo/install/tpo.verify
  538.         fi
  539.     fi
  540.     ;;
  541. esac
  542.  
  543. #
  544. #  Cleanup and exit code.
  545. #
  546. echo ""
  547. case $UPDATE in
  548.     Y) echo "$MKTG_NAME update completed." | tee -a $LOG ;;
  549.     *) echo "$MKTG_NAME installation completed." | tee -a $LOG ;;
  550. esac
  551. echo ""
  552. sync;sync;sync
  553. exit 0
  554.