Skip to content

11.2.0.3 Apply 11.2.0.3.8 PSU Encounter bug:Clusterware home location does not exist

11g的psu的安装默认都是用auto的方式来安装,但是在11.2.0.3这个版本aix平台上,我很不幸的遭遇了auto无法安装的bug 16835171,报错如下:

Using configuration parameter file: /opt/app/11.2.0/grid/crs/install/crsconfig_params
Either does not exist or is not readable
Make sure the file exists and it has read and execute access
Clusterware home location does not exist

解决办法就是使用手工安装的方式,比较繁冗,官方描述如下:
Solution
At the time of this writing, the bug is still being worked by Development.
The workaround is to apply the patch manually.
The manual instruction is part of patch readme。

手工安装psu的方式参考以下网页:
http://www.ludatou.com/index.php/archives/1069

show_space脚本:快速检测表的存储信息

Tom在很多年前写了一个脚本工具showspace用来分析空间使用情况,此工具使用起来很方便可以快速了解表的存储信息。具体如下:

create or replace procedure show_space
( p_segname_1 in varchar2,
p_owner_1 in varchar2 default user,
p_type_1 in varchar2 default 'TABLE',
p_space in varchar2 default 'AUTO',
p_analyzed in varchar2 default 'Y'
)
as
p_segname varchar2(100);
p_type varchar2(10);
p_owner varchar2(30);

l_unformatted_blocks number;
l_unformatted_bytes number;
l_fs1_blocks number;
l_fs1_bytes number;
l_fs2_blocks number;
l_fs2_bytes number;
l_fs3_blocks number;
l_fs3_bytes number;
l_fs4_blocks number;
l_fs4_bytes number;
l_full_blocks number;
l_full_bytes number;

l_free_blks number;
l_total_blocks number;
l_total_bytes number;
l_unused_blocks number;
l_unused_bytes number;
l_LastUsedExtFileId number;
l_LastUsedExtBlockId number;
l_LAST_USED_BLOCK number;

procedure p( p_label in varchar2, p_num in number )
is
begin
dbms_output.put_line( rpad(p_label,40,'.') ||
p_num );
end;
begin
p_segname := upper(p_segname_1); -- rainy changed
p_owner := upper(p_owner_1);
p_type := p_type_1;

if (p_type_1 = 'i' or p_type_1 = 'I') then --rainy changed
p_type := 'INDEX';
end if;

if (p_type_1 = 't' or p_type_1 = 'T') then --rainy changed
p_type := 'TABLE';
end if;

if (p_type_1 = 'c' or p_type_1 = 'C') then --rainy changed
p_type := 'CLUSTER';
end if;

dbms_space.unused_space
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
total_blocks => l_total_blocks,
total_bytes => l_total_bytes,
unused_blocks => l_unused_blocks,
unused_bytes => l_unused_bytes,
LAST_USED_EXTENT_FILE_ID => l_LastUsedExtFileId,
LAST_USED_EXTENT_BLOCK_ID => l_LastUsedExtBlockId,
LAST_USED_BLOCK => l_LAST_USED_BLOCK );

if p_space = 'MANUAL' or (p_space <> 'auto' and p_space <> 'AUTO') then
dbms_space.free_blocks
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
freelist_group_id => 0,
free_blks => l_free_blks );

p( 'Free Blocks', l_free_blks );
end if;

p( 'Total Blocks', l_total_blocks );
p( 'Total Bytes', l_total_bytes );
p( 'Unused Blocks', l_unused_blocks );
p( 'Unused Bytes', l_unused_bytes );
p( 'Last Used Ext FileId', l_LastUsedExtFileId );
p( 'Last Used Ext BlockId', l_LastUsedExtBlockId );
p( 'Last Used Block', l_LAST_USED_BLOCK );

