重新启动后无法登录到 Oracle 数据库
Cannot log into Oracle database after restart
我的 Oracle 数据库每天都遇到重复出现的问题。我最近连接了它,现在当我重新启动时,它似乎丢失了。失去它,我的意思是当我尝试以普通用户身份登录时收到 ORA-01034 错误以及 ORA-27101 错误。如果我尝试我的 SYS 用户,我得到一个不足的错误 (ORA-01031)。
我发现如果删除该服务并重新创建它,我可以重新登录。但是,这是不可行的,因为它是我的本地环境,而且我通常会在晚上关机。我可以保持我的箱子每周一次,但这似乎仍然不是一个可行的想法。
下面是我的 TNSNames 和监听器文件。
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.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\chad.johnson\product.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(ORACLE_HOME = C:\app\chad.johnson\product.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.2.0\dbhome_1\log
)
我确实注意到,今天早上启动时我的 11g Oracle 服务和 OracleInstanceBRACMIS 服务都已关闭。不确定这是否与此有关。谢谢
编辑:我找到了一种强制我的数据库启动的方法。在命令提示符下,我输入命令:
oradim -STARTUP -SID BRACMIS
这让我可以启动我的数据库,这反过来让我终于可以登录它。这并不能解决重启后无法登录的整体问题,但它确实为我提供了一种至少可以快速启动数据库的方法,而不是删除 Oracle 服务实例并将其添加回去.
您重新启动时,oracle 服务似乎没有启动。 (这基本上意味着您的 Oracle 数据库未启动。)
转到您的 windows 服务,找到您的 Oracle 服务并将服务的启动类型更改为 Automatic 。这将确保 Oracle 数据库在重启后启动。
同时打开命令提示符...执行以下操作...
C:\> set oracle_sid=your_sid
C:\>sqlplus / as sysdba
SQL>Startup;
这将启动您的实例...
我的 Oracle 数据库每天都遇到重复出现的问题。我最近连接了它,现在当我重新启动时,它似乎丢失了。失去它,我的意思是当我尝试以普通用户身份登录时收到 ORA-01034 错误以及 ORA-27101 错误。如果我尝试我的 SYS 用户,我得到一个不足的错误 (ORA-01031)。
我发现如果删除该服务并重新创建它,我可以重新登录。但是,这是不可行的,因为它是我的本地环境,而且我通常会在晚上关机。我可以保持我的箱子每周一次,但这似乎仍然不是一个可行的想法。
下面是我的 TNSNames 和监听器文件。
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.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\chad.johnson\product.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(ORACLE_HOME = C:\app\chad.johnson\product.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.2.0\dbhome_1\log
)
我确实注意到,今天早上启动时我的 11g Oracle 服务和 OracleInstanceBRACMIS 服务都已关闭。不确定这是否与此有关。谢谢
编辑:我找到了一种强制我的数据库启动的方法。在命令提示符下,我输入命令:
oradim -STARTUP -SID BRACMIS
这让我可以启动我的数据库,这反过来让我终于可以登录它。这并不能解决重启后无法登录的整体问题,但它确实为我提供了一种至少可以快速启动数据库的方法,而不是删除 Oracle 服务实例并将其添加回去.
您重新启动时,oracle 服务似乎没有启动。 (这基本上意味着您的 Oracle 数据库未启动。)
转到您的 windows 服务,找到您的 Oracle 服务并将服务的启动类型更改为 Automatic 。这将确保 Oracle 数据库在重启后启动。
同时打开命令提示符...执行以下操作...
C:\> set oracle_sid=your_sid
C:\>sqlplus / as sysdba
SQL>Startup;
这将启动您的实例...