Saturday, July 27, 2024

srdc_xdbinfo.sql

 

Rem

Rem

Rem srdc_xdbinfo.sql

Rem

Rem Copyright (c) 2012, 2015, Oracle and/or its affiliates.

Rem All rights reserved.

Rem

Rem    NAME

Rem      srdc_xdbinfo.sql - Oracle XML Database Check

Rem

Rem    DESCRIPTION

Rem      Checks the Oracle XML Database (XDB) health of a DB

Rem

Rem    NOTES

Rem      .

Rem

Rem    MODIFIED   (MM/DD/YY)

Rem    rfarid      01/28/19 - Created

Rem    sumendoz    03/04/19 - Modified for SRDC standardization

Rem    sumendoz    03/05/19 - Modified health check

Rem

Rem

define SRDCNAME='XDB_INFO'

set pagesize 200 verify off sqlprompt "" term off entmap off echo off

set markup html on spool on

COLUMN SRDCSPOOLNAME NOPRINT NEW_VALUE SRDCSPOOLNAME

select 'SRDC_'||upper('&&SRDCNAME')||'_'||upper(instance_name)||'_'||

       to_char(sysdate,'YYYYMMDD_HH24MISS') SRDCSPOOLNAME from v$instance;

spool &&SRDCSPOOLNAME..htm

select 'Diagnostic-Name: ' || '&&SRDCNAME'  as "SRDC COLLECTION HEADER"  from dual

union all

select 'Time: ' || to_char(systimestamp, 'YYYY-MM-DD HH24MISS TZHTZM' ) from dual

union all

select 'Machine: ' || host_name from v$instance

union all

select 'Version: '|| version from v$instance

union all

select 'DBName: '||name from v$database

union all

select 'Instance: '||instance_name from v$instance

/

set serveroutput on

alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'

/

 

define LOWTHRESHOLD=10

define MIDTHRESHOLD=62

define VERBOSE=TRUE

 

set veri off;

set feedback off;

REM === -- end of standard header -- ===

set markup html preformat on

set lines 150 trimspool on pages 50000 long 100000 tab off

 

PROMPT *************************************************************************

PROMPT Instance and platform information

PROMPT *************************************************************************

COLUMN Platform FORMAT a30 HEADING 'PLATFORM'

SELECT instance_name, version FROM v$instance;

SELECT NLS_UPPER(platform_name) "Platform" FROM v$database;

SELECT substrb(parameter,1,24)parameter,

       substrb(value,1,12)value

FROM nls_database_parameters

WHERE parameter LIKE '%SET' ORDER BY 1;

SELECT substrb(Comp_ID,1,10)Comp_ID,

               substrb(Status,1,8)Status,

               substrb(Version,1,12)Version,

               substrb(Comp_Name,1,35)Comp_Name

FROM DBA_Registry

ORDER by 1,2;

 

PROMPT *************************************************************************

PROMPT Invalid objects under SYS and XDB, and related rows from dba_errors

PROMPT *************************************************************************

COLUMN owner       FORMAT a10 HEADING 'OWNER'

COLUMN object_name FORMAT a30 HEADING 'OBJECT NAME'

COLUMN object_type FORMAT a15 HEADING 'OBJECT_TYPE'

SELECT owner, object_name, object_type, status

FROM DBA_OBJECTS

WHERE STATUS = 'INVALID'

  AND owner IN ('SYS', 'XDB')

ORDER BY OWNER, OBJECT_NAME, OBJECT_TYPE;

COLUMN name        FORMAT a30 HEADING 'NAME'

COLUMN position    FORMAT a10 HEADING 'ERR LOC'

COLUMN text        FORMAT a150 HEADING 'COMPILATION ERROR'

SELECT e.owner, e.name, TO_CHAR(e.line) || '/' || TO_CHAR(e.position) "POSITION", e.text

FROM dba_errors e

where owner in ('SYS', 'XDB')

ORDER BY e.owner, e.name, e.sequence;

 

PROMPT *************************************************************************

PROMPT Privileges granted to PUBLIC and XDB

PROMPT *************************************************************************

select substrb(owner,1,10)owner,

       substrb(table_name,1,20)table_name,

       substrb(grantee,1,12)grantee,

       substrb(privilege,1,10)privilege

from dba_tab_privs

where table_name in ('UTL_FILE','DBMS_LOB','UTL_HTTP','DBMS_JOB','DBMS_SQL','DBMS_RAW','DBMS_RANDOM','UTL_SMTP','DUAL','ALL_USERS')