/*IF the segment is analyzed */
if p_analyzed = 'Y' then
dbms_space.space_usage(segment_owner => p_owner ,
segment_name => p_segname ,
segment_type => p_type ,
unformatted_blocks => l_unformatted_blocks ,
unformatted_bytes => l_unformatted_bytes,
fs1_blocks => l_fs1_blocks,
fs1_bytes => l_fs1_bytes ,
fs2_blocks => l_fs2_blocks,
fs2_bytes => l_fs2_bytes,
fs3_blocks => l_fs3_blocks ,
fs3_bytes => l_fs3_bytes,
fs4_blocks => l_fs4_blocks,
fs4_bytes => l_fs4_bytes,
full_blocks => l_full_blocks,
full_bytes => l_full_bytes);
dbms_output.put_line(rpad(' ',50,'*'));
dbms_output.put_line('The segment is analyzed');
p( '0% -- 25% free space blocks', l_fs1_blocks);
p( '0% -- 25% free space bytes', l_fs1_bytes);
p( '25% -- 50% free space blocks', l_fs2_blocks);
p( '25% -- 50% free space bytes', l_fs2_bytes);
p( '50% -- 75% free space blocks', l_fs3_blocks);
p( '50% -- 75% free space bytes', l_fs3_bytes);
p( '75% -- 100% free space blocks', l_fs4_blocks);
p( '75% -- 100% free space bytes', l_fs4_bytes);
p( 'Unused Blocks', l_unformatted_blocks );
p( 'Unused Bytes', l_unformatted_bytes );
p( 'Total Blocks', l_full_blocks);
p( 'Total bytes', l_full_bytes);

end if;

end;
/

使用方法参考:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5350053031470

WebLogic Server Patch Set Updates (PSUs)

官方关于wls的psu集合列表:

12.1.1 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
12.1.1.0.6 12.1.1.0.6 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 17071664 My Oracle Support
Note 1571391.1
HYQC My Oracle Support
Note 1589783.1
12.1.1.0.5 12.1.1.0.5 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 16619895 My Oracle Support
Note 1548709.1
LNQI My Oracle Support
Note 1567744.1
12.1.1.0.4 12.1.1.0.4 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 16083652 My Oracle Support
Note 1525152.1
YJCB My Oracle Support
Note 1544310.1
12.1.1.0.3 12.1.1.0.3 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14736141 My Oracle Support
Note 1502461.1
ZFHT My Oracle Support
Note 1519594.1
12.1.1.0.2 12.1.1.0.2 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14331523 My Oracle Support
Note 1477727.1
SELV My Oracle Support
Note 1496318.1
12.1.1.0.1 12.1.1.0.1 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14142554 My Oracle Support
Note 1455387.1
N9JH My Oracle Support
Note 1466024.1

10.3.6 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.6.0.6 10.3.6.0.6 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 17071663 My Oracle Support
Note 1571391.1
BYJ1 My Oracle Support
Note 1589769.1
10.3.6.0.5 10.3.6.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 16619891 My Oracle Support
Note 1548709.1
L51R My Oracle Support
Note 1567735.1
10.3.6.0.4 10.3.6.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 16083651 My Oracle Support
Note 1525152.1
D33T My Oracle Support
Note 1544308.1
10.3.6.0.3 10.3.6.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14736139 My Oracle Support
Note 1502461.1
HYKC My Oracle Support
Note 1519561.1
10.3.6.0.2 10.3.6.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14331527 My Oracle Support
Note 1477727.1
MYFD My Oracle Support
Note 1496334.1
10.3.6.0.1 10.3.6.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14142550 My Oracle Support
Note 1455387.1
JSES My Oracle Support
Note 1466022.1

10.3.5 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.5.0.7 10.3.5.0.7 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 16088411 My Oracle Support
Note 1525152.1
L5TD My Oracle Support
Note 1544306.1
10.3.5.0.6 10.3.5.0.6 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14736140 My Oracle Support
Note 1502461.1
SYJ2 My Oracle Support
Note 1519558.1
10.3.5.0.5 10.3.5.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14331529 My Oracle Support
Note 1477727.1
Z6MQ My Oracle Support
Note 1496336.1
10.3.5.0.4 10.3.5.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14142291 My Oracle Support
Note 1455387.1
4D2C My Oracle Support
Note 1466020.1
10.3.5.0.3 10.3.5.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 13568070 My Oracle Support
Note 1406574.1
N5G9 My Oracle Support
Note 1435773.1
10.3.5.0.2 10.3.5.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 13108890 My Oracle Support
Note 1374524.1
USGW My Oracle Support
Note 1377996.1
10.3.5.0.1 10.3.5.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 12617751 My Oracle Support
Note 1346104.1
V9XT My Oracle Support
Note 1348978.1

