Oracle ORA-01157: 无法标识/锁定数据文件 解决方法

本文转自http://www.linuxidc.com/Linux/2012-05/60761.htm

在使用sqlplus进行启动oralce时,会抛出oracle Ora-01157:无法标志/锁定数据文件;出现此问题的的原因是,数据库中表空间的数据文件被删除,找不到对应的表空间文件;

解决方法:

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.DB
原因:在服务器停止时,将对应的表空间文件误删。
解決方法:
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.db<span class="hilite">f</span>' 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状态下操作。




猜你喜欢

转载自blog.csdn.net/qq_34125349/article/details/78308453
今日推荐