Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 3rd, 2012  |  syntax: None  |  size: 19.22 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. -- - - - - - - - - - - - - - Script begins here - - - - - - - - - - - - - -
  2. --  NAME:  DBUPGDIAG.SQL  
  3. --  Version: 1.2
  4. --  Executed as SYS as sysdba
  5. -- ------------------------------------------------------------------------
  6. -- AUTHOR:  
  7. --    Raja Ganesh and Agrim Pandit - Oracle Support Services - DataServer Group
  8. --    Copyright 2008, Oracle Corporation      
  9. -- ------------------------------------------------------------------------
  10. -- PURPOSE:
  11. -- This script is intended to provide a user friendly output to diagonise
  12. -- the status of the database before (or) after upgrade. The script will
  13. -- create a file called db_upg_diag_<sid>_<timestamp>.log in your local
  14. -- working directory. This does not make any DDL / DML modifications.
  15. --
  16. -- This script will work in both Windows and Unix platforms from database
  17. -- version 9.2 or higher.
  18. -- ------------------------------------------------------------------------
  19. -- DISCLAIMER:
  20. --    This script is provided for educational purposes only. It is NOT  
  21. --    supported by Oracle World Wide Technical Support.
  22. --    The script has been tested and appears to work as intended.
  23. --    You should always run new scripts on a test instance initially.
  24. -- ------------------------------------------------------------------------
  25. --
  26. --
  27. col TODAY       NEW_VALUE       _DATE  
  28. col VERSION NEW_VALUE _VERSION
  29. set termout off
  30. select to_char(SYSDATE,'fmMonth DD, YYYY') TODAY from DUAL;
  31. select version from v$instance;
  32. set termout on
  33. set echo off
  34. set feedback off
  35. set head off
  36. set verify off
  37. Prompt
  38. PROMPT Enter location for Spooled output:
  39. Prompt
  40. DEFINE log_path = &1
  41. column timecol new_value timestamp
  42. column spool_extension new_value suffix
  43. SELECT to_char(sysdate,'dd_Mon_yyyy_hhmi') timecol,'.log' spool_extension FROM
  44. sys.dual;
  45. column output new_value dbname
  46. SELECT value || '_' output FROM v$parameter WHERE name = 'db_name';
  47. spool &log_path/db_upg_diag_&&dbname&&timestamp&&suffix
  48. set linesize 150
  49. set pages 100
  50. set trim on
  51. set trims on
  52. col Compatible for a35
  53. col comp_id for a12
  54. col comp_name for a40
  55. col org_version for a11
  56. col prv_version for a11
  57. col owner for a12
  58. col object_name for a40
  59. col object_type for a40
  60. col Wordsize for a25
  61. col Metadata for a8
  62. col 'Initial DB Creation Info' for a35
  63. col 'Total Invalid JAVA objects' for a45
  64. col 'Role' for a30
  65. col 'User Existence' for a27
  66. col "JAVAVM TESTING" for a15
  67. Prompt
  68. Prompt
  69. set feedback off head off
  70. select LPAD('*** Start of LogFile ***',50) from dual;
  71. select LPAD('Oracle Database Upgrade Diagnostic Utility',44)||
  72.        LPAD(TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS'),26) from dual;
  73. Prompt
  74. Prompt ===============
  75. Prompt Hostname
  76. Prompt ===============
  77. select host_name from v$instance;
  78. Prompt
  79. Prompt ===============
  80. Prompt Database Name
  81. Prompt ===============
  82. select name from v$database;
  83. Prompt
  84. Prompt ===============
  85. Prompt Database Uptime
  86. Prompt ===============
  87. SELECT to_char(startup_time, 'HH24:MI DD-MON-YY') "Startup Time"
  88. FROM v$instance;
  89. Prompt
  90. Prompt =================
  91. Prompt Database Wordsize
  92. Prompt =================
  93. SELECT distinct('This is a ' || (length(addr)*4) || '-bit database') "WordSize"
  94. FROM v$process;
  95. Prompt
  96. Prompt ================
  97. Prompt Software Version
  98. Prompt ================
  99. SELECT * FROM v$version;
  100. Prompt
  101. Prompt =============
  102. Prompt Compatibility
  103. Prompt =============
  104. SELECT 'Compatibility is set as '||value Compatible
  105. FROM v$parameter WHERE name ='compatible';
  106. Prompt
  107. Prompt ================
  108. Prompt Archive Log Mode
  109. Prompt ================
  110. Prompt
  111. archive log list
  112. Prompt
  113. Prompt ================
  114. Prompt Auditing Check
  115. Prompt ================
  116. Prompt
  117. set head on
  118. show parameter audit
  119. Prompt
  120. Prompt ================
  121. Prompt Cluster Check
  122. Prompt ================
  123. show parameter cluster_database
  124. Prompt
  125. DOC
  126. ################################################################
  127.  
  128.  If CLUSTER_DATABASE is set to TRUE, change it to FALSE before
  129.  upgrading the database
  130.  
  131. ################################################################
  132. #
  133. Prompt
  134. Prompt ===========================================
  135. Prompt Tablespace and the owner of the aud$ table
  136. Prompt ===========================================
  137. select owner,tablespace_name from dba_extents where segment_name='AUD$' group by owner,tablespace_name;
  138. Prompt
  139. Prompt ============================================================================
  140. Prompt count of records in the sys.aud$ table where dbid is null- Standard Auditing
  141. Prompt ============================================================================
  142. Prompt
  143. set head off
  144. select count(*) as Records  from sys.aud$ where dbid is null;
  145. Prompt
  146. Prompt
  147. Prompt ============================================================================================
  148. Prompt count of records in the system.aud$ when dbid is null, Std Auditing with OLS or DV installed
  149. Prompt ============================================================================================
  150. set head off
  151. select count(*) from system.aud$ where dbid is null;
  152. Prompt
  153. Prompt
  154. Prompt =============================================================================
  155. Prompt count of records in the sys.fga_log$ when dbid is null, Fine Grained Auditing
  156. Prompt =============================================================================
  157. set head off
  158. select count(*) from sys.fga_log$ where dbid is null;
  159. Prompt
  160. Prompt
  161. prompt
  162. Prompt ==========================================
  163. Prompt Oracle Label Security is installed or not
  164. Prompt ==========================================
  165. set head off
  166. SELECT case count(schema)
  167. WHEN 0 THEN 'Oracle Label Security is NOT installed at database level'
  168. ELSE 'Oracle Label Security is installed '
  169. END  "Oracle Label Security Check"
  170. FROM dba_registry
  171. WHERE schema='LBACSYS';
  172. Prompt
  173. Prompt ================
  174. Prompt Number of AQ Records in Message Queue Tables
  175. Prompt ================
  176. Prompt
  177. SET SERVEROUTPUT ON SIZE 100000
  178. declare
  179.    V_COUNT NUMBER;
  180.      cursor c1 is
  181.          select owner,queue_table from dba_queue_tables where owner in ('SYS', 'SYSTEM', 'SYSMAN', 'DBSNMP','WMSYS');
  182.  begin
  183.     for c in c1
  184.      loop
  185.         execute immediate 'select count(1) from ' || c.owner || '.'  || c.queue_table into v_count;
  186.         dbms_output.put_line(c.owner || ' - ' || c.queue_table  || ' - ' || v_count);
  187.      end loop;
  188.  END;
  189.  /
  190. Prompt
  191. Prompt ================
  192. Prompt Time Zone version
  193. Prompt ================
  194. Prompt
  195. SELECT version from v$timezone_file;
  196. Prompt
  197. Prompt ================
  198. Prompt Local Listener
  199. Prompt ================
  200. Prompt
  201. select substr(value,1,50) "Local Listener" from v$parameter where name='local_listener';
  202. Prompt
  203. Prompt ================
  204. Prompt Default and Temporary Tablespaces By User
  205. Prompt ================
  206. Prompt
  207. set head on
  208. COLUMN USERNAME FORMAT A28
  209. COLUMN TEMPORARY_TABLESPACE FORMAT A22
  210. COLUMN DEFAULT_TABLESPACE FORMAT A22
  211. SELECT username, temporary_tablespace,default_tablespace FROM DBA_USERS;
  212. Prompt
  213. Prompt
  214. Prompt ================
  215. Prompt Component Status
  216. Prompt ================
  217. Prompt
  218. SET SERVEROUTPUT ON;
  219. DECLARE
  220.  
  221. ORG_VERSION varchar2(12);
  222. PRV_VERSION varchar2(12);
  223. P_VERSION VARCHAR2(10);
  224.  
  225. BEGIN
  226.  
  227. SELECT version INTO p_version
  228. FROM registry$ WHERE cid='CATPROC' ;
  229.  
  230. IF SUBSTR(p_version,1,5) = '9.2.0' THEN
  231.  
  232. DBMS_OUTPUT.PUT_LINE(RPAD('Comp ID', 8) ||RPAD('Component',35)||
  233.    RPAD('Status',10) ||RPAD('Version', 15));
  234.  
  235. DBMS_OUTPUT.PUT_LINE(RPAD(' ',8,'-') ||RPAD(' ',35,'-')||
  236.    RPAD(' ',10,'-') ||RPAD(' ',15,'-'));
  237.  
  238. FOR x in (SELECT SUBSTR(dr.comp_id,1,8) comp_id,
  239.  SUBSTR(dr.comp_name,1,35) comp_name,
  240.  dr.status Status,SUBSTR(dr.version,1,15) version
  241.  FROM dba_registry dr,registry$ r
  242.  WHERE dr.comp_id=r.cid and dr.comp_name=r.cname
  243.  ORDER BY 1)
  244.  
  245. LOOP
  246.  
  247. DBMS_OUTPUT.PUT_LINE(RPAD(SUBSTR(x.comp_id,1,8),8) ||
  248.    RPAD(SUBSTR(x.comp_name,1,35),35)||
  249.    RPAD(x.status,10) || RPAD(x.version, 15));
  250. END LOOP;
  251.  
  252. ELSIF SUBSTR(p_version,1,5) != '9.2.0' THEN
  253.  
  254. DBMS_OUTPUT.PUT_LINE(RPAD('Comp ID', 8) ||RPAD('Component',35)||  
  255.    RPAD('Status',10) ||RPAD('Version', 15)||
  256.    RPAD('Org_Version',15)||RPAD('Prv_Version',15));
  257.  
  258. DBMS_OUTPUT.PUT_LINE(RPAD(' ',8,'-') ||RPAD(' ',35,'-')||
  259.    RPAD(' ',10,'-')||RPAD(' ',15,'-')||RPAD(' ',15,'-')||
  260.    RPAD(' ',15,'-'));
  261.  
  262. FOR y in (SELECT SUBSTR(dr.comp_id,1,8) comp_id,
  263.  SUBSTR(dr.comp_name,1,35) comp_name, dr.status Status,
  264.  SUBSTR(dr.version,1,11) version,org_version,prv_version
  265.  FROM dba_registry dr,registry$ r
  266.  WHERE dr.comp_id=r.cid and dr.comp_name=r.cname
  267.  ORDER BY 1)
  268.  
  269. LOOP
  270.  
  271. DBMS_OUTPUT.PUT_LINE(RPAD(substr(y.comp_id,1,8), 8) ||
  272.     RPAD(substr(y.comp_name,1,35),35)||RPAD(y.status,10) ||
  273.     RPAD(y.version, 15)||RPAD(y.org_version,15)||RPAD(y.prv_version,15));
  274.  
  275. END LOOP;
  276.  
  277. END IF;
  278. END;
  279. /
  280. SET SERVEROUTPUT OFF
  281. Prompt
  282. Prompt
  283. Prompt
  284. Prompt ======================================================
  285. Prompt List of Invalid Database Objects Owned by SYS / SYSTEM
  286. Prompt ======================================================
  287. Prompt
  288. set head on
  289. SELECT case count(object_name)
  290. WHEN 0 THEN 'There are no Invalid Objects'
  291. ELSE 'There are '||count(object_name)||' Invalid objects'
  292. END "Number of Invalid Objects"
  293. FROM dba_objects
  294. WHERE status='INVALID'
  295. AND owner in ('SYS','SYSTEM');
  296. Prompt
  297. DOC
  298. ################################################################
  299.  
  300.  If there are no Invalid objects below will result in zero rows.
  301.  
  302. ################################################################
  303. #
  304. Prompt
  305. set feedback on
  306. SELECT owner,object_name,object_type
  307. FROM dba_objects
  308. WHERE status='INVALID'
  309. AND owner in ('SYS','SYSTEM')
  310. ORDER BY owner,object_type;
  311. set feedback off
  312. Prompt
  313. Prompt ================================
  314. Prompt List of Invalid Database Objects
  315. Prompt ================================
  316. Prompt
  317. set head on
  318. SELECT case count(object_name)
  319. WHEN 0 THEN 'There are no Invalid Objects'
  320. ELSE 'There are '||count(object_name)||' Invalid objects'
  321. END "Number of Invalid Objects"
  322. FROM dba_objects
  323. WHERE status='INVALID'
  324. AND owner  in
  325. ('SYSMAN','CTXSYS','ORDSYS','MDSYS','EXFSYS','WKSYS','WKPROXY','WK_TEST','OLAPSYS','OUTLIN','TSMSYS',
  326. 'FLOWS_FILES','SI_INFORMATION_SCHMEA','ORACLE_OCM','ORDPLUGINS','DBSNMP');
  327. Prompt
  328. DOC
  329. ################################################################
  330.  
  331.  If there are no Invalid objects below will result in zero rows.
  332.  
  333. ################################################################
  334. #
  335. Prompt
  336. set feedback on
  337. SELECT owner,object_name,object_type
  338. FROM dba_objects
  339. WHERE status='INVALID'
  340. AND owner in ('SYSMAN','CTXSYS','ORDSYS','MDSYS','EXFSYS','WKSYS','WKPROXY','WK_TEST','OLAPSYS','OUTLIN','TSMSYS',
  341. 'FLOWS_FILES','SI_INFORMATION_SCHMEA','ORACLE_OCM','ORDPLUGINS','DBSNMP')
  342. ORDER BY owner,object_type;
  343. set feedback off
  344. Prompt
  345. Prompt ======================================================
  346. Prompt Count of Invalids by Schema
  347. Prompt ======================================================
  348. Prompt
  349. select owner,object_type,count(*) from dba_objects where status='INVALID'
  350. group by owner,object_type order by owner,object_type ;
  351. Prompt ==============================================================
  352. Prompt Identifying whether a database was created as 32-bit or 64-bit
  353. Prompt ==============================================================
  354. Prompt
  355. DOC
  356. ###########################################################################
  357.  
  358.  Result referencing the string 'B023' ==> Database was created as 32-bit
  359.  Result referencing the string 'B047' ==> Database was created as 64-bit
  360.  When String results in 'B023' and when upgrading database to 10.2.0.3.0
  361.  (64-bit) , For known issue refer below articles
  362.  
  363.  Note 412271.1 ORA-600 [22635] and ORA-600 [KOKEIIX1] Reported While
  364.                Upgrading Or Patching Databases To 10.2.0.3
  365.  Note 579523.1 ORA-600 [22635], ORA-600 [KOKEIIX1], ORA-7445 [KOPESIZ] and
  366.               OCI-21500 [KOXSIHREAD1] Reported While Upgrading To 11.1.0.6
  367.  
  368. ###########################################################################
  369. #
  370. Prompt
  371. SELECT SUBSTR(metadata,109,4) "Metadata",
  372. CASE SUBSTR(metadata,109,4)
  373. WHEN 'B023' THEN 'Database was created as 32-bit'
  374. WHEN 'B047' THEN 'Database was created as 64-bit'
  375. ELSE 'Metadata not Matching'
  376. END "Initial DB Creation Info"
  377. FROM sys.kopm$;
  378. Prompt
  379. Prompt ===================================================
  380. Prompt Number of Duplicate Objects Owned by SYS and SYSTEM
  381. Prompt ===================================================
  382. Prompt
  383. Prompt Counting duplicate objects ....
  384. Prompt
  385. SELECT count(1)
  386. FROM dba_objects
  387. WHERE object_name||object_type in
  388.    (SELECT object_name||object_type  
  389.     from dba_objects
  390.     where owner = 'SYS')
  391. and owner = 'SYSTEM';
  392. Prompt
  393. Prompt =========================================
  394. Prompt Duplicate Objects Owned by SYS and SYSTEM
  395. Prompt =========================================
  396. Prompt
  397. Prompt Querying duplicate objects ....
  398. Prompt
  399. SELECT object_name, object_type, subobject_name, object_id
  400. FROM dba_objects
  401. WHERE object_name||object_type in
  402.    (SELECT object_name||object_type  
  403.     FROM dba_objects
  404.     WHERE owner = 'SYS')
  405. AND owner = 'SYSTEM';
  406. Prompt
  407. DOC
  408.  
  409. ################################################################################
  410.  
  411.  If any objects found please follow below article.
  412.  Note 1030426.6 How to Clean Up Duplicate Objects Owned by SYS and SYSTEM schema
  413.  Read the Exceptions carefully before taking actions.
  414.  
  415. ################################################################################
  416. #
  417. Prompt
  418. Prompt ========================
  419. Prompt Password protected roles
  420. Prompt ========================
  421. Prompt
  422. DOC
  423.  
  424. ################################################################################
  425.  
  426.  In version 11.2 password protected roles are no longer enabled by default so if
  427.  an application relies on such roles being enabled by default and no action is
  428.  performed to allow the user to enter the password with the set role command, it
  429.  is recommended to remove the password from those roles (to allow for existing
  430.  privileges to remain available). For more information see:
  431.  
  432.  Note 745407.1 : What Roles Can Be Set as Default for a User?
  433.  
  434. ################################################################################
  435. #
  436. Prompt
  437. Prompt Querying for password protected roles ....
  438. Prompt
  439. break on "Password protected Role"
  440. select r.ROLE "Password protected Role",
  441. p.grantee "Assigned by default to user"
  442. from dba_roles r, dba_role_privs p
  443. where r.PASSWORD_REQUIRED = 'YES' and p.GRANTED_ROLE = r.role
  444. and p.default_role = 'YES'
  445. and p.grantee <> 'SYS' and r.role not in
  446. (select role from dba_application_roles);
  447.  
  448. Prompt
  449. Prompt ================
  450. Prompt JVM Verification
  451. Prompt ================
  452. Prompt
  453. SET SERVEROUTPUT ON
  454. DECLARE
  455.  
  456. V_CT NUMBER;
  457. P_VERSION VARCHAR2(10);
  458.  
  459. BEGIN
  460.  
  461. -- If so, get the version of the JAVAM component
  462. EXECUTE IMMEDIATE 'SELECT version FROM registry$ WHERE cid=''JAVAVM''
  463.                    AND status <> 99' INTO p_version;
  464.  
  465. SELECT count(*) INTO v_ct FROM dba_objects
  466. WHERE object_type LIKE '%JAVA%' AND owner='SYS';
  467.  
  468. IF SUBSTR(p_version,1,5) = '8.1.7' THEN
  469.         IF v_ct>=6787 THEN
  470.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Installed properly');
  471.         ELSE
  472.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Not Installed properly');
  473.         END IF;
  474. ELSIF SUBSTR(p_version,1,5) = '9.0.1' THEN
  475.         IF v_ct>=8585 THEN
  476.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Installed properly');
  477.         ELSE
  478.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Not Installed properly');
  479.         END IF;
  480. ELSIF SUBSTR(p_version,1,5) = '9.2.0' THEN
  481.         IF v_ct>=8585 THEN
  482.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Installed properly');
  483.         ELSE
  484.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Not Installed properly');
  485.         END IF;
  486. ELSIF SUBSTR(p_version,1,6) = '10.1.0' THEN
  487.         IF v_ct>=13866 THEN
  488.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Installed properly');
  489.         ELSE
  490.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Not Installed properly');
  491.         END IF;
  492. ELSIF SUBSTR(p_version,1,6) = '10.2.0' THEN
  493.         IF v_ct>=14113 THEN
  494.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Installed properly');
  495.         ELSE
  496.         DBMS_OUTPUT.PUT_LINE('JAVAVM - Not Installed properly');
  497.         END IF;
  498. END IF;
  499.  
  500. EXCEPTION WHEN NO_DATA_FOUND THEN
  501.         DBMS_OUTPUT.PUT_LINE('JAVAVM - NOT Installed. Below results can be ignored');
  502.  
  503. END;
  504. /
  505. SET SERVEROUTPUT OFF
  506. Prompt
  507. Prompt ================================================
  508. Prompt Checking Existence of Java-Based Users and Roles
  509. Prompt ================================================
  510. Prompt
  511. DOC
  512.  
  513. ################################################################################
  514.  
  515.  There should not be any Java Based users for database version 9.0.1 and above.
  516.  If any users found, it is faulty JVM.
  517.  
  518. ################################################################################
  519. #
  520.  
  521. Prompt
  522. SELECT CASE count(username)
  523. WHEN 0 THEN 'No Java Based Users'
  524. ELSE 'There are '||count(*)||' JAVA based users'
  525. END "User Existence"
  526. FROM dba_users WHERE username LIKE '%AURORA%' AND username LIKE '%OSE%';
  527. Prompt
  528. DOC
  529.  
  530. ###############################################################
  531.  
  532.  Healthy JVM Should contain Six Roles.
  533.  If there are more or less than six role, JVM is inconsistent.
  534.  
  535. ###############################################################
  536. #
  537.  
  538. Prompt
  539. SELECT CASE count(role)
  540. WHEN 0 THEN 'No JAVA related Roles'
  541. ELSE 'There are '||count(role)||' JAVA related roles'
  542. END "Role"
  543. FROM dba_roles
  544. WHERE role LIKE '%JAVA%';
  545. Prompt
  546. Prompt Roles
  547. Prompt
  548. SELECT role FROM dba_roles WHERE role LIKE '%JAVA%';
  549. set head off
  550. Prompt
  551. Prompt =========================================
  552. Prompt List of Invalid Java Objects owned by SYS
  553. Prompt =========================================
  554. SELECT CASE count(*)
  555.        WHEN 0 THEN 'There are no SYS owned invalid JAVA objects'
  556.        ELSE 'There are '||count(*)||' SYS owned invalid JAVA objects'
  557.        END "Total Invalid JAVA objects"
  558. FROM dba_objects
  559. WHERE object_type LIKE '%JAVA%'
  560. AND status='INVALID'
  561. AND owner='SYS';
  562. Prompt
  563. DOC
  564.  
  565. #################################################################
  566.  
  567.  Check the status of the main JVM interface packages DBMS_JAVA
  568.  and INITJVMAUX and make sure it is VALID.
  569.  
  570.  If there are no Invalid objects below will result in zero rows.
  571.  
  572. #################################################################
  573. #
  574. Prompt
  575. set feedback on
  576. SELECT owner,object_name,object_type
  577. FROM dba_objects
  578. WHERE object_type LIKE '%JAVA%'
  579. AND status='INVALID'
  580. AND owner='SYS';
  581. set feedback off
  582. Prompt
  583. DOC
  584.  
  585. #################################################################
  586.  
  587.  If the JAVAVM component is not installed in the database (for
  588.  example, after creating the database with custom scripts), the
  589.  next query will report the following error:
  590.  
  591.    select dbms_java.longname('foo') "JAVAVM TESTING" from dual
  592.    *
  593.    ERROR at line 1:
  594.    ORA-00904: "DBMS_JAVA"."LONGNAME": invalid identifier
  595.  
  596.  If the JAVAVM component is installed, the query should succeed
  597.  with 'foo' as result.
  598.  
  599. #################################################################
  600. #
  601. Prompt
  602. set heading on
  603. select dbms_java.longname('foo') "JAVAVM TESTING" from dual;
  604. set heading off
  605. Prompt
  606.  
  607. set feedback off head off
  608. select LPAD('*** End of LogFile ***',50) from dual;
  609. set feedback on head on
  610. Prompt
  611. spool off
  612. Prompt
  613. set heading off
  614. set heading off
  615. set feedback off
  616. select 'Upload db_upg_diag_&&dbname&&timestamp&&suffix from "&log_path" directory'
  617. from dual;
  618. set heading on
  619. set feedback on
  620. Prompt
  621. -- - - - - - - - - - - - - - - - Script ends here - - - - - - - - - - - - - -