最近在刚刚装完oracle11g数据库之后,发现自动创建了很多user,于是一时手痒,删掉了很多看似无用的用户....
结果,第二天重新登录的时候,发现oracle连接失败,找到log(oradim.log,database目录下)日志,发现如下错误:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-18008: cannot find OUTLN schema
在网上查过之后,才恍然,原来我是把outln用户误删了..于是开始弥补(windows环境下):
一、启动命令行,输入命令:sqlplus /nolog,连接数据库:conn user/password as sysdba
C:\Users\admin>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 12月 22 11:02:40 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn system/orcl123 as sysdba
已连接。
SQL>
SQL> startup mount
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL>
提示要关闭数据库,执行 shutdown immediate;
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
接下来,启动mount状态:startup mount;
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 3390558208 bytes
Fixed Size 2180464 bytes
Variable Size 1979714192 bytes
Database Buffers 1392508928 bytes
Redo Buffers 16154624 bytes
数据库装载完毕。
SQL>
三、修改replication_dependency_tracking参数:
SQL> alter system set replication_dependency_tracking =false scope=spfile;
系统已更改。
重新启动数据库:
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 3390558208 bytes
Fixed Size 2180464 bytes
Variable Size 1979714192 bytes
Database Buffers 1392508928 bytes
Redo Buffers 16154624 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> create user outln identified by outln;
用户已创建。
SQL> select username from dba_users;
USERNAME
------------------------------
OUTLN
SYS
SYSTEM
SCOTT
...
五、修改回replication_dependency_tracking参数
SQL> alter system set replication_dependency_tracking =true scope=spfile;
系统已更改。
六、重新启动数据库:
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 3390558208 bytes
Fixed Size 2180464 bytes
Variable Size 1979714192 bytes
Database Buffers 1392508928 bytes
Redo Buffers 16154624 bytes
数据库装载完毕。
数据库已经打开。
SQL>
重新连接登录数据库,登录成功,搞定!