10.3.4 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.4.0.5 10.3.4.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 13568073 My Oracle Support
Note 1406574.1
PQ4Y My Oracle Support
Note 1435222.1
10.3.4.0.4 10.3.4.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 13108901 My Oracle Support
Note 1374524.1
XZNF My Oracle Support
Note 1377995.1
10.3.4.0.3 10.3.4.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 12770299 My Oracle Support
Note 1346104.1
GJYS My Oracle Support
Note 1348977.1
10.3.4.0.2 10.3.4.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 12357891 My Oracle Support
Note 1323616.1
H94Y My Oracle Support
Note 1328645.1
10.3.4.0.1 10.3.4.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 11677325 My Oracle Support
Note 1291877.1
Q8SV My Oracle Support
Note 1296462.1

Conflict Resolution

Handling Oracle Database Corruption Issues

官方关于数据库各类损坏的定义以及解决办法

 

Actions

CORRUPTION EXPLANATION

What is a corruption?
Note 840978.1 : Physical and Logical block corruptionHow to force reformat a corrupted block?
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment
How to identify corruptions in a database?
Note 472231.1 : How to identify all the Corrupted Objects in the Database reported by RMAN
Note 819533.1 : How to identify the corrupt Object reported by ORA-1578 / RMAN / DBVERIFYKnown corruptions caused by OS/HW Issues
Note 1323649.1 : Known Corruption issues caused by 3rd party Software Provider

KIND OF CORRUPTIONS

SEGMENT CORRUPTED  How to handle Segment Corruptions (Table, Index, LOB, Long, IOT, Temporary)  This section refers to BLOCK CORRUPTION affecting database segments.
Note 428526.1 : Baddata Script To Check Database For Corrupt column data
CONTROLFILE CORRUPTION Note 1072762.6  :  ORA-00227, ORA-00202: BRING UP INSTANCE AFTER MACHINE CRASH
UNDO CORRUPTION Note 281429.1 : Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter
Note 39283.1 : ORA-600 [4194] “Undo Record Number Mismatch While Adding Undo Record”
Note 431652.1 : How to Change the Existing Undo Tablespace to a New Undo Tablespace
DICTIONARY CORRUPTION Note 136697.1 : “hcheck.sql” script to check for known problems in Oracle8i, Oracle9i, Oracle10g and Oracle 11g
REDO CORRUPTION Note 1031381.6 : How to Dump Redo Log File Information.
ROW & COLUMN CORRUPTION Note 976591.1 : HowTo validate a date/timestamp column
Note 869305.1 : How To identify a ‘corrupt’ row when error is raised b
HOW TO IDENTIFY TABLE/INDEX INCOSISTENCY Note 136620.1 : Sanity Check of Oracle NUMBERS, How to Find and Patch

HOW TO HANDLE SEGMENT CORRUPTIONS

TABLE CORRUPTION Note 28814.1 : Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
INDEX CORRUPTION Note 28814.1 : Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Note 438143.1 : Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 : How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
LOB Note 452341.1 : How to detect Lob Corruption
Note 293515.1 : ORA-1578 ORA-26040 in a LOB segment – Script to solve the errors
LONG ** Contact Oracle Support **  –>> Generic notes about these objects: * None Public*
IOT ** Contact Oracle Support **  –>> Generic notes about these objects: * None Public*
TEMPORARY Note 1332088.1 : How to clear corruption in temporary segment not in temp tablespace
Note 422039.1 : Steps to drop a temporary segment while SMON is not able

PACKAGE INFORMATION AND EXAMPLES

