oracle 重建控制文件 恢复数据库

C盘不小心被格式化了,Oracle在D盘,重装系统后,需要把数据库恢复起来

1.无法打开数据库,需要重建控制文件。

SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。

然后用旧得控制文件覆盖新的,一定要nomount状态才能覆盖,不然会提示文件在使用覆盖不了。

执行创建控制文件的语句:alter database backup controlfile to trace;

生成的.trc文件到D:\Oracle\diag\rdbms\test\test\trace\*.trc,路径可能会不一样,可在路径搜索trace根据时间找到刚才生成的.trc,打开文件根据其Create controlfile reuse database "TEST"的内容创建脚本文件temp.txt备用。

temp.txt脚本文件大致内容如下:

Create controlfile reuse database "TEST" RESETLOGS
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
Datafile
'D:\oracle\oradata\TEST\SYSTEM01.DBF',
'D:\oracle\oradata\TEST\SYSAUX01.DBF',
'D:\oracle\oradata\TEST\UNDOTBS01.DBF',
'D:\oracle\oradata\TEST\USERS01.DBF',
'D:\test\db\DAT.ORA',
'D:\test\db\LOG01.ORA',
'D:\test\db\LOG02.ORA',
'D:\test\db\LOG03.ORA',
'D:\test\db\LOG04.ORA',
'D:\test\db\LOG05.ORA',
'D:\test\db\LOG06.ORA',
'D:\test\db\LOG07.ORA',
'D:\test\db\LOG08.ORA',
'D:\test\db\LOG09.ORA',
'D:\test\db\LOG10.ORA'
LOGFILE GROUP 1 ('D:\oracle\oradata\TEST\redo01.log') SIZE 51200K,
GROUP 2 ('D:\oracle\oradata\TEST\redo02.log') SIZE 51200K,
GROUP 3 ('D:\oracle\oradata\TEST\redo03.log') SIZE 51200K
;

2.执行刚才创建的控制文件

SQL> @D:\temp.txt

Control file created.

3.以mount状态启动数据库:alter database mount;

4.SQL> recover database;
   ORA-00283: 恢复会话因错误而取消
   ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成

5.因为采用的resetlogs方式恢复,所以出现以上错误,此时需要:

SQL> recover database using backup controlfile until cancel;

根据提示输入文件路径:D:\oracle\oradata\TEST\redo03.log

如还是报错提示输入文件路径,就换一个.log文件:D:\oracle\oradata\TEST\redo02.log,直到:

已应用的日志。
完成介质恢复。

6.SQL> alter database open resetlogs;
数据库已更改。

7.卸载数据库:SQL> shutdown immediate;

然后再启起来:SQL> startup;

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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脚本、加载脚本以重建控制文件,最后确认重建结果并备份新的控制文件。这些步骤将帮助我们成功重建控制文件,使数据库恢复正常运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值