重建控制文件引发的一系列ORA

最近在做stream实验,主库stream1,从库stream2

我把主库安装好后直接拷贝到丛库中,才发现所有文件都是stream1,至此犯了一个错误

 

于是开始从参数文件开始修改,当mount状态的时候:

ORA-01503: CREATE CONTROLFILE failed
ORA-01161: database name STREAM1 in file header does not match given name of
STREAM2
ORA-01110: data file 1: '/u01/app/oracle/oradata/stream2/system01.dbf'

 

出现了预料的错误,进而重建控制文件,在trace中找到脚本后,重建

注意:resuse 替换set   NORESETLOGS  替换resetlogs

 

再次出现:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/stream2/system01.dbf'

原因是datafile和control没同步

alter system set "_allow_resetlogs_corruption"=true scope=spfile;
shutdown
alter open resetlogs 的时候 最后出现

 

ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/stream2/system01.dbf'

 

需要实例恢复

SQL> recover datafile 1;
Media recovery complete.

或干脆(一般不用):

startup mount
alter database datafile filename offline drop;
alter database open;

 

至此一切 ok

 

 

Oracle数据库的控制文件遭到损坏或丢失时,我们需要重建控制文件。下面是重建控制文件的步骤: 1. 首先,我们需要确保数据库处于关闭状态。如果数据库正在运行,我们需要停止所有相关进程,包括实例和监听器。 2. 找到数据库实例的初始化参数文件(通常是spfile或init.ora文件),此文件记录了数据库的配置信息和启动参数。确保备份此文件,以防止意外情况发生。 3. 打开一个编辑器,并创建一个新的SQL脚本文件,例如控制文件重建.sql,用于重建控制文件。 4. 在SQL脚本文件中,编写以下命令: ALTER DATABASE BACKUP CONTROLFILE TO TRACE; 这个命令将生成一个包含重建控制文件所需的语句的跟踪文件。 5. 关闭SQL脚本文件,并将其放置在$ORACLE_HOME/rdbms/admin目录中。 6. 启动数据库实例,但不要打开任何数据库。 7. 使用SQL*Plus以SYSDBA权限登录到数据库。 8. 运行以下命令加载步骤4中生成的跟踪文件: @?/rdbms/admin/控制文件重建.sql 这将执行所需的SQL语句,以重建控制文件。 9. 当脚本执行完成后,检查控制文件是否已经成功重建。你可以通过查询V$CONTROLFILE视图来检查。 10. 确认控制文件的完整性和正确性后,关闭数据库实例。 11. 最后,备份新生成的控制文件,以便将来遇到类似问题时可以快速恢复。 总结起来,重建Oracle控制文件涉及到备份初始化参数文件、创建包含重建语句的SQL脚本、加载脚本重建控制文件,最后确认重建结果并备份新的控制文件。这些步骤将帮助我们成功重建控制文件,使数据库恢复正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值