DBMS_REPAIR Note 556733.1 : DBMS_REPAIR script
Note 68013.1: DBMS_REPAIR example
DBMS_METADATA Note 438143.1 : Use of dbms_metadata.get_ddl() to extract Index DDL
Note 394143.1 : Q How Could I Format The Output From Dbms_metadata.Get_ddl Utility?
Note 332077.1 : Why Does DBMS_METADATA.GET_DDL Not Show All Lines?
Note 188838.1 : Using DBMS_METADATA To Get The DDL For Objects

TOOLS

DBV Note 35512.1 : DBVERIFY – Database file Verification Utility (7.3.2 – 10.2)
Note 269028.1 : DBV Reports Corruption Even After Drop/Recreate Object
Note 336133.1 : How to Format Corrupted Block Not Part of Any Segment
EXPORT Note 214369.1 : Using The Export Utility To Check For Database Corruption
RMAN Note 472231.1 : How to identify all the Corrupted Objects in the Database with RMAN
Note 1266059.1 : ABMR: HOW TO TEST AUTOMATIC BLOCK RECOVERY FEATURE
TRANSPORTABLE TABLESPACE Note 733824.1 : HowTo Recreate a database using TTS
DATA RECOVERY ADVISOR note 1317849.1 : Data Recovery Advisor – Corruption Reference Guide
ORA600/7445 Error Lockup tool Note 153788.1 : ORA-600/ORA-7445 Error Look-up Tool

GENERIC LINKS

PATCHSET UPDATES (PSU) & CRITICAL PATCH UPDATES (CPU) Note 268895.1 : Oracle Database Server Patchset Information, Versions: 8.1.7 to 11.2.0
Note 1061295.1 : Patch Set Updates – One-off Patch Conflict Resolution
Note 161549.1 : Oracle Database, Networking and Grid Agent Patches for Microsoft Platforms
Note 756671.1 : Oracle Recommended Patches — Oracle Database
Note 742060.1 : Release Schedule of Current Database Releases
Note 161818.1 : Oracle Database (RDBMS) Releases Support Status Summary

COMMON ERRORS

