ora-16433的处理思路

在给一个生产库做灾难恢复的过程中,recover database报错
SQL> recover database;
 ORA-00283: recovery session canceled due to errors
 ORA-16433: The database must be opened in read/write mode.
 
该库无备份无归档,意外掉电,所以走到这步必须见招拆招的解决。
于是准备重建控制文件,以noresetlogs拉起数据库
结果在mount状态下,backup controlfile to trace也报错ORA-16433
于是手动创建控制文件
1.archive log list检查归档情况
2.select * from v$nls_parameters检查字符集情况
3.SQL> select name from v$datafile order by file#;
  SQL> select group#, member from v$logfile;
  SQL> select name, bytes from v$tempfile order by file#;
确认各种文件location.

然后使用以下模版,随便找个库trace都可以,关键是注意标点符号(尤其是logfile与datafile的最后一行,没有逗号)
CREATE CONTROLFILE REUSE DATABASE "TEST1" NORESETLOGS NOARCHIVELOG
 MAXLOGFILES 16
 MAXLOGMEMBERS 3
 MAXDATAFILES 100
 MAXINSTANCES 8
 MAXLOGHISTORY 292
LOGFILE
 GROUP 1 '/oradata/test1/redo01.log' SIZE 50M,
 GROUP 2 '/oradata/test1/redo02.log' SIZE 50M,
 GROUP 3 '/oradata/test1/redo03.log' SIZE 50M
DATAFILE
'/oradata/test1/system01.dbf',
'/oradata/test1/undotbs01.dbf',
'/oradata/test1/sysaux01.dbf',
'/oradata/test1/users01.dbf',
'/oradata/test1/cat_tb_1.dbf',
'/oradata/test1/cat02.dbf'
CHARACTER SET ZHS16GBK
;

控制文件成功创建,进入下一流程。

创建文件时标点不清楚会导致
ORA-00600 [kcfccfl_1] or ORA-00600 [kccccfl_1] or ORA-02236 when Creating Control File (文档 ID 1434813.1)
ORA-01163: SIZE clause indicates string (blocks), but should match header string
Cause: The size specified in bytes in the SIZE clause of the CREATE CONTROLFILE statement does not equate to the number of blocks recorded in the header.
Action: Specify the correct filename and size ( in bytes ).

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值