ORA-1157

数据文件存在,但Oracle认不到它

数据库是打开状态
1、查看数据文件所在的表空间还包含哪些数据文件
select file_name,status from dba_data_files
where tablespace_name=''

2、确定所有数据文件的状态都是可用的

3、把表空间变成只读状态
alter tablespace read only;
4、确定在数据字典中表空间是显示为只读的
select tablespace_name,status from dba_tablespaces
where tablespace_name=''
5、拷贝数据文件到一个新的位置,拷贝完成后把整个表空间offline
alter tablespace offline;
6、重命名这个数据文件到一个新的位置,这个操作会自动更新控制文件中的内容
alter database rename file '/full_path/datafile_name.dbf' to '/full_path/datafile_name.dbf'
7、online表空间
alter tablespace online;
8、把这个表空间设置为读写状态
alter tablespace read write;
9、删除原来旧的数据文件

数据库是关闭状态
1、正常关闭数据库
2、拷贝数据文件到一个新的位置
3、mount启动数据库
startup mount
4、重命名这个数据文件到一个新的位置,这个操作会自动更新控制文件中的内容
alter database rename file '/full_path/datafile_name.dbf' to '/full_path/datafile_name.dbf'
5、打开数据库
alter database open


数据文件不存在或对Oracle来说是不可用的(ORA-27046 ORA-1157)

重建数据文件所属的那个表空间
1、mount数据库
startup mount pfile='<>';
2、offline drop数据文件
alter database datafile '' offline drop;
3、打开数据库
alter database open;
4、删除表空间
drop tablespace including contents;
5、重建表空间
create tablespace datafile '' size ;
6、重建表空间中的所有对象,可以使用import dump

用正常的恢复过程去恢复数据文件
1、从备份中恢复丢失或损坏的数据文件
2、mount数据库
startup mount
3、查询日志状态
select l.group#,member,sequence#,first_change#
from v$log l,v$logfile f
where l.group#=f.group#;
4、如果数据库是非归档状态下
select file#,change# from v$recover_file;
如果change#大于最小的first_change#,则文件可以被恢复
如果change#小于最小的first_change#,则只能从最近的备份恢复或重建这个数据文件
5、恢复数据文件
recover datafile ''
6、打开数据库
alter database open

数据库临时表空间的数据文件的丢失
select * from dba_objects order by object_name
ORA-01157
ORA-01110

alter database tempfile 'full_path_file_name' drop;
select tablespace_name,file_name from dba_temp_files;
alter tablespace temp add tempfile 'full_path_file_name' size 100M;

其它见Oracle数据库DBA专题技术精粹--ORA-1157错误及对策

 

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

转载于:http://blog.itpub.net/17012874/viewspace-694211/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值