ITPub博客

首页 > 数据库 > Oracle > _minimum_giga_scn 开库

_minimum_giga_scn 开库

Oracle 作者:ilsyx 时间:2017-08-07 10:22:11 0 删除 编辑
Mission
When starting up EBS database, it reports a failure of startup due needs recovery; this applies to the EBS 11.5.9 instance on database version: 9.2.0.5. the database results in down state and needs to be up with missing archive.
Symptoms
When starting up an instance, it fails at mount state and shows the following error
ORA-01194 File 1 needs more recovery to be consistent
Which means it needs recovery, issuing “RECOVER DATABASE” for recovering instance, it reports the need for a missing archive number 483. The current archives sequence just hit 5013 and the archive log in question is missing.
ORA-00308: cannot open archived log '/u01/pcb/db/pcbdb/9.2.0/dbs/arch1_483.dbf'
Case #1:
1. Recreating the control file from SQL “ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS ...”
2. Issuing recovery command “RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL”
3. Open database using “ALTER DATABASE OPEN RESETLOGS”
4. Result is the same; ORA-01194 is still showing, needs archive 483.
Case #2:
1. Adding a hidden parameters
_allow_resetlogs_corruption= TRUE
_allow_read_only_corruption= TRUE 
2. Open database using “ALTER DATABASE OPEN RESETLOGS”
3. Result is : ORA-01092: ORACLE instance terminated Disconnection forced
4. Alert log shows ORA 600
ORA-00600: internal error code, arguments: [2662], [1389], [17722400], [1389], [17810351], [1589641225], [], []
5. Oracle Support shows that ORA-600 [2662] "Block SCN is ahead of Current SCN" which is the case. Data files are inconsistent which SCN is different and some are larger than current.
Solution
To solve this issue, database should be opened at least for exporting as much data as we can by using Data Pump of Export tool. In order to do this we have to bump up all SCN on all data file to a value that is higher than any block SCN or current SCN.
This is done by determining how much SCN range should be bumped up. The ORA 600 shows after [2662] bracket 2 values for SCN, current and block. Current = 17722400 < block = 17810351 as per metalink note on ORA-600 tool:
ERROR:
ORA-600 [2662] [a] [b] [c] [d] [e]
VERSIONS:
versions 6.0 to 10.1
DESCRIPTION:
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.


ARGUMENTS:
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
Arg [c] dependent SCN WRAP
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.
Now, difference is about 87951 in SCN. To bump it up; we use either one of these methods to bump up the SCN
alter session set events '10015 trace name adjust_scn level m';
OR using hidden parameter ‘_minimum_giga_scn=n ’
Where
m is SCN difference bump up in 2^30 units
n is Minimum SCN to start with in 2^30 units
After issuing the first command on mount state with level 6000, opening database with resetlogs option succeeded but got terminated and alert log shows this ORA-00600 error:
ORA-00600: internal error code, arguments: [4137], [], [], [], [], [], [], []
This is the root cause of failing to startup in first place and needs recovery.
As Oracle metalink shows that it a corruption in a rollback segment:
ERROR:
ORA-600 [4137]


VERSIONS: 
versions 7.0 to 10.1


DESCRIPTION:
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.


FUNCTIONALITY:
Kernel Transaction Undo Recovery


IMPACT:
POSSIBLE PHYSICAL CORRUPTION in Rollback segments
Once it’s related to rollback segments; the corrupted rollback segment should be dropped, we do the following:
1. Change UNDO_MANAGEMENT to MANUAL
2. Startup database; now it will open without ORA-00600 error
3. Create new UNDO tablespace
4. Drop old UNDO tablespace
5. Change UNDO_TABLESPACE to new UNDO
6. Change UNDO_MANAGEMENT to AUTO
7. Recycle Database
We got a warning from alert log states after changing to manual undo management...
SMON: mark undo segment 8 as needs recovery
When trying to drop UNDO tablespace an error shows that "_SYSSMU8$" rollback segment; the one needs recovery, is still active. In order to drop it we have to make it in offline state and drop it.
drop rollback segment "_SYSSMU8$";
This command will not work and give
ORA-30025: DROP segment '_SYSSMU8$' (in undo tablespace) not allowed.
The only way to do this; putting "_SYSSMU8$" rollback segment in offline state, is to use the hidden parameter


_offline_rollback_segments= _SYSSMU8$
After restarting database, the old UNDO tablespace is dropped and database uses the new UNDO.
Summary
This shows how to recover database from corrupted undo (rollback) segment with missing archive log using SCN bumping and hidden parameters to drop corrupted undo segment.
This will bring up the database in open state, but it’s unsupported by Oracle. This method is used to extract data using export tools then recreating database.
Hope this helps.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11780477/viewspace-2143174/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Cloudera CDH简介
请登录后发表评论 登录
全部评论

注册时间:2009-06-12

  • 博文量
    195
  • 访问量
    598919