oracle无法识别锁定数据文件,Oracle ORA-01157: 无法标识/锁定数据文件

本文介绍了当Oracle数据库的数据文件意外删除后,如何通过置表空间离线、删除、重新创建及设置undo_tablespace来恢复数据库。在RAC环境中,需要确保所有节点都处于合适的状态进行操作。详细步骤包括数据库的启动、关闭、挂载,以及表空间的删除和重建。
摘要由CSDN通过智能技术生成

Oracle ORA-01157: 无法标识/锁定数据文件。这里要注意一下,因为我的是RAC环境,所以在置表空间为offline的时候需要两个数据库都

create undo tablespace MOZI datafile 'E:\Oracle\product\10.2.0\oradata\orcl\MOZI.DBF' size 2048M extent management local;

alter system set undo_tablespace=MOZI;

WINDOW下面的ORCL数据库提示:数据库未打开: 仅允许在固定表/视图中查询

加载数据库时出错:

RA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 7: 'D:\TCM52.DBF'

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 293601280 bytes

Fixed Size 1290208 bytes

Variable Size 209715232 bytes

Database Buffers 75497472 bytes

Redo Buffers 7098368 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 7: 'D:\TCM52.DBF'

原因:我在數據庫服務停止的時候,將數據文件D:\TCM52.DBF刪除了。

解決方法:

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 293601280 bytes

Fixed Size 1290208 bytes

Variable Size 213909536 bytes

Database Buffers 71303168 bytes

Redo Buffers 7098368 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 7: 'D:\TCM52.DBF'

SQL> alter database datafile 'd:\TCM52.dbf' offline drop;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> drop tablespace TCM52 including contents;

表空间已删除。

SQL> create undo tablespace TCM52 datafile 'E:\oracle\product\10.2.0\oradata\TCM52.dbf' size 2048M extent management local;

表空间已创建。

SQL> alter system set undo_tablespace=TCM52;

系统已更改。

LINUX环境下出现类似的问题,转自itpub某大侠的博客

SQL> conn /as sysdba;

SQL> shutdown immediate

SQL> startup mount;

SQL>alter database datafile ‘/oracle/product/10.2/db_1/dbs/ AAAAAAAA’ offline drop;

Database altered

SQL> alter database tempfile ‘/oracle/product/10.2/db_1/dbs/ BBBBBBBB’ drop;

Database altered

SQL> alter database open;

Database opened

查询数据文件联、脱机状态,可以看到已offline的表空间

SQL> select file#,name,status from v$datafile;

接下来按照正常方式删除表空间

SQL> drop tablespace PCS_DWCOMMON including contents and datafiles;

Tablespace droped

SQL> drop tablespace PCS_TEMP including contents and datafiles;

Tablespace droped

重新创建表空间

SQL> CREATE TABLESPACE PCS_DWCOMMON DATAFILE 'AAAAAAAA' SIZE 5G AUTOEXTEND OFF;

Tablespace created

SQL> CREATE TEMPORARY TABLESPACE PCS_TEMP TEMPFILE 'BBBBBBBB' SIZE 20G AUTOEXTEND OFF;

Tablespace created

搞定。这里要注意一下,因为我的是RAC环境,所以在置表空间为offline的时候需要两个数据库都shutdown,,然后启动一台或者两台到mount状态下操作。

更多Oracle相关信息见Oracle 专题页面 ?tid=12

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值