ORA-00130: 侦听器地址无效,配置失败

ORA-00130: invalid listener address, configure failure

安装 11.2 软件包后在 Slackware 分发版中尝试配置为

sudo /etc/rc.d/rc.oracle-xe configure

CloneRmanRestore.log 很好,在 cloneDBCreation.log 中有一些错误

...
    ORA-00119: invalid specification for system parameter LOCAL_LISTENER
    ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=black)(PORT=1521))'
...

我的主机名-i 和主机名-f 给

127.0.0.1

black

结果。

tnsping black:1521 is OK.

这里是listener.ora、tnsname.ora和${ORACLE_HOME}/config/scripts/init.ora

#  SID_LIST_LOCAL_LISTENER =
#  (SID_LIST =
#    (SID_DESC =
#      (SID_NAME = PLSExtProc)
#      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
#      (PROGRAM = extproc)
#    )
#  )
# use LOCAL_LISTENER instead default LISTENER
LOCAL_LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
#       (ADDRESS = (PROTOCOL = TCP)(HOST = black)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

tnsname.ora

    XE =
  (DESCRIPTION =
#    (ADDRESS = (PROTOCOL = TCP)(HOST = black)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

init.ora

    ...
*.local_listener="(ADDRESS = (PROTOCOL=TCP) (HOST=127.0.0.1) (PORT=1521))"
local_listener="(ADDRESS = (PROTOCOL=TCP) (HOST=127.0.0.1) (PORT=1521))"

我尝试了默认设置中的静态侦听器,然后通过在 listener.ora 中注释并将默认侦听器重新定义为 LOCAL_LISTENER 来尝试动态服务注册。正在申请

lsnrctl status LOCAL_LISTENER

配置失败后给出

...
        ------------------------
Alias                     LOCAL_LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
...
Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
    Services Summary...
    Service "XE" has 1 instance(s).
      Instance "XE", status READY, has 1 handler(s) for this service...
    The command completed successfully

请帮忙解决问题。

尝试按照应该有助于解决您的问题的步骤操作。

--以sysdba身份登录

$sqlplu / as sysdba

--从当前spfile创建pfile

SQL>create pfile='/home/oracle/mypfile.ora' from spfile;

--保留一份备份,仅供参考。

$cp /home/oracle/mypfile.ora /home/oracle/mypfile.ora.backup

现在,打开新创建的 pfile,/home/oracle/mypfile.ora 并删除 local_listenr='listener_' 并保存它。

--关闭数据库

SQL>Shutdown

--使用新的pfile启动数据库

SQL>startup nomount pfile='/home/oracle/mypfile.ora'

--从 pfile 创建服务器 spfile

SQL>create spfile from pfile;

--shutdown database,如果已经shutdown了就可以了

SQL>Shutdown

--启动数据库

SQL>startup