问题:ORA-01190: control file or data file 6 is from before the last RESETLOGS
1.mount状态下
-
alter database backup controlfile to trace.
2.找到udump ls -lrt最后一个是最新的
3.关闭数据库 启动到nomount
-
SQL> CREATE CONTROLFILE REUSE DATABASE \"YWS\" RESETLOGS NOARCHIVELOG
-
2 MAXLOGFILES 16
-
3 MAXLOGMEMBERS 3
-
4 MAXDATAFILES 100
-
5 MAXINSTANCES 8
-
6 MAXLOGHISTORY 292
-
7 LOGFILE
-
8 GROUP 1 '/u01/oracle/oradata/yws/redo01.log' SIZE 50M,
-
9 GROUP 2 '/u01/oracle/oradata/yws/redo02.log' SIZE 50M,
-
10 GROUP 3 '/u01/oracle/oradata/yws/redo03.log' SIZE 50M
-
11 -- STANDBY LOGFILE
-
12 DATAFILE
-
13 '/u01/oracle/oradata/yws/system01.dbf',
-
14 '/u01/oracle/oradata/yws/undotbs01.dbf',
-
15 '/u01/oracle/oradata/yws/sysaux01.dbf',
-
16 '/u01/oracle/oradata/yws/users01.dbf',
-
17 '/u01/oracle/oradata/yws/yws.dbf'
-
18 CHARACTER SET WE8ISO8859P1
-
19 ;
-
-
Control file created.
-
-
SQL> alter database open;
-
alter database open
-
*
-
ERROR at line 1:
-
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
-
-
-
SQL> alter database open resetlogs;
-
-
Database altered.
4.原来备份的数据文件 拿回来覆盖现在的数据文件
-
[oracle@lk oradata]$ mv yws.dbf yws
-
[oracle@lk yws]$ pwd
-
/u01/oracle/oradata/yws
5.开库报错
-
SQL> startup
-
ORACLE instance started.
-
-
Total System Global Area 243269632 bytes
-
Fixed Size 1218748 bytes
-
Variable Size 83887940 bytes
-
Database Buffers 155189248 bytes
-
Redo Buffers 2973696 bytes
-
Database mounted.
-
ORA-01190: control file or data file 6 is from before the last RESETLOGS
-
ORA-01110: data file 6: '/u01/oracle/oradata/yws/yws.dbf'
各数据文件头中resetlogs的信息如下:
-
Fhrls:resetlogs scn值
-
Fhrlc:resetlogs count值
-
fhrlc_i:resetlogs count 转换成10进制的值
-
-
-
reset logs count and scn: The counter with the SCN is called the Reset Log Stamp,
-
and is a unique identification. The counter is in fact a timestamp
-
-
-
SQL> select resetlogs_change#, to_char(resetlogs_time,'mm/dd/yyyy hh24:mi:ss') time from v$database;
-
-
RESETLOGS_CHANGE# TIME
-
----------------- -------------------
-
501518 12/22/2013 17:51:25
-
-
SQL> select hxfil,fhrls change#,fhrlc_i,fhrlc time from x$kcvfh;
-
-
HXFIL CHANGE# FHRLC_I TIME
-
---------- ---------------- ---------- --------------------
-
1 501518 834861085 12/22/2013 17:51:25
-
2 501518 834861085 12/22/2013 17:51:25
-
3 501518 834861085 12/22/2013 17:51:25
-
4 501518 834861085 12/22/2013 17:51:25
-
6 446075 829960901 10/28/2013 00:41:41
6.bbed修改文件头
7.重建控制文件
-
SQL> alter database backup controlfile to trace;
-
-
Database altered.
-
-
SQL> shutdown immediate;
-
ORA-01109: database not open
-
-
SQL> CREATE CONTROLFILE REUSE DATABASE \"YWS\" RESETLOGS NOARCHIVELOG
-
2 MAXLOGFILES 16
-
3 MAXLOGMEMBERS 3
-
4 MAXDATAFILES 100
-
5 MAXINSTANCES 8
-
6 MAXLOGHISTORY 292
-
7 LOGFILE
-
8 GROUP 1 '/u01/oracle/oradata/yws/redo01.log' SIZE 50M,
-
9 GROUP 2 '/u01/oracle/oradata/yws/redo02.log' SIZE 50M,
-
10 GROUP 3 '/u01/oracle/oradata/yws/redo03.log' SIZE 50M
-
11 -- STANDBY LOGFILE
-
12 DATAFILE
-
13 '/u01/oracle/oradata/yws/system01.dbf',
-
14 '/u01/oracle/oradata/yws/undotbs01.dbf',
-
15 '/u01/oracle/oradata/yws/sysaux01.dbf',
-
16 '/u01/oracle/oradata/yws/users01.dbf',
-
17 '/u01/oracle/oradata/yws/yws.dbf'
-
18 CHARACTER SET WE8ISO8859P1
-
19 ;
-
-
Control file created.
8.查询
SQL> select hxfil,fhrls change#,fhrlc_i,fhrlc time from x$kcvfh;
HXFIL CHANGE# FHRLC_I TIME
---------- ---------------- ---------- --------------------
1 505082 834878105 12/22/2013 22:35:05
2 505082 834878105 12/22/2013 22:35:05
3 505082 834878105 12/22/2013 22:35:05
4 505082 834878105 12/22/2013 22:35:05
6 505082 834878105 12/22/2013 22:35:05
-
Errors in file /u01/oracle/admin/yws/udump/yws_ora_13792.trc:
-
ORA-00600: internal error code, arguments: [2662], [0], [505089], [0], [505116], [4194313], [], []
-
Sun Dec 22 23:50:14 2013
-
SMON: enabling cache recovery
-
Sun Dec 22 23:50:16 2013
-
Errors in file /u01/oracle/admin/yws/udump/yws_ora_13792.trc:
-
ORA-00600: internal error code, arguments: [2662], [0], [505089], [0], [505116], [4194313], [], []
-
Sun Dec 22 23:50:16 2013
-
Error 600 happened during db open, shutting down database
-
USER: terminating instance due to error 600
-
Instance terminated by USER, pid = 13792
-
ORA-1092 signalled during: alter database open resetlogs...
8.开库
-
SQL> conn / as sysdba
-
Connected to an idle instance.
-
SQL> startup
-
ORACLE instance started.
-
-
Total System Global Area 243269632 bytes
-
Fixed Size 1218748 bytes
-
Variable Size 83887940 bytes
-
Database Buffers 155189248 bytes
-
Redo Buffers 2973696 bytes
-
Database mounted.
-
ORA-01113: file 1 needs media recovery
-
ORA-01110: data file 1: '/u01/oracle/oradata/yws/system01.dbf'
-
-
-
SQL> recover datafile 1;
-
Media recovery complete.
-
SQL> alter database open;
-
alter database open
-
*
-
ERROR at line 1:
-
ORA-01113: file 2 needs media recovery
-
ORA-01110: data file 2: '/u01/oracle/oradata/yws/undotbs01.dbf'
-
-
-
SQL> recover database;
-
Media recovery complete.
-
SQL> alter database open;
-
-
Database altered.
-
-
SQL>
-
-
-
-
成功open。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29477587/viewspace-1079790/
,如需转载,请注明出处,否则将追究法律责任。