SRDC - ORA-22924 or ORA-1555 on LOB data: Checklist of Evidence to Supply (Doc ID 1682707.1)

Action Plan

1. Check for LOB Corruption usingsrdc_corrupt_LOB.sql script. Collect the spool output.  脚本检查LOB损坏

--srdc_corrupt_LOB.sql 

REM srdc_corrupt_LOB.sql
REM To identify corrupted row(s) in a LOB segment
define SRDCNAME='DB_Corrupt_LOB'
set pagesize 200 verify off 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 : ' "Diagnostic-Name ", '&&SRDCNAME' "Report Info" 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 echo on drop table corrupted_lob_data
/
create table corrupted_lob_data (corrupted_rowid rowid)
/ set term on ACCEPT table_with_lob CHAR PROMPT 'Table Name :'
ACCEPT table_owner CHAR PROMPT 'Table Owner :'
ACCEPT lob_column CHAR PROMPT 'LOB Column Name :' set term off
set serveroutput on set concat off declare
error_1555 exception;
pragma exception_init(error_1555,-1555);
num number;
begin
for cursor_lob in (select rowid r, &&lob_column from &&table_owner.&&table_with_lob) loop
begin
num := dbms_lob.instr (cursor_lob.&&lob_column, hextoraw ('889911')) ;
exception
when error_1555 then
insert into corrupted_lob_data values (cursor_lob.r);
commit;
end;
end loop;
end;
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Corrupt LOB Data ++
prompt ============================================================================================
prompt
set echo on select * from corrupted_lob_data
/
drop table corrupted_lob_data
/ spool off
set markup html off spool off
set term on
PROMPT
PROMPT
PROMPT REPORT GENERATED : &SRDCSPOOLNAME..htm
set echo off
set sqlprompt "SQL> " term on
set verify on
set echo on

2. Download and execute the script srdc_undo.sqlas sysdba. Collect the spool output  以sysdba的身份执行

--srdc_undo.sql

