• ORA-00119/ORA-00132


    今天在启动服务器上的ORACLE时遇到如下错误:
      SQL> startup;
      ORA-00119: invalid specification for system parameter LOCAL_LISTENER
      ORA-00132: syntax error or unresolved network name ’LISTENER_ORCL’
      然后,在网上找了一些资料,解决了此问题。
      解决的方式如下(这是网上的一位达人解决方案,我照他的步骤顺利解决,不过决定还是做一个笔记):
      第一步:复制一份pfile参数文件(注意:oracle中的pfile指的就是init<sid>.ora文件)
      $ ./sqlplus / as sysdba;
      SQL> create pfile from spfile=’/u01/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora’;
      第二步:修改pfile参数文件(也即修改init<sid>.ora文件)
      经过第一步以后,你就会在$ORACLE_HOME/dbs目录下发现有这么一个文件init<sid>.ora,这就是你第一步创建的文件。由于我的oracle实例名为orcl,所以我的pfile文件为initorcl.ora。
      用gedit打开,找到local_listener这一行,然后将其值修改为:
      (ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))
      其中的your_hostname为你的主机名,其实导致ORA-00119和ORA-00132错误的原因就很可能是你修改了你的hostname,但是我看了一下我的tnsname.ora文件里面的那个LISTENER_ORCL(可能你不是这个名字)和后面修改的your_hostname一致,我做的只是将tnsname.ora文件中的(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))复制到pfile文件的“local_listener=”后面,然后就顺利启动了数据库,我也不知道为什么直接用*.local_listener=’LISTENER_ORCL’就找不到,而一定要*.local_listener=’(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))’才可以,这个问题以后研究一下。
      以下是我的一个修改样例:
      修改之前可能是这样
      *.local_listener=’LISTENER_ORCL’
      修改后的值大概就是这个样子了
      *.local_listener=’(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))’
      然后保存退出
      第三步:以pfile创建spfile
      使用以下命令创建spfile
      SQL> create spfile from pfile=’/u01/oracle/product/10.2.0/db_1/dbs/initorcl.ora’;
      第四步:启动数据库
      SQL> startup;
      ORACLE instance started.
      Total System Global Area *** bytes
      Fixed Size *** bytes
      Variable Size *** bytes
      Database Buffers *** bytes
      Redo Buffers *** bytes
      Database mounted.
      Database opened.

    ***********************************
    在oracle92上创建了一个测试数据库,忘记了创建spfile(9208默认仍然是pfile启动数据库的),同时修改了监听器的名字什么的,然后过了几天重启数据库的时候,发现数据库启动的时候报错

    ORA-00119: invalid specification for system parameter LOCAL_LISTENER
    ORA-00132: syntax error or unresolved network name ’LISTENER_ORCL’

    检查的时候,发现确实没有spfile,之前修改监听器什么的都只是在内存里面修改了,没保存到pfile文件里去

    问题原因:数据库在启动的时候会尝试解析tnsnames.ora里的listener名字,看是否存在该listener,如果不存在则提示错误。

    解决方式:
    1. 如果有pfile,则用pfile启动数据库;如果不存在pfile,但有之前的spfile,那么可以通过create pfile from spfile='/home/..../spfileXXXX.ora'来生成pfile,并可手动编辑pfile文件
    startup pfile='/home/.../initorcl.ora'

    2. 检查spfile的值,并创建spfile
    SQL> show parameter spfile

    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    spfile string
    SQL> create spfile from pfile='/home/ora92/admin/orcl/pfile/initorcl.ora.515200911423'
    2 ;

    File created.

    SQL> show parameter spfile

    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    spfile string

    SQL> startup force
    ORACLE instance started.

    Total System Global Area 2837416920 bytes
    Fixed Size 744408 bytes
    Variable Size 687865856 bytes
    Database Buffers 2147483648 bytes
    Redo Buffers 1323008 bytes
    Database mounted.
    Database opened.
    SQL> show parameter spfile

    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    spfile string
    ?/dbs/spfile@.ora

    3. 检查local_listener的值,并设置成需要的值
    SQL> show parameter listener

    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    local_listener string

    mts_listener_address string

    mts_multiple_listeners boolean
    FALSE
    remote_listener string
    SQL> alter system set local_listener=' (ADDRESS = (PROTOCOL = TCP)(HOST = mddbstandby.163.com)(PORT = 9521))' scope=both;

    System altered.

    SQL> startup force
    ORACLE instance started.

    Total System Global Area 2837416920 bytes
    Fixed Size 744408 bytes
    Variable Size 687865856 bytes
    Database Buffers 2147483648 bytes
    Redo Buffers 1323008 bytes
    Database mounted.
    Database opened.
    SQL> show parameter local_listener

    NAME TYPE
    ------------------------------------ ---------------------------------
    VALUE
    ------------------------------
    local_listener string
    (ADDRESS = (PROTOCOL = TCP)(H
    OST = mddbstandby.163.com)(POR
    T = 9521))
    SQL>

  • 相关阅读:
    SQL存储过程:取出自定义条数的数据
    删除新闻类别的SQL触发器代码!
    文字上下滚动
    bcp生成excel文件优化方案
    Flickr.net傻瓜教程(一)
    关于jquery的ajax编码的另类解决方案,巨简便
    Flickr.net傻瓜教程(三)打造自己的图片搜索引擎2
    Flickr.net傻瓜教程(二)
    PowerDesigner对列增加注释
    Flickr.net傻瓜教程(三)打造自己的图片搜索引擎
  • 原文地址:https://www.cnblogs.com/jackhub/p/3264580.html
Copyright © 2020-2023  润新知