Refer to the Technical blog of eygle. In the test, _ disable_logging will affect the database. Because it is an implicit parameter, we can obtain the description of this parameter using the following method:
SQL> select ksppinm, ksppdesc from x $ ksppi where ksppinm like '% logging ';
KSPPINM KSPPDESC
------------------------------------
_ Disable_logging Disable logging
Change it to true, that is, enable the method of not logging:
SQL> alter system set "_ disable_logging" = true scope = both;
System altered.
Create one, simulate the transaction operation, and generate a large number of redo records,
SQL> create table mm tablespace marvener as select * from dba_objects;
Table created.
SQL> insert into mm select * from dba_objects;
45167 rows created.
SQL>/
45167 rows created.
In this case, a sudden power loss occurs, that is, shutdown abort to close the database:
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 385876536 bytes
Database Buffers 1207959552 bytes
Redo Buffers 14692352 bytes
Database mounted.
ORA-00354: upt redo log block header
ORA-00353: log uption near block 81435 change 856029 time 01/30/2012
15:50:39
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/marven/redo01.log'
As shown above. You can find that the database cannot be opened normally, and the system prompts that the redo log header is damaged. A large amount of warning information is displayed in the alarm:
Try to open the database using Resetlogs:
Alter system set "_ allow_resetlogs_upload uption" = true scope = spfile;
Shutdown abort
Startup
The database will still generate the following alarm and forcibly close the instance:
SMON: enabling cache recovery
Mon Jan 30 16:15:41 2012
Errors in file/u01/app/oracle/admin/marven/udump/marven_ora_2900.trc:
ORA-00600: internal error code, arguments: [2662], [0], [855728], [0], [855937], [8388649], [], []
Mon Jan 30 16:15:42 2012
Errors in file/u01/app/oracle/admin/marven/udump/marven_ora_2900.trc:
ORA-00600: internal error code, arguments: [2662], [0], [855728], [0], [855937], [8388649], [], []
Mon Jan 30 16:15:42 2012
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600.
Instance terminated by USER, pid = 2900
ORA-1092 signalled during: alter database open resetlogs...
Mon Jan 30 16:16:34 2012
At this point, we can adjust the SCN through Oracle internal events:
There are two common methods to improve SCN:
1. Use the immediate trace name method (in the database Open state)
Alter session set events 'immediate trace name ADJUST_SCN level x ';
2. Pass the 10015 event (unable to open the database, mount the status)
Alter session set events '10015 trace name adjust_scn level x ';
Note: level 1 is used to increase SCN 1 billion (1 billion) (1024*1024*1024). Generally, Level 1 is sufficient. It can also be adjusted according to the actual situation.
This time, because the database is not opened but in the mount state, you can only use the second method:
Alter session set events '10015 trace name adjust_scn level 10 ';
SQL> alter database open;
Database altered.
From marvelyu's notes