ORA-01200: actual file size of %s is smaller than correct size of %s blocks. *Cause: The size of the file as returned by the operating system is smaller than the size of the file as indicated in the file header and the controlfile. Somehow the file has been truncated. Maybe it is the result of a half completed copy. *Action: Restore a good copy of the data file and do recovery as needed. 只能找备份恢复
客户没有做备份. 我曾经尝试着用: 1) 先关掉oracle,做一个冷备 2)在init文件中,加入下面命令 _allow_resetlogs_corruption=true 3)s然后呢启动到mount状态 tartup mount 4)查看是否所有数据文件都是ONLINE Select name,status from v$datafile 5)将所有数据文件更改为ONLINE/OFFLINE Alter datafile ‘ e:\necdata\necdata03.ora(更改文件的路径地址)’online/offline 6)更换指定数据文件 Alter database rename file ‘E:\NECDATA\NECDATA03.ORA(源文件路径)’to ‘E:\NECDATA\TEST01.ORA(目标文件路径)’ 7)进行恢复 recover database until cancel 8)停止数据库服务 shutdown immediate 9)重新启动到mount状态 startup mount 10)打开数据库 alter database open resetlogs 11)exp数据库 exp80 system(管理员帐户)/manager(密码)@necdata(数据字符集) file=I:\ora001.dmp(导出数据文件存放路径) log=I:\log001.log(导出日志存放路径) full=y rows=y 12)关掉oracle数据库 13)重新创建数据库 14)利用imp将exp出来的内容imp到新的数据库中 但是没有成功,在进行底11步的时候,发现主要数据还是导不出来.
*Cause: The size of the file as returned by the operating system is smaller than the size of the file as indicated in the file header and the controlfile. Somehow the file has been truncated. Maybe it is the result of a half completed copy.
*Action: Restore a good copy of the data file and do recovery as needed.
只能找备份恢复
我曾经尝试着用:
1) 先关掉oracle,做一个冷备
2)在init文件中,加入下面命令 _allow_resetlogs_corruption=true
3)s然后呢启动到mount状态
tartup mount
4)查看是否所有数据文件都是ONLINE
Select name,status from v$datafile
5)将所有数据文件更改为ONLINE/OFFLINE
Alter datafile ‘ e:\necdata\necdata03.ora(更改文件的路径地址)’online/offline 6)更换指定数据文件
Alter database rename file ‘E:\NECDATA\NECDATA03.ORA(源文件路径)’to ‘E:\NECDATA\TEST01.ORA(目标文件路径)’
7)进行恢复 recover database until cancel
8)停止数据库服务
shutdown immediate
9)重新启动到mount状态
startup mount
10)打开数据库 alter database open resetlogs
11)exp数据库
exp80 system(管理员帐户)/manager(密码)@necdata(数据字符集) file=I:\ora001.dmp(导出数据文件存放路径) log=I:\log001.log(导出日志存放路径) full=y rows=y
12)关掉oracle数据库
13)重新创建数据库
14)利用imp将exp出来的内容imp到新的数据库中
但是没有成功,在进行底11步的时候,发现主要数据还是导不出来.