2016-06-08 148 views
0

我的Oracle数据库每天都会遇到一个重复出现的问题。我最近连接它,现在当我重新启动时,它似乎失去了它。通过丢失它,我的意思是当我尝试以普通用户身份登录时,收到ORA-01034错误以及ORA-27101错误。如果我尝试使用我的SYS用户,我得到的错误不足(ORA-01031)。重新启动后无法登录到Oracle数据库

我发现,如果我删除服务并重新创建它,我可以重新登录。但是,这不可行,因为它是我的本地环境,我倾向于通常在夜间关闭。我可以保持我的盒子和每周做,但这似乎并不是一个可行的想法。

下面是我的TNSNames和Listener文件。

的tnsnames.ora

ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

BRACMIS = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.x.xx)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = BRACMIS) 
     (INSTANCE_NAME = BRACMIS) 
    ) 

的listener.ora

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\app\chad.johnson\product\11.2.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:C:\app\chad.johnson\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
    ) 
    (SID_DESC = 
     (ORACLE_HOME = C:\app\chad.johnson\product\11.2.0\dbhome_1) 
     (SID_NAME = BRACMIS) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.x.xx)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

ADR_BASE_LISTENER = C:\app\chad.johnson\product\11.2.0\dbhome_1\log 
) 

我也注意到,当我今天早上开始了我为11g和OracleInstanceBRACMIS服务并重Oracle服务均关闭。不知道这是否与此有关。谢谢。

编辑:我找到了一种方法来强制我的数据库启动。在命令提示符下,输入我的命令:

ORADIM -startup -SID BRACMIS

这让我开始我的数据库,这反过来让我登录到它的持续多久。这并不能解决重新启动后不能登录的问题,但它确实为我提供了一种至少启动数据库的方法,而不是删除Oracle服务实例并将其添加回来。

回答

1

看起来,当您重新启动时,oracle服务未启动。 (这基本上意味着您的Oracle数据库未启动。)

转到您的Windows服务,并找到您的Oracle服务并将服务的启动类型更改为自动。这将确保Oracle数据库在重新启动后启动。

同时打开命令提示符...请执行下列操作..

C:\> set oracle_sid=your_sid 
C:\>sqlplus/as sysdba 
SQL>Startup; 

这将启动您的实例...

+0

我已经改变了我的Oracle实例服务设置为自动了。 至于命令提示符,这是问题的一部分。当我尝试以sysdba身份登录时,收到“权限不足”的消息。我相信Oracle正在尝试使用我给DB/SYS /系统的凭据。即使使用这些凭据,我仍然可以得到相同的响应。 – IyaTaisho

+0

是否设置了ORACLE_HOME和ORACLE_SID? – cableload

+0

是的,我已经设置了两个。我确实找到了一种强制数据库启动的方法。使用命令oradim -STARTUP -SID BRACMIS,我的数据库启动了,现在我可以输入它了。 – IyaTaisho