当oracle丢失所有控制文件后可以重新创建控制文件来恢复数据库

当oracle丢失所有控制文件后可以重新创建控制文件来使数据库正常打开
重新创建控制文件的方法如下:
第一步是查询出该数据的所有日志文件,数据文件和控制文件

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------

D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO03.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO02.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO01.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO01A.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO02A.LOG
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO03A.LOG

6 rows selected.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------

D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\USERS01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\EXAMPLE01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\OCP
D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\RCAT_TS

7 rows selected.

SQL> select value from v$parameter where name='control_files';

VALUE
--------------------------------------------------------------------------------

D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORA

DATA\OCP\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\CONTROL03.CTL, D:\O

RACLE\PRODUCT\CONTROL04.CTL

第二步是关闭数据库
shutdown
第三步是备份所有的日志文件和数据文件
第四步是启动数据库到nomount的状态
startup nomount
第五步是重新创建控制文件,当重新创建控制文件时如果你丢失了一个要添加到新创建的控制文件中的一个日志组,
在这种情况下数据库要从丢失该日志组的情况下恢复,如果你要重命名数据库的话你就是使用RESETLOGS语句,否则
你就使用NORESETLOGS语句.
CREATE CONTROLFILE reuse set
 DATABASE ocp
LOGFILE GROUP 1 ('D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO01.LOG',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO01A.LOG') size 200m ,
GROUP 2 ('D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO02.LOG',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO02A.LOG') size 200m,
GROUP 3 ('D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO03.LOG',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\REDO03A.LOG') size 200m
RESETLOGS
DATAFILE 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\SYSTEM01.DBF',
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\UNDOTBS01.DBF' ,
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\SYSAUX01.DBF' ,
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\USERS01.DBF' ,
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP\EXAMPLE01.DBF'
MAXLOGFILES 50
MAXLOGMEMBERS 3
MAXLOGHISTORY 400
MAXDATAFILES 200
MAXINSTANCES 6

第六步是在脱机的磁盘上备份你新创建的控制文件
第七步是编辑初始化参数文件修改control_files参数指向你重新创建的参数文件
第八步打开数据库,alter database open;如果你在重新创建控制文件时使用了resetlogs语句的话那么在打开数据库时
就得用alter database open resetlogs来打开数据库.


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

转载于:http://blog.itpub.net/26015009/viewspace-711011/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值