控制文件全部损坏,重建方法

创建生成控制文件脚本
【将当前controlfile文件的创建语句放到了trace文件中】备份控制文件
alter database backup controlfile to trace as 'E:\bak_controlfile.txt';
如果已经无法备份控制文件,可在其他库创建一个控制文件,只需修改路径及实例名即可,格式都是一样的。

根据生成的 bak_controlfile.txt文件将重建控制文件的脚本create_cfile.sql写好放到E盘下

SQL> shutdown immediate
SQL> startup nomount
SQL>@e:\create_file.sql

如果使用的语句是 NORESETLOGS  NOARCHIVELOG

SQL>ALTER DATABASE OPEN;   --启库
--重建临时表空间
SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF'
SIZE 314572800  REUSE AUTOEXTEND ON NEXT 52428800  MAXSIZE 32767M;

如果使用的语句是 RESETLOGS  NOARCHIVELOG

SQL>ALTER DATABASE OPEN RESETLOGS;
--重建临时表空间
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF'
SIZE 314572800  REUSE AUTOEXTEND ON NEXT 52428800  MAXSIZE 32767M;

完成后查看日志文件,临时表空间文件,数据文件
select * from v$logfile;
select * from v$tempfile;
select * from v$datafile;

重建 控制文件的脚本 例子:
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
DATAFILE
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EMR01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EMPI01.DBF'
CHARACTER SET ZHS16GBK
;

注意:
E:\bak_controlfile.txt里创建语句中有一句 -- STANDBY LOGFILE 这句虽然注释掉了,但是也要删除,否则执行的时候会报错。

凭借此方法半小时给公司赚到4000大洋费用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29578568/viewspace-2152775/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29578568/viewspace-2152775/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当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、付费专栏及课程。

余额充值