and grantee in ('PUBLIC', 'XDB')

order by 1,2,3;

 

PROMPT *************************************************************************

PROMPT Information on ANONYMOUS user

PROMPT *************************************************************************

col account_status format a18

col user_id format 999999

col username format a10

col ptime heading 'PASSWORD CHANGE TIME'

col lock_date heading 'ACCOUNT LOCK DATE'

select username, d.user_id, d.created, u.ptime, d.lock_date, d.expiry_date, d.account_status

from dba_users d, user$ u

where d.user_id = u.user#

  and d.username = 'ANONYMOUS';

 

PROMPT *************************************************************************

PROMPT List of XMLType tables and tables with XMLType columns

PROMPT *************************************************************************

set lines 200

col owner format a20

col table_name format a28

col XMLSCHEMA format a75

select OWNER,TABLE_NAME, STORAGE_TYPE, XMLSCHEMA

from dba_xml_tables

order by 1,2;

col column_name format a28

select OWNER, TABLE_NAME, COLUMN_NAME, STORAGE_TYPE, XMLSCHEMA

from dba_xml_tab_cols

order by 1,2,3;

 

PROMPT *************************************************************************

PROMPT List of User-defined XMLIndexes

PROMPT *************************************************************************

col parameters format a50 wrap heading 'ParameterS'

select index_owner, index_name, parameters, table_owner, table_name, type, index_type from dba_xml_indexes;

 

PROMPT *************************************************************************

PROMPT Relevant Database parameters

PROMPT *************************************************************************

set lines 200

Col "Parameter" for a60

col "Session Value"  for a30

col "Instance Value"  for a30

show parameter compatible

show parameter dispatcher

show parameter SHARED_SERVERS

show parameter local_listener

show parameter services

 

PROMPT *************************************************************************

PROMPT Configured ports

PROMPT *************************************************************************

COLUMN http_port FORMAT 99999 HEADING 'HTTP Port'

COLUMN ftp_port  FORMAT 99999 HEADING 'FTP Port'

select dbms_xdb.gethttpport http_port,

       dbms_xdb.getftpport ftp_port

  from dual;

COLUMN "Protocol" FORMAT a15 HEADING 'Protocol'

COLUMN "https_port" FORMAT a10 HEADING 'HTTPS Port'

select extractValue(value(x),'/httpconfig/http2-protocol', 'xmlns=http://xmlns.oracle.com/xdb/xdbconfig.xsd') "Protocol"

,      extractValue(value(x),'/httpconfig/http2-port', 'xmlns=http://xmlns.oracle.com/xdb/xdbconfig.xsd') "https_port"

from   table(xmlsequence(extract(xdburitype('/xdbconfig.xml').getXML(),'/xdbconfig/sysconfig/protocolconfig/httpconfig'))) x

/

 

PROMPT *************************************************************************

PROMPT XDB Repository Information

PROMPT *************************************************************************

PROMPT -- Registered schemas:

col schema_url format a60

select owner, schema_url, local

from dba_xml_schemas

order by 1,2;

 

PROMPT -- Number of resources per user:

col user format a12

select distinct (a.username) "USER", count (r.xmldata) "TOTAL Resources"

from dba_users a, xdb.xdb$resource r

where sys_op_rawtonum (extractvalue (value(r),'/Resource/OwnerID/text()')) = a.USER_ID

group by a.username;

 

PROMPT -- Can the Resource_View be queried?'

COLUMN any_path FORMAT a15 HEADING 'ANY_PATH'

set lines 260

select any_path from resource_view where equals_path(RES, '/xdbconfig.xml')=1;

 

PROMPT -- Display the xdbconfig.xml

select XDBUriType('/xdbconfig.xml').getXML() from dual;

 

PROMPT *************************************************************************

PROMPT Registry information

PROMPT *************************************************************************

col comments format a38

col version format a10

col namespace format a10

col action_time format a30

col action format a15

col bundle_series format a15

select * from sys.registry$history order by 1 desc;

 

SET SERVEROUTPUT OFF

Rem===========================================================================================================================================

spool off

set markup html off spool off

set sqlprompt "SQL> " term on  echo off

PROMPT

PROMPT REPORT GENERATED : &SRDCSPOOLNAME..htm

PROMPT

Rem===========================================================================================================================================

set verify on echo on

exit

 

 

 




 

No comments:

Post a Comment