oracle删除表空间的.DBF文件后,无法打开服务
今天给客户初始化oracle还原数据。不小心手误删除了建立的表空间;
记住:客户的环境能不删东西就不删。物理删除是最最最忌讳的,一个生成的文件肯定是关联了什么东西。
还原一旦手动删除了表空间,oracle会出现什么样的症状? (因为我关闭了linux窗口,报错靠描绘和借鉴其他博主报错)
一、首先你的sysdba可以连上,但是查询语句的时候就会报错,报的错误就是打不开数据库
查询这个语句select file#,name,status from v$datafile;出现各种表空间名。
查询这个语句是 select * from v$tempfile; 临时表空间。
会提示缺失:xxx表空间不存在,因为被手动删了。
类似oracle-01516,Oracle 11g ORA-01516: nonexistent log file, data file, or temporary file ....
二、登录用户会报错
Caused by: java.sql.SQLException: ORA-01109: database not open
三、不能创建数据库,提示也是没打开数据库。
解决方法:
登录:
(1):sqlplus "/as sysdba" (2):SQL> shutdown immediate (3)SQL> startup ORACLE 例程已经启动。
报错类似
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 92275368 bytes
Database Buffers 192937984 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF'
(5)SQL> select name from v$datafile;
NAME -------------------------------------------------------------------------------- NAME -------------------------------------------------------------------------------- D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSTEM01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\UNDOTBS01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSAUX01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\USERS01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\EXAMPLE01.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\DRP.DBF
SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF' offline;
alter database datafile D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF offline 第 1 行出现错误: ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机 此时alter system check datafiles命令可以用来纠正这个问题,使数据文件能够正常访问,将触发实例重新识别并验证这个数据文件。然后使数据库能够正常工作 SQL> alter system check datafiles; System altered.
SQL> shutdown immediate; ORA-01109: 数据库未打开
ORACLE 例程已经启动。 Total System Global Area 293601280 bytes Fixed Size 1248600 bytes Variable Size 92275368 bytes Database Buffers 192937984 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开.
注意事项:
先offline 再online:
发现: offline 容易,online 难:
最好再让系统检查下审核下文件,核查下文件位置。
sql:alter system check datafiles;
System altered.
如果报以下错误
ERROR at line 1:
ORA-01122: database file xxx failed verification check
ORA-01110: data file 201: 'xxx/xxx/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN
SQL> alter database tempfile '/u02/ezhou/temp01.dbf' offline;
Database altered.
SQL> alter database tempfile '/u02/ezhou/temp01.dbf' drop;
Database altered.
SQL> alter database tempfile '/u02/ezhou/temp01.dbf' online;
alter database tempfile '/u02/ezhou/temp01.dbf' online *
ERROR at line 1:
ORA-01122: database file 201 failed verification check
ORA-01110: data file 201: '/u02/ezhou/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN
参考文章:https://blog.csdn.net/xml1996/article/details/104704869/