有时候数据死了,或者没有监听,不必重启机子,重启一下数据库服务行了,下面是linux下的启动步骤,没有在win下执行过,可能也可以!
以oracle11i为例
(1) 以oracle身份登录数据库,命令:su - oracle
(2) 以系统管理员登录,命令:sqlplus / as sysdba
(3) 启动数据库,命令:startup
(4) 如果是关闭数据库,命令:shutdown immediate
(5) 退出sqlplus控制台,命令:exit
(6) 进入监听器控制台,命令:lsnrctl
(7) 启动监听器,命令:start
(8) 退出监听器控制台,命令:exit
(9) 重启数据库结束
ORA-01157报错"cannot identify/lock data file"解决:
解决办法:
既然出现报错的几个dbf文件已经不用,则解决办法相对简单,只要将对应的数据文件删除,并继续删除对应新增的表空间即可。操作过程如下:
SQL> shutdown immediate;
SQL> startup mount;
SQL> select file#,name,status from v$datafile;
SQL> alter database datafile '/tmp/test.dbf' offline drop; //此处若不加drop会报错
再次查看v$datafile表会发现对应的几个dbf文件状态由ONLINE变为RECOVER
SQL> select * from v$tablespace;
SQL> drop tablespace test including contents cascade constraints;
......
删除完毕,再次执行startup成功。