Rem srdc_undo.sql
Rem
Rem Copyright (c) 2006, 2015 Oracle. All rights reserved.
Rem
Rem NAME
Rem srdc_undo.sql - script to collect Undo related diagnostic data
Rem
Rem NOTES
Rem * This script collects the data related to the Undo issues
Rem including the configuration, parameters , statistics etc
Rem and creates a spool output. Upload it to the Service Request for further troubleshooting.
Rem * This script contains some checks which might not be relevant for all versions.
Rem * This script will *not* update any data.
Rem * This script must be run using SQL*PLUS.
Rem * You must be connected AS SYSDBA to run this script.
Rem * Usage: sqlplus / as sysdba @srdc_undo.sql
Rem * Ensure not to change the file name or the contents of the spool output before uploading
Rem to the Service Request.
Rem
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem slabraha 03/14/19 - made a few corrections
Rem slabraha 12/14/18 - updated the header
Rem slabraha 12/06/18 - created the script
Rem
Rem
Rem
define SRDCNAME='DB_Undo'
set pagesize 200 verify off 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 '+----------------------------------------------------+' "HEADER" from dual
union all
select '| Diagnostic-Name: '||'&&SRDCNAME' from dual
union all
select '| Timestamp: '||to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS TZH:TZM') 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
union all
select '+----------------------------------------------------+' from dual
/ REM === -- end of standard header -- === alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Database Details ++
prompt ============================================================================================
prompt
set echo on
select * from gv$version
/
select 'Instance_status' "CHECK_NAME",sysdate, instance_name,startup_time,instance_role from gv$instance
/
SELECT 'Database_status' "CHECK_NAME",name,platform_id,open_mode from v$database
/
set echo off
prompt
prompt ============================================================================================
prompt ++ UNDO Parameters ++
prompt ============================================================================================
prompt
set echo on
select 'Undo_Parameter1' "CHECK_NAME",a.inst_id,a.name,a.type,a.value "SP_Parameter",b.value "from_pfile" from gv$spparameter a, gv$parameter b where a.name=b.name and a.name in ('temp_undo_enabled', 'undo_management','undo_tablespace','undo_retention','fast_start_parallel_rollback' ,'parallel_max_servers')
/
select 'Undo_Parameter2' "CHECK_NAME",inst_id,name,type,value from gv$parameter where name like '%undo%' OR name like 'fast_start_parallel_rollback' OR name like 'parallel_max_servers'
/
select 'Hidden Parameters' "CHECK_NAME",a.inst_id, a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx and a.indx = c.indx
and a.inst_id=b.inst_id and b.inst_id=c.inst_id
and a.ksppinm in ('_undo_autotune', '_smu_debug_mode',
'_highthreshold_undoretention','_disable_flashback_archiver',
'event', '_first_spare_parameter','_rollback_segment_count')
order by 2
/
set echo off
prompt
prompt ============================================================================================
prompt ++ UNDO Tablespace Configuration ++
prompt ============================================================================================
prompt
set echo on
select 'Undo_Tablespace' "CHECK_NAME",tablespace_name,block_size,status,retention,extent_management,status,bigfile from dba_tablespaces where contents='UNDO'
/
SELECT 'Undo_Datafiles' "CHECK_NAME",tablespace_name,file_name,autoextensible,(bytes)/(1024*1024*1024) space_In_GB,(maxbytes)/(1024*1024*1024) MaxBytes_In_GB FROM dba_data_files WHERE tablespace_name in (select value from v$parameter where name= 'undo_tablespace')
/
SELECT 'Free_Space' "CHECK_NAME",tablespace_name, SUM(BYTES/1048576) total_space_MB, max(BYTES)/1048576 largest_extent_MB FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME in (select value from v$parameter where name= 'undo_tablespace') group by tablespace_name
/
SELECT 'Capacity_Planning-1' "CHECK_NAME",(UR * (UPS * DBS))/1024/1024/1024 AS "Min_Required_Space_GB" FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'), (SELECT undoblks/((end_time-begin_time)*86400) AS UPS FROM v$undostat WHERE undoblks = (SELECT MAX(undoblks) FROM v$undostat)), (SELECT block_size AS DBS FROM dba_tablespaces WHERE tablespace_name = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace'))
/ SELECT 'Capacity_Planning-2' "CHECK_NAME",(UR * (UPS * DBS))/1024/1024/1024 AS "Required_Space_GB" FROM (SELECT max(tuned_undoretention) AS UR from dba_hist_undostat), (SELECT undoblks/((end_time-begin_time)*86400) AS UPS FROM dba_hist_undostat WHERE undoblks = (SELECT MAX(undoblks) FROM dba_hist_undostat)), (SELECT block_size AS DBS FROM dba_tablespaces WHERE tablespace_name = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace'))
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Specific to 12cR2 and above ++
prompt ============================================================================================
prompt
set echo on
select '12c_Undo_mode' "CHECK_NAME",property_name,property_value from database_properties where property_name='LOCAL_UNDO_ENABLED'
/
select 'CDB_Undo_Tablespace' "CHECK_NAME",a.CON_ID,a.TABLESPACE_NAME,b.FILE_NAME from cdb_tablespaces a,CDB_DATA_FILES b where a.TABLESPACE_NAME=b.TABLESPACE_NAME and a.con_id=b.con_id and a.CONTENTS='UNDO'
/
select 'Historial_Data_PDBs' "CHECK_NAME",con_id,max(maxquerylen), max(tuned_undoretention),max(maxconcurrency), max(undoblks), max(txncount)
from dba_hist_undostat where end_time > sysdate-10
group by con_id
/
set echo off
prompt
prompt ============================================================================================
prompt ++ UNDO Allocation Details ++
prompt ============================================================================================
prompt
set echo on
select 'Undo_Segments' "CHECK_NAME",tablespace_name, status, count(*) from dba_rollback_segs group by tablespace_name,status
/
select 'Undo_Extent_Status' "CHECK_NAME",tablespace_name,
round(sum(case when status = 'UNEXPIRED' then bytes else 0 end) / 1048675,2) unexpired_MB ,
round(sum(case when status = 'EXPIRED' then bytes else 0 end) / 1048576,2) expired_MB ,
round(sum(case when status = 'ACTIVE' then bytes else 0 end) / 1048576,2) active_MB
from dba_undo_extents group by tablespace_name
/
SELECT 'Largest_Undo_Extents' "CHECK_NAME",segment_name, bytes "Extent_Size", count(extent_id) "Extent_Count", bytes * count(extent_id) "Extent_Bytes" FROM dba_undo_extents WHERE rownum < 11 group by segment_name, bytes order by 1, 3 desc
/
SELECT 'Largest_Active_Extents' "CHECK_NAME",segment_name, bytes "Extent_Size", count(extent_id) "Extent_Count", bytes * count(extent_id) "Extent_Bytes" FROM dba_undo_extents WHERE rownum < 11 and status = 'ACTIVE' group by segment_name, bytes order by 1, 3 desc
/
select 'Undo_Temp_Usage' "CHECK_NAME",'UNDO' as NAME, total_undo_mb as total_mb,USED_MB,round(USED_MB/total_undo_mb*100) as USED_PERCENT
from (
select round((select sum(BYTES)/1024/1024 from dba_DatA_files where tablespace_name like 'UNDO%')) as total_undo_mb,
round((b.total_ublk * (select value from v$parameter where name='db_block_size'))/1024/1024) as USED_MB
from (select sum(used_ublk) as total_ublk from v$transaction) b )
union all
select 'Undo_Temp_Usage' "CHECK_NAME",'TEMP' as NAME, total_temp_mb as total_mb,USED_MB,round(USED_MB/total_temp_mb*100) as USED_PERCENT
from (
select round((select sum(BYTES)/1024/1024 from dba_temp_files)) as total_temp_mb,
round((b.total_ublk * (select value from v$parameter where name='db_block_size'))/1024/1024) as USED_MB
from (select sum(blocks) as total_ublk from v$sort_usage) b )
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Undo Statistics ++
prompt ============================================================================================
prompt
set echo on
select 'Undo_Stats-1' "CHECK_NAME",name, waits, gets from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn
/
col pct head "< 2% ideal"
select 'Undo_Stats-2' "CHECK_NAME",'The average of waits/gets is '||round((sum(waits) / sum(gets)) * 100,2)||'%' PCT From v$rollstat
/
select 'Undo_Stats-3' "CHECK_NAME",class, count from v$waitstat
where class in ('system undo header', 'system undo block', 'undo header','undo block' )
/
select * from v$enqueue_stat where eq_type='US'
union
select * from v$enqueue_stat where eq_type='HW'
/
select 'Undo_Locks' "CHECK_NAME",a.SID, b.process, b.OSUSER, b.MACHINE, b.PROGRAM,addr, kaddr, lmode, request, round(ctime/60/60,0) "Time|(Mins)", block "Blocking?"
from v$lock a, v$session b where a.sid=b.sid and a.type='US'
/
select 'Undo_Tune_Statistics' "CHECK_NAME", name, value from v$sysstat
where name like '%down retention%' or name like 'une down%'
or name like '%undo segment%' or name like '%rollback%'
or name like '%undo record%'
/
set echo off
prompt
prompt ============================================================================================
prompt ++ V$UNDOSTAT Output ++
prompt ============================================================================================
prompt
set echo on select 'Undo_Errors' "CHECK_NAME",sum(ssolderrcnt) "1555 Errors",sum(nospaceerrcnt) "Undo Space Errors" from v$undostat
/
select 'Concurrency_7Days' "CHECK_NAME",max(maxconcurrency) "Max Concurrent|Last 7 Days" from v$undostat
/
select 'Concurrency_Startup' "CHECK_NAME",max(maxconcurrency) "Max Concurrent|Since Startup" from sys.wrh$_undostat
/
select end_time, undoblks/((end_time-begin_time)*86400) "Peak Undo Block Generation" FROM v$undostat WHERE undoblks=(SELECT MAX(undoblks) FROM v$undostat)
/
select 'Retention_Tuning' "CHECK_NAME",min(tuned_undoretention) "Lowest Tuned Value", max(tuned_undoretention) "Highest Tuned Value" from v$undostat
/
Select 'Retention_Tuning-2' "CHECK_NAME",max(maxquerylen),max(tuned_undoretention) from v$undostat
/
select * from v$undostat where maxquerylen > tuned_undoretention
and end_time > sysdate-2
order by 2
/
select * from sys.wrh$_undostat where maxquerylen > tuned_undoretention
and end_time > sysdate-2
order by 2
/
select 'Undo_Extent_Stealing' "CHECK_NAME",unxpstealcnt "UnexStolen", expstealcnt "ExStolen", unxpblkreucnt "UnexReuse", expblkreucnt "ExReuse"
from v$undostat
where (unxpstealcnt > 0 or expstealcnt > 0)
/ SELECT 'Runaway_Queries' "CHECK_NAME",st.begin_time,st.maxquerylen,st.maxqueryid, s.SQL_TEXT
FROM v$undostat st INNER JOIN v$sql s ON s.sql_id = st.maxqueryid where rownum <11 order by maxquerylen desc
/
column UNXPSTEALCNT heading "# Unexpired|attempt"
column EXPSTEALCNT heading "# Expired|attempt"
column SSOLDERRCNT heading "ORA-1555|Error"
column NOSPACEERRCNT heading "Out-Of-space|Error"
column MAXQUERYLEN heading "Max Query|Length"
column ACTIVEBLKS heading "Active Blocks"
column UNEXPIREDBLKS heading "Unexpired Blocks"
column EXPIREDBLKS heading "Expired Blocks"
column TUNED_UNDORETENTION heading "Tuned Undo retention"
column UNXPBLKRELCNT heading "Unexpired|Removed for reuse"
column UNXPBLKREUCNT heading "Unexpired|Reused by Transactions"
column EXPBLKRELCNT heading "Expired| Stolen from other"
column EXPBLKREUCNT heading "Expired| Stolen from same"
column UNDOBLKS heading "Undo Blocks" select 'Undostat_2days' "CHECK_NAME",inst_id, to_char(begin_time,'MM/DD/YYYY HH24:MI') begin_time, UNXPSTEALCNT, EXPSTEALCNT , SSOLDERRCNT, NOSPACEERRCNT, ACTIVEBLKS,UNEXPIREDBLKS,EXPIREDBLKS,UNXPBLKRELCNT,UNXPBLKREUCNT,EXPBLKRELCNT,EXPBLKREUCNT,MAXQUERYLEN, TUNED_UNDORETENTION from gv$undostat
where begin_time > sysdate -2 order by inst_id, begin_time
/
select * from gv$undostat where (ssolderrcnt > 0 or nospaceerrcnt > 0)
/
select * from dba_hist_undostat where (ssolderrcnt > 0 or nospaceerrcnt > 0)
/
select 'Long Running Query History' "CHECK_NAME",end_time, maxquerysqlid, runawayquerysqlid "Runaway SQL ID", status,
decode(status,1,'Slot Active',4,'Reached Best Retention',5,'Reached Best Retention',
8, 'Runaway Query',9,'Runaway Query-Active',10,'Space Pressure',
11,'Space Pressure Currently',
16, 'Tuned Down (to undo_retention) due to Space Pressure',
17,'Tuned Down (to undo_retention) due to Space Pressure-Active',
18, 'Tuning Down due to Runaway', 19, 'Tuning Down due to Runaway-Active',
28, 'Runaway tuned down to last tune down value',
29, 'Runaway tuned down to last tune down value',
32, 'Max Tuned Down - Not Auto-Tuning',
33, 'Max Tuned Down - Not Auto-Tuning (Active)',
37, 'Max Tuned Down - Not Auto-Tuning (Active)',
38, 'Max Tuned Down - Not Auto-Tuning',
39, 'Max Tuned Down - Not Auto-Tuning (Active)',
40, 'Max Tuned Down - Not Auto-Tuning',
41, 'Max Tuned Down - Not Auto-Tuning (Active)',
42, 'Max Tuned Down - Not Auto-Tuning',
44, 'Max Tuned Down - Not Auto-Tuning',
45, 'Max Tuned Down - Not Auto-Tuning (Active)',
'Other ('||status||')') "Space Issues", spcprs_retention "Tuned Down|Retention"
from sys.wrh$_undostat
where status > 1
/
select 'Long Running Query Details' "CHECK_NAME",sql_id, sql_fulltext, last_load_time "Last Load",
round(elapsed_time/1000000/60/60/24,0) "Elapsed Days"
from v$sql where sql_id in
(select maxquerysqlid from sys.wrh$_undostat
where status > 1)
/
select 'Historial_Data' "CHECK_NAME",end_time, round(maxquerylen/60,0) "Query|Maximum|Minutes", maxquerysqlid,
undotsn, undoblks, txncount, unexpiredblks, expiredblks,
round(tuned_undoretention/60,0) Tuned
from dba_hist_undostat
where end_time > sysdate-10
order by end_time
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Active Transactions ++
prompt ============================================================================================
prompt
set echo on
select 'Active_Transactions' "CHECK_NAME",b.sid,b.serial#,b.username,a.start_date,a.start_time, a.start_scn, a.status, c.sql_text,a.used_urec,a.used_ublk from v$transaction a, v$session b, v$sqlarea c
where b.saddr=a.ses_addr and c.address=b.sql_address and b.sql_hash_value=c.hash_value
/
select 'SCN' "CHECK_NAME",current_scn from v$database
/
select 'Active_Undo_Usage' "CHECK_NAME",start_time, username, r.name, ubafil, ubablk, t.status, (used_ublk*p.value)/1024 blk, used_urec from v$transaction t, v$rollname r, v$session s, v$parameter p
where xidusn=usn
and s.saddr=t.ses_addr
and p.name in (select value from v$parameter where name= 'db_block_size')
order by 1
/
SELECT 'top_10_Undo_users' "CHECK_NAME",s.sid, s.serial#, s.username, u.segment_name, count(u.extent_id) "Extent Count", t.used_ublk, t.used_urec, s.program
FROM v$session s, v$transaction t, dba_undo_extents u
WHERE s.taddr = t.addr and u.segment_name like '_SYSSMU'||t.xidusn||'_%$' and u.status = 'ACTIVE' and rownum<11
GROUP BY s.sid, s.serial#, s.username, u.segment_name, t.used_ublk, t.used_urec, s.program
ORDER BY t.used_ublk desc, t.used_urec desc, s.sid, s.serial#, s.username, s.program
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Dead transactions and recovery status ++
prompt ============================================================================================
prompt
set echo on
SELECT 'Dead_Transactions' "CHECK_NAME",KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ KTUXESTA
Status, KTUXECFL flags
FROM x$ktuxe WHERE ktuxesta!= 'INACTIVE'
/
SELECT 'Distrib_Transaction-1' "CHECK_NAME",LOCAL_TRAN_ID,GLOBAL_TRAN_ID,STATE,MIXED,COMMIT# FROM DBA_2PC_PENDING
/
SELECT 'Distrib_Transaction-2' "CHECK_NAME",LOCAL_TRAN_ID,IN_OUT,DATABASE,INTERFACE FROM dba_2pc_neighbors
/
select 'Dead_Transactions_Undo' "CHECK_NAME",useg.segment_name, useg.segment_id, useg.tablespace_name, useg.status
from dba_rollback_segs useg
where useg.segment_id in (select unique ktuxeusn
from x$ktuxe
where ktuxesta <> 'INACTIVE'
and ktuxecfl like '%DEAD%')
/
SELECT * FROM v$fast_start_servers
/
SELECT 'Transaction_Recovery_Estimate' "CHECK_NAME",usn,state ,undoblockstotal "Total", undoblocksdone "Done",undoblockstotal - undoblocksdone "ToDo",
DECODE (cputime ,0, 'unknown',SYSDATE + ( ( (undoblockstotal - undoblocksdone )/ (undoblocksdone / cputime )) / 86400)) "Estimated time to complete"
FROM v$fast_start_transactions
/
select 'Transaction_Recovery' "CHECK_NAME",decode( px. qcinst_id,NULL,username ,' - '||lower(substr(s.program,length( s.program)- 4,4 ) ) ) "Username",
decode(px. qcinst_id,NULL, 'QC', '(Slave)' ) "QC/Slave" ,
to_char( px. server_set) "Slave Set",
to_char(s.sid) "SID" ,
decode(px. qcinst_id, NULL ,to_char(s .sid) , px. qcsid) "QC SID",
px .req_degree "Requested DOP",
px .degree "Actual DOP"
from gv$px_session px, gv$session s
where px.sid= s.sid (+)
and px. serial#=s.serial#
order by 5 , 1 desc
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Flashback Data Archive Information ++
prompt ============================================================================================
prompt
set echo on
select 'FBDA' "CHECK_NAME",count(*),STATUS,INST_ID from SYS_FBA_BARRIERSCN group by STATUS,INST_ID
/
select * from dba_flashback_archive_tables
/
select * from dba_flashback_archive
/
select 'FBDA_Process' "CHECK_NAME",sid,username,program,machine,status,last_call_et from v$session where program like '%FBDA%'
/
set echo off
prompt
prompt ============================================================================================
prompt ++ Tablespace Alerts ++
prompt ============================================================================================
prompt
set echo on
select 'Undotbs_Alerts' "CHECK_NAME",object_name, reason from dba_outstanding_alerts where OBJECT_NAME = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace')
/
select 'Undotbs_alert_history' "CHECK_NAME",CREATION_TIME,METRIC_VALUE, reason, suggested_action from DBA_ALERT_HISTORY where OBJECT_NAME = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace')
/
set echo off
prompt
prompt ============================================================================================
prompt +++++++++++++++++++++End of SRDC Data Collection+++++++++++++
prompt ============================================================================================
prompt
spool off
set markup html off spool off
set sqlprompt "SQL> " term on echo off
PROMPT======================================================================================================================================
PROMPT
PROMPT
PROMPT REPORT GENERATED : &SRDCSPOOLNAME..htm
set verify on echo on
Rem======================================================================================================================================

3. Download and execute the script srdc_LOB_data.sql script, to collect LOB columns related data. Collect the spool output.  以收集与LOB列相关的数据

--srdc_LOB_data.sql

REM srdc_LOB_data.sql
REM To identify corrupted row(s) in a LOB segment
define SRDCNAME='DB_LOB_Data'
set pagesize 200 verify off 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 : ' "Diagnostic-Name ", '&&SRDCNAME' "Report Info" 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 echo on term on ACCEPT table_with_lob CHAR PROMPT 'Table Name :'
ACCEPT table_owner CHAR PROMPT 'Table Owner :' set term off
set echo off
prompt
prompt ============================================================================================
prompt ++ LOB Column Details ++
prompt ============================================================================================
prompt
set echo on select 'LOB_Details' "CHECK_NAME",column_name,segment_name,pctversion,retention from dba_lobs where lower(table_name)='&&table_with_lob' and lower(owner)='&&table_owner'
/
select * from dba_lobs where lower(table_name)='&&table_with_lob' and lower(owner)='&&table_owner'
/
select l.table_name, l.column_name, l.tablespace_name, l.pctversion, l.retention,
t.segment_space_management
from dba_lobs l, dba_tablespaces t
where owner=upper('&&table_owner')
and l.tablespace_name = t.tablespace_name
/
spool off
set markup html off spool off
set term on
PROMPT
PROMPT
PROMPT REPORT GENERATED : &SRDCSPOOLNAME..htm
set echo off
set sqlprompt "SQL> " term on
set verify on
set echo on

4.  Collect the Alert Log file present in the directory specified by user_dump_dest or the diagnostic_dest parameter .

5. Provide the list of patches applied in the ORACLE_HOME.

UNIX:

$ORACLE_HOME/OPatch/opatch lsinventory -detail > opatch_lsinv.txt

WINDOWS:

%ORACLE_HOME%\OPatch\opatch lsinventory -detail > opatch_lsinv.txt

Ensure to set the ORACLE_HOME variable before executing the above commands.

Collect the  opatch_lsinv.txt file.

6. Upload all of the above evidence to the Service Request at SR creation time. The evidence can all be placed into a single ZIP or similar compressed archive or can be attached as separate files.

SRDC - ORA-22924 or ORA-1555 on LOB data: Checklist of Evidence to Supply (Doc ID 1682707.1)的更多相关文章

  1. SRDC - ORA-1555 during Export: Checklist of Evidence to Supply (Doc ID 1682706.1)

    SRDC - ORA-1555 during Export: Checklist of Evidence to Supply (Doc ID 1682706.1) Action Plan 1. Exe ...

  2. SRDC - ORA-1555: Query Duration 0: Checklist of Evidence to Supply (Doc ID 1682704.1)

    SRDC - ORA-1555: Query Duration 0: Checklist of Evidence to Supply (Doc ID 1682704.1) Action Plan 1. ...

  3. SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1)

    SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1) Action Plan 1. Execute srdc_db_ ...

  4. SRDC - ORA-1628: Checklist of Evidence to Supply (Doc ID 1682729.1)

    SRDC - ORA-1628: Checklist of Evidence to Supply (Doc ID 1682729.1) Action Plan 1. Execute srdc_db_u ...

  5. SRDC - ORA-1562: Checklist of Evidence to Supply (Doc ID 1682728.1)

    SRDC - ORA-1562: Checklist of Evidence to Supply (Doc ID 1682728.1) Action Plan 1.  Execute srdc_db_ ...

  6. SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1)

    SRDC - ORA-1548: Checklist of Evidence to Supply (Doc ID 1682693.1) Action Plan 1. Execute srdc_db_u ...

  7. SRDC - ORA-1552: Checklist of Evidence to Supply (Doc ID 1681333.1)

    SRDC - ORA-1552: Checklist of Evidence to Supply (Doc ID 1681333.1) Action Plan 1. Execute srdc_db_u ...

  8. SRDC - ORA-30013: Checklist of Evidence to Supply (Doc ID 1682701.1)

    Action Plan 1. Execute srdc_db_undo_ora-30013.sql as sysdba and provide the spool output --srdc_db_u ...

  9. 真心崩溃了,oracle安装完成后居然没有tnsnames.ora和listener.ora文件

    problem: oracle  11  r2  64位安装完成后NETWORK/ADMIN目录下居然没有tnsnames.ora和listener.ora文件 solution: 问题是之前安装了另 ...

