If you cannot recover data by yourself, ask Parnassusdata, the professional ORACLE database recovery team for help.
			Parnassusdata Software Database Recovery Team
			Service Hotline:  +86 13764045638 E-mail: [email protected]
 
 
 
	 
	Hi! Our Oracle Database often crashed. I looked into the alert log and found that it suffered an error as the title. And I searched the error in the community and got a step-by-step way to fix it. At the 5th step, the status is not 'OFFLINE','PARTLY AVAILABLE' or 'NEEDS RECOVERY', but 'ONLINE'. Please help! Thank you! 
	 
	 
	SYMPTOMS 
	 
	The following error is occurring in the alert.log right before the database crashes. 
	 
	ORA-00600: internal error code, arguments: [4194], [#], [#], [], [], [], [], [] 
	 
	This error indicates that a mismatch has been detected between redo records and rollback (undo) records. 
	 
	ARGUMENTS: 
	 
	Arg [a] - Maximum Undo record number in Undo block 
	Arg [b] - Undo record number from Redo block 
	 
	Since we are adding a new undo record to our undo block, we would expect that the new record number is equal to the maximum record number in the undo block plus one. Before Oracle can add a new undo record to the undo block it validates that this is correct. If this validation fails, then an ORA-600 [4194] will be triggered. 
	 
	CHANGES 
	 
	This issue generally occurs when there is a power outage or hardware failure that initially crashes the database. On startup, the database does the normal roll forward (redo) and then rollback (undo), this is where the error is generated on the rollback. 
	 
	CAUSE 
	 
	This also can be cause by the following defect 
	 
	Bug 8240762 Abstract: Undo corruptions with ORA-600 [4193]/ORA-600 [4194] or ORA-600 [4137] after SHRINK 
	 
	Details: 
	Undo corruption may be caused after a shrink and the same undo block may be used 
	for two different transactions causing several internal errors like: 
	ORA-600 
	 
	 
	 
	 
	 
	 
	SQL> select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE'; 
	 
	TABLESPACE_NAME STATUS SEGMENT_NAME 
	-------------------- ------------------------------------------------ -------------------- 
	SYSTEM ONLINE SYSTEM 
	 
	 
	 
	Please donot use any Underscore parameter or unsupported parameters.(Ensure you remove them if you have used them) 
	 
	Please upload me the steps you have followed. 
	 
	The Best option to resolve Ora-00600[4194] is listed in document 
	 
	Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter ( Doc ID 281429.1 ) 
	 
	 
	 
	This is the content of the pfile. We need the parameters with underscore. 
	orcl.__db_cache_size=171966464 
	orcl.__java_pool_size=4194304 
	orcl.__large_pool_size=4194304 
	orcl.__oracle_base='/u01/ora11203'#ORACLE_BASE set from environment 
	orcl.__pga_aggregate_target=159383552 
	orcl.__sga_target=269098752 
	orcl.__shared_io_pool_size=0 
	orcl.__shared_pool_size=180355072 
	orcl.__streams_pool_size=0 
	*._row_cr=FALSE 
	*.audit_file_dest='/u02/orcl/oradata/adump' 
	*.audit_trail='db' 
	*.compatible='11.2.0.0.0' 
	*.control_files='/u02/orcl/oradata/orcl/control01.ctl','/u02/orcl/oradata/orcl/control02.ctl' 
	*.db_block_size=8192 
	*.db_domain='' 
	*.db_name='orcl' 
	*.diagnostic_dest='/u01/ora11203' 
	*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' 
	*.open_cursors=300 
	*.pga_aggregate_target=157286400 
	*.processes=150 
	*.remote_login_passwordfile='EXCLUSIVE' 
	*.sga_max_size=367001600 
	*.sga_target=367001600 
	*.undo_tablespace='UNDOTBS1' 
	undo_management = manual 
	event = '10513 trace name context forever, level 2' 
	 
	I have done the flowing step. 
	1. Shutdown the instance 
	 
	2. set the following parameters in the pfile 
	undo_management = manual 
	event = '10513 trace name context forever, level 2' 
	 
	3. >startup restrict pfile=<initsid.ora> 
	 
	4. >select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE'; 
	 
	 
	 
	The underscore parameter you have set are fine(_row_cr) . 
	 
	Please comment out event 10513 not required for ora-00600[4194] 
	 
	Regarding your query 
	 
	SQL> select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE'; 
	 
	TABLESPACE_NAME STATUS SEGMENT_NAME 
	-------------------- ------------------------------------------------ -------------------- 
	SYSTEM ONLINE SYSTEM 
	 
	 
	This is fine because you have set undo management to Manual so the only rollback segment available is in SYSTEM tablespace. 
	 
	 
	You can follow the document I have given. 
	 
	Also run 
	 
	SQL>Select * from v$recover_file ; 
	 
	Ensure you open your database using alter database open (Donot use resetlogs)