下面的环境来至于QQ群里的一个兄弟,刚刚创建的测试数据库就出问题,不能正常打开,主要跑下面的错误,朋友通过tar包,将数据库传给我
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.
SQL> alter database open resetlogs upgrade;
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2663], [0], [1257159], [0],
[1257178], [], [], [], [], [], [], []
进程 ID: 5312
会话 ID: 191 序列号: 1
1 环境介绍
d:wendangSkyDrivers2sql>uname -a
windows32 luoping 2.6.1 7601 i686-pc Intel unknown MinGW
朋友的版本为11.2.0.1,我的环境的版本是11.2.0.4
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for 64-bit Windows: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
2,修改参数文件
db_name='XZ'
memory_target=1G
processes = 150
audit_file_dest='d:appluopingadminxzadump'
audit_trail ='none'
db_block_size=8192
db_domain=''
db_recovery_file_dest='d:appluopingfast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='d:appluoping'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = 'd:appluopingoradataxzCONTROL01.CTL'
compatible ='11.2.0'
3,创建服务
d:wendangSkyDrivers2sql>oradim -NEW -SID xz -STARTMODE MANUAL -PFILE pfile='d:pfile.ora'
Instance created.
4 开始数据库恢复
4.1 修改数据文件与日志文件路径
由于我的环境与朋友环境路径不一样,所以这里需要手动修改文件路径名
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZSYSTEM01.DBF' to 'd:appluopingoradataxzSYSTEM01.DBF' ;
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZSYSAUX01.DBF' to 'd:appluopingoradataxzSYSAUX01.DBF' ;
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZUNDOTBS01.DBF' to 'd:appluopingoradataxzUNDOTBS01.DBF';
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZUSERS01.DBF' to 'd:appluopingoradataxzUSERS01.DBF' ;
alter database rename file 'D:ORACLEPRODUCTORADATAXZUSERS01.DBF' to 'd:appluopingoradataxzUSERS01.DBF'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 4 - new file 'd:appluopingoradataxzUSERS01.DBF' not found
ORA-01110: data file 4: 'D:ORACLEPRODUCTORADATAXZUSERS01.DBF'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
这里是由于USERS01.DBF这个数据文件,朋友没有传给我,估计里面有业务数据
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZSP02.DBF' to 'd:appluopingoradataxzSP02.DBF' ;
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZREDO03.LOG' to 'd:appluopingoradataxzREDO03.LOG';
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZREDO02.LOG' to 'd:appluopingoradataxzREDO02.LOG';
Database altered.
www.htz.pw > alter database rename file 'D:ORACLEPRODUCTORADATAXZREDO01.LOG' to 'd:appluopingoradataxzREDO01.LOG';
Database altered.
www.htz.pw > alter database datafile 4 offline;
Database altered.
4.2 ORA-16433错误,手动创建控制文件
这里recover数据库的时候报ORA-16433,这个错误其实在open resetlogs后,很容易出来的,只需要重建控制文件就可以了
www.htz.pw > recover database;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.
www.htz.pw > CREATE CONTROLFILE REUSE DATABASE "XZ" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'd:appluopingoradataxzREDO01.LOG' SIZE 50M,
9 GROUP 2 'd:appluopingoradataxzREDO02.LOG' SIZE 50M,
10 GROUP 3 'd:appluopingoradataxzREDO03.LOG' SIZE 50M
11 DATAFILE
12 'd:appluopingoradataxzSYSTEM01.DBF',
13 'd:appluopingoradataxzSYSAUX01.DBF' ,
14 'd:appluopingoradataxzUNDOTBS01.DBF',
15 'd:appluopingoradataxzSP02.DBF'
16 CHARACTER SET ZHS16GBK;
Control file created.
www.htz.pw > recover database using backup controlfile until cancel;
ORA-00279: 更改 1257137 (在 10/21/2014 16:09:30 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:APPLUOPINGFAST_RECOVERY_AREAXZARCHIVELOG2014_10_21O1_MF_1_1_{ff392285dba4c735eaf57cbf839a563e19e0ca0b993d821097d934f85a596e2c}U_.ARC
ORA-00280: 更改 1257137 (用于线程 1) 在序列 #1 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:APPLUOPINGORADATAXZSYSTEM01.DBF'
ORA-01112: 未启动介质恢复
www.htz.pw > recover database using backup controlfile until cancel;
ORA-00279: 更改 1257137 (在 10/21/2014 16:09:30 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:APPLUOPINGFAST_RECOVERY_AREAXZARCHIVELOG2014_10_21O1_MF_1_1_{ff392285dba4c735eaf57cbf839a563e19e0ca0b993d821097d934f85a596e2c}U_.ARC
ORA-00280: 更改 1257137 (用于线程 1) 在序列 #1 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
d:appluopingoradataxzREDO01.LOG
已应用的日志。
完成介质恢复
4.3 触发ORA-00600 2663错误
www.htz.pw > alter database open resetlogs upgrade;
alter database open resetlogs upgrade
*
第 1 行出现错误:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2663], [0], [1257153], [0],
[1257178], [], [], [], [], [], [], []
进程 ID: 7148
会话 ID: 191 序列号: 1
www.htz.pw > alter session set events '10015 trace name adjust_scn level 1';
会话已更改。
www.htz.pw > alter database open resetlogs upgrade;
alter database open resetlogs upgrade
*
第 1 行出现错误:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2663], [0], [1257159], [0],
[1257178], [], [], [], [], [], [], []
进程 ID: 5312
会话 ID: 191 序列号: 1
2663上面提示的SCN值,可以通过下面查询到
FILE# RFILE# STATUS CHECKPOINT_CHANGE# OFFLINE_CHANGE# LAST_CHANGE# NAME
----- ------ --------------- ------------------ ---------------- ---------------- ------------------------------------------------------------
1 1 SYSTEM 1257137 1257133 D:ORACLEPRODUCTORADATAXZSYSTEM01.DBF
2 2 ONLINE 1257137 1257133 D:ORACLEPRODUCTORADATAXZSYSAUX01.DBF
3 3 ONLINE 1257137 1257133 D:ORACLEPRODUCTORADATAXZUNDOTBS01.DBF
4 4 ONLINE 1257137 1257133 D:ORACLEPRODUCTORADATAXZUSERS01.DBF
6 6 ONLINE 1257137 1257133 D:ORACLEPRODUCTORADATAXZSP02.DBF
忘记了,我的版本是11.2.0.4,不能通过event或者参数来推进scn,可能通过oradebug来实现
www.htz.pw > oradebug poke 0x149876FA0 4 2257178;
BEFORE: [149876FA0, 149876FA4) = 00000000
AFTER: [149876FA0, 149876FA4) = 0022711A
4.4 数据库正常打开
www.htz.pw > alter database open resetlogs upgrade;
数据库已更改。
问题已经解决,剩下的工作就是temp表空间等操作。


11G数据库启动报ORA-00283 ORA-00600 2663错误:等您坐沙发呢!