oracle 跑旧的文件,ORA-01207: 文件比控制文件更新 - 旧的控制文件

故障现象:

ORA-01122: 数据库文件 1 验证失败

ORA-01110: 数据文件 1:

'F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\ORCL\SYSTEM01.DBF'

ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法:

1. SQL>alter database backup controlfile to trace  as 'c:\RebuildCtl.sql';数据库已更改。

2. SQL>shutdown immediate 如果数据库是打开状态,则关闭

ORA-01109: 数据库未打开

已经卸载数据库

3. SQL>startup nomount;

ORACLE 例程已经启动。

Total System Global Area 105979576 bytes

Fixed Size 454328 bytes

Variable Size 79691776 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

4. 打开根据提示,编辑在第1步生成的c:\RebuildCtl.sql文件如下;

# The following commands will create a new control file and use it

# to open the database.

# Data used by the recovery manager will be lost. Additional logs may

# be required for media recovery of offline data files. Use this

# only if the current version of all online logs are available.

#STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG

--  SET STANDBY TO MAXIMIZE PERFORMANCE

MAXLOGFILES 5

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'  SIZE 100M,

GROUP 2 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'  SIZE 100M,

GROUP 3 'D:\ORACLE\ORADATA\ORCL\REDO03.LOG'  SIZE 100M

-- STANDBY LOGFILE

DATAFILE

'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF',

'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF',

'D:\ORACLE\ORADATA\ORCL\INDX01.DBF',

'D:\ORACLE\ORADATA\ORCL\TOOLS01.DBF',

'D:\ORACLE\ORADATA\ORCL\USERS01.DBF'

CHARACTER SET US7ASCII

;

# Recovery is required if any of the datafiles are restored backups,

# or if the last shutdown was not normal or immediate.

# RECOVER DATABASE

# Database can now be opened normally.

# ALTER DATABASE OPEN;

# Commands to add tempfiles to temporary tablespaces.

# Online tempfiles have complete space information.

# Other tempfiles may require adjustment.

# ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE\ORADATA\ORCL\TEMP01.DBF' REUSE;

# End of tempfile additions.

5..运行上面的sql文件,

SQL> @c:\RebuildCtl.sql

完成重建控制文件,成功打开数据库。

最近的一些学习习得体会:

1.在rebuildctl.sql这个文件里边,编辑的时候注意不要有多余的空行。比如:

LOGFILE

GROUP 1 'D:\ORACLE\PRODUCT\10.2.0\DB_1\TLYDB\REDO01.LOG'  SIZE 50M,

GROUP 2 'D:\ORACLE\PRODUCT\10.2.0\DB_1\TLYDB\REDO02.LOG'  SIZE 50M,

GROUP 3 'D:\ORACLE\PRODUCT\10.2.0\DB_1\TLYDB\REDO03.LOG'  SIZE 50M

DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\DB_1\TLYDB\SYSTEM01.DBF',

datafile和上面的紧紧跟着,不要有空行。(当然,这只是一个小问题)

2.create spfile='D:\oracle\product\10.2.0\db_1\dbs\SPFILETLYDB.ORA' from pfile='D:\oracle\product\10.2.0\db_1\admin\TLYDB\pfile\init.ora'

spfile='D:\oracle\product\10.2.0\db_1\dbs\SPFILETLYDB.ORA'  这里还是写上全路径吧,貌似是可以只写SPFILETLYDB的,还不太清楚,有空再看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值