随机推荐

  1. JS 错误

    JS 错误 try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错 ...

  2. gdisk分区及swap分区

    gdisk分区及swap分区 gdisk分区,分区表是GPT,支持更大的分区,128G gdisk分区 一,添加硬盘 二,分区 1,安装gdisk [root@oldboy ~]# yum insta ...

  3. Django2.1集成xadmin管理后台所遇到的错误集锦,解决填坑(二)

    django默认是有一个admin的后台管理模块,但是丑,功能也不齐全,但是大神给我们已经集成好了xadmin后台,我们拿来用即可,但是呢,django已经升级到2.1版本了,xadmin貌似跟不上节 ...

  4. div里面的元素在【垂直 方向】上水平分布 使用calc()函数动态计算

    1==>如何让div里面的元素在[垂直 方向]上水平分布.important-dec{ height: 121px; //必须固定高度 flex-direction: column; //垂直排 ...

  5. WebScraper for Mac(网站数据抓取软件) 4.10.2

    WebScraper Mac版是一款Mac平台上通过使用将数据导出为JSON或CSV的简约应用程序,WebScraper Mac版可以快速提取与某个网页(包括文本内容)相关的信息.WebScraper ...

  6. This compilation unit is not on the build path of java project (此编译单元不在java项目的生成路径上)

    This compilation unit is not on the build path of a Java project 解决办法​ 索发现,大致是因为项目文件缺失. 解决办法:找到项目根目录 ...

  7. 加速自己的hexo,使用GitHub+Coding实现国内外网站加速

    在配置好hexo之后,我们发现访问网站很慢,但又不是我们使用的主题的问题,那么就是网络环境的影响,即使我们使用了CDN加速,但还是没有我们国内的网站访问起来快速,(听说去美国的服务器要经过太平洋下面的 ...

  8. Codeforces Round #594 (Div. 1) C. Queue in the Train 模拟

    C. Queue in the Train There are

  9. Windows许可证 即将过期

    最近打开电脑,系统总是自动弹出Windows许可证即将过期的弹窗,现在总结方法如下. 命令都是在运行窗口输入的打开方式:win+R组合键或者右键点击win10开始菜单,点击“运行”查看系统版本:win ...

  10. php date获取当前时间

    结果: 结论: 本以为第一种方式最快,第三种方式竟超乎想象的快且稳定