ORA-1578 ORA-1578 is reported when a block is thought to be corrupt on read.
ORA-1410 This error is raised when an operation refers to a ROWID in a table for which there is no such row.
The reference to a ROWID may be implicit from a WHERE CURRENT OF clause or directly from a WHERE ROWID=… clause.
ORA 1410 indicates the ROWID is for a BLOCK that is not part of this table.
ORA-8103 The object has been deleted by another user since the operation began.
If the error is reproducible, following may be the reasons:-
a.) The header block has an invalid block type.
b.) The data_object_id (seg/obj) stored in the block is different than the data_object_id stored in the segment header. See dba_objects.data_object_id and compare it to the decimal value stored in the block (field seg/obj).
ORA-8102 An ORA-08102 indicates that there is a mismatch between the key(s) stored in the index and the values stored in the table. What typically happens is the index is built and at some future time, some type of corruption occurs, either in the table or index, to cause the mismatch.
ORA-1498 Generally this is a result of an ANALYZE … VALIDATE … command.
This error generally manifests itself when there is inconsistency in the data/Index block. Some of the block check errors that may be found:-
a.) Row locked by a non-existent transaction
b.) The amount of space used is not equal to block size
c.) Transaction header lock count mismatch.
While support are processing the tracefile it may be worth the re-running the ANALYZE after restarting the database to help show if the corruption is consistent or if it ‘moves’.
Send the tracefile to support for analysis.
If the ANALYZE was against an index you should check the whole object. Eg: Find the tablename and execute:
ANALYZE TABLE xxx VALIDATE STRUCTURE CASCADE;
ORA-1499 An error occurred when validating an index or a table using the ANALYZE command.
One or more entries does not point to the appropriate cross-reference.
ORA-26040 Trying to access data in block that was loaded without redo generation using the NOLOGGING/UNRECOVERABLE option.
This Error raises always together with ORA-1578
ORA-600 [12700] Oracle is trying to access a row using its ROWID, which has been obtained from an index.
A mismatch was found between the index rowid and the data block it is pointing to. The rowid points to a non-existent row in the data block. The corruption can be in data and/or index blocks.
ORA-600 [12700] can also be reported due to a consistent read (CR) problem.
ORA-600 [3020] This is called a ‘STUCK RECOVERY’.
There is an inconsistency between the information stored in the redo and the information stored in a database block being recovered.
ORA-600 [4194] A mismatch has been detected between Redo records and rollback (Undo) records.
We are validating the Undo record number relating to the change being applied against the maximum undo record number recorded in the undo block.
This error is reported when the validation fails.
ORA-600 [4193] A mismatch has been detected between Redo records and Rollback (Undo) records.
We are validating the Undo block sequence number in the undo block against the Redo block sequence number relating to the change being applied.
This error is reported when this validation fails.
ORA-600 [4137] While backing out an undo record (i.e. at the time of rollback) we found a transaction id mis-match indicating either a corruption in the rollback segment or corruption in an object which the rollback segment is trying to apply undo records on.
This would indicate a corrupted rollback segment.
ORA-600 [6101] Not enough free space was found when inserting a row into an index leaf block during the application of undo.
ORA-600 [2103] Oracle is attempting to read or update a generic entry in the control file.
If the entry number is invalid, ORA-600 [2130] is logged.
ORA-600 [4512] Oracle is checking the status of transaction locks within a block.
If the lock number is greater than the number of lock entries, ORA-600 [4512] is reported followed by a stack trace, process state and block dump.
This error possibly indicates a block corruption.
ORA-600 [2662] A data block SCN is ahead of the current SCN.
The ORA-600 [2662] occurs when an SCN is compared to the dependent SCN stored in a UGA variable.
If the SCN is less than the dependent SCN then we signal the ORA-600 [2662] internal error.
ORA-600 [4097] We are accessing a rollback segment header to see if a transaction has been committed.
However, the xid given is in the future of the transaction table.
This could be due to a rollback segment corruption issue OR you might be hitting the following known problem.
ORA-600 [4000] It means that Oracle has tried to find an undo segment number in the dictionary cache and failed.
ORA-600 [6006] Oracle is undoing an index leaf key operation. If the key is not found, ORA-00600 [6006] is logged.
ORA-600[6006] is usually caused by a media corruption problem related to either a lost write to disk or a corruption on disk.
ORA-600 [4552] This assertion is raised because we are trying to unlock the rows in a block, but receive an incorrect block type.
The second argument is the block type received.
ORA-600[6856] Oracle is checking that the row slot we are about to free is not already on the free list.
This internal error is raised when this check fails.
ORA-600[13011] During a delete operation we are deleting from a view via an instead-of trigger or an Index organized table and have exceeded a 5000 pass count when we raise this exception.
ORA-600[13013] During the execution of an UPDATE statement, after several attempts (Arg [a] passcount) we are unable to get a stable set of rows that conform to the WHERE clause.
ORA-600[13030]
ORA-600[25012] We are trying to generate the absolute file number given a tablespace number and relative file number and cannot find a matching file number or the file number is zero.
ORA-600[25026] Looking up/checking a tablespace
invalid tablespace ID and/or rdba found
ORA-600[25027] Invalid tsn and/or rfn found
ORA-600 [kcbz_check_objd_typ_3] An object block buffer in memory is checked and is found to have the wrong object id. This is most likely due to corruption.
ORA-600[kddummy_blkchk] & ORA-600[kdblkcheckerror] ORA-600[kddummy_blkchk] is for 10.1/10.2 and ORA-600[kdblkcheckerror] for 11 onwards.
ORA-600[ktadrprc-1]
ORA-600[ktsircinfo_num1] This exception occurs when there are problems obtaining the row cache information correctly from sys.seg$. In most cases there is no information in sys.seg$.
ORA-600[qertbfetchbyrowid]
ORA-600[ktbdchk1-bad dscn] This exception is raised when we are performing a sanity check on the dependent SCN and fail.
The dependent scn is greater than the current scn.