当前位置: 首页 > 故障处理, 特殊恢复 > 正文

       下面的环境来至于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错误:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter