原因:删除了表空间文件
问题重现:
SQL>startup
ORACLE例程已经启动。
Total System Global Area xxxbytes
Fixed Size xxbytes
Variable Size xxxbytes
Database Buffers xbytes
Redo Buffers xxbytes
数据库装载完毕。
ORA-01157:无法标识/锁定数据库文件12 - 请参阅 DBWR 跟踪文件
ORA-01110:数据文件12:'E:\ORACLE\product\12.2.0\dbhome_1\oradata\BI\ETL.dbf'
解决办法:
1.关闭数据库
shutdown immediate
ORA-01109:数据库未打开
已经卸载数据库。
ORACLE例程已经关闭
2.装载数据库
Oracle数据库启动分为三步,即正常启动过程中输出的:启动Oracle例程-装载数据库-启动数据库。
startup nomount:只启动Oracle例程。
startup mount:启动Oracle例程并装载数据库
startup:正常启动数据库的过程,即启动例程-装载数据库-启动数据库。
这里使用startup mount,装载数据库但不打开,从而对数据库文件进行操作。
SQL>startup mount
ORACLE例程已经启动。
Total System Global Area xxxbytes
Fixed Size xxbytes
Variable Size xxxbytes
Database Buffers xbytes
Redo Buffers xxbytes
数据库装载完毕。
3.删除对应的表空间数据文件
SQL>alter database datafile 12 offline drop;
数据库已更改
4.recover
SQL>recover database;
5.shutdown再startup,发现数据库启动正常。