2015-09-15 78 views
1

昨天我重新启动了我的机器,现在我的数据库不可用。 我第一次运行它已经有一些困难,因为有两种不同的Oracle DB安装。Oracle DB 12c无法启动tns服务

Windows服务,我想他们应该是:

  • OracleJobSchedulerFOOBAR
  • OracleOraDB12Home3MTSRecoveryService
  • OracleOraDB12Home3TNSListener:OracleOraDB12Home3TNSListener在本地计算机上启动服务和停止。某些服务如果未被其他服务或程序使用,则会自动停止
  • OracleServiceFOOBAR
  • OracleVssWriterFOOBAR

因此,大家可以看到:我无法启动OracleOraDB12Home3TNSListener服务。

我改变tnsnames.ora文件:

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


    FOOBAR= 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = myurl.com)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = FOOBAR) 
    ) 
) 

而我的listener.ora是

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\OracleDB\product\12.1.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:C:\OracleDB\product\12.1.0\dbhome_1\bin\oraclr12.dll") 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = myurl.com)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

我已经尝试了很多的东西,如:

  • sqlplus/as sysdbastartup但我得到了

ORA-00119:系统参数LOCAL_LISTENER ORA-00132无效规格:语法错误或悬而未决的网络名称 'LISTENER_FOOBAR'

  • alter system set local_listener='FOOBAR'; scope=spflile;但我得到了

* ERROR位于第1行: ORA-01034:ORACLE不可用 进程ID:0 会话ID:0序列号:0

当我检查我对于OracleDB12Home3甲骨文行政支援:

  • ORACLE_SDI = FOOBAR
  • ORACLE_HOME = C:\ OracleDB的\产品\ 12.1.0 \ dbhome_1

是否有人对如何帮助我的任何想法?

回答

1

经过长期调查,感谢一位同事的帮助,它正在工作。

综上所述,我们的表现如何解决它:

  • 所以,解决我的第一个问题“OracleOraDB12Home3TNSListener无法启动”是因为我有一个新的IP。所以我改变了我的配置(...\网络\ ADMIN ):https://community.oracle.com/thread/855326

  • 当我试图用SQL Developer的(连接我的电脑重新启动后)。我有错误:ORA-01034:ORACLE不可用ORA-27101:共享内存领域不存在。这意味着我的数据库没有启动(http://www.dba-oracle.com/sf_ora_01034_oracle_not_available.htm)。

  • 所以我尝试启动DB手动sqlplus/as sysdbastartup但我总是这样的输出:

    SQL>启动 ORA-00119:系统参数LOCAL_LISTENER ORA-00132无效规格:语法错误或没有解决网络名称 'LISTENER_FOOBAR'

  • 要解决我试图在LISTENER.ORATNSNAMES.ORA文件的工作:

LISTENER.ORA


SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\OracleDB\product\12.1.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:C:\OracleDB\product\12.1.0\dbhome_1\bin\oraclr12.dll") 
    ) 
    (SID_DESC = 
     (GLOBAL_DBNAME=FOOBAR) 
     (ORACLE_HOME = C:\OracleDB\product\12.1.0\dbhome_1) 
     (SID_NAME = FOOBAR) 
    ) 
) 

LISTENER_FOOBAR = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

TNSNAMES.ORA


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


FOOBAR = 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = FOOBAR) 
    ) 
) 
  • 我尝试重新启动右窗口服务几次:OracleServiceFOOBAR但没有被改变。我总是有同样的问题。我记得我做过pfile配置。所以我决定用alter system set LOCAL_LISTENER ='(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))'scope = both;来更改pfile配置。但我不能应用任何命令行,因为数据库不启动...

  • 所以我创建了一个名为init.ora与* .local_listener ='(ADDRESS =(PROTOCOL = TCP)(主机= localhost)(PORT = 1521))'来自ORA-00119: invalid specification ORA-00132: syntax error的技巧。我开始了DB机智此文件中的参数SQL> startup pfile=c:\oracledb\admin\XXX\pfile\init.ora

,然后将其工作。