配置listener.ora文件。需要监听器

解决方案 »

  1.   

    在8i中,监听器起不来有时和listener.ora中的中文乱码有关系
      

  2.   

    你是不是从新配置了一个SID啊?
    在输入用户名和密码的时候加上所配置的本地网络服务名;
    username/password@servername
      

  3.   

    首先判断当前SID的服务是否启动,
    如果已经启动并存在多个SID,可采用楼上的方法登录,
    即:connect username/password@servername.
      

  4.   

    昨天不论是客户端登陆,还是在服务器登陆OEM和OMS都提示今天早上,在服务器上登陆,没有异常但是在客户端登陆oem的时候,连接数据库的时候,出现提示窗口:
    “ORA-12541:TNS:没有监听器“我是是从新配置了一个SID,而且侦听器的服务已经启动了。
      

  5.   


    我原来也是。
    但是配置好一个OMS再来打开OEM就可以了。
      

  6.   

    请再次查证侦听服务已经启动
    同时用tnsping去ping一下的数据库
    同时,查看配置的时候端口是否正确。
      

  7.   


    TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 21-8月 -2
    003 13:56:41Copyright (c) 1997 Oracle Corporation.  All rights reserved.已使用的参数文件:
    f:\oracle\ora92\network\admin\sqlnet.ora已使用 HOSTNAME 适配器来解析别名
    Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SID=*)(SERVICE_NAME=10.88.1.1)
    )(ADDRESS=(PROTOCOL=TCP)(HOST=10.88.1.1)(PORT=1521)))
    TNS-12541: TNS:无监听器我用的命令是tnsping 10.88.1.1,返回的结果如上,无监听器是什么意思?
      

  8.   

    Oracle Net8 网络配置和联接 
    1)服务器端配置Listener: 
    添加Listeners , 设置选择 DataBase Name方式,填写2个参数 { HomeDir = /ora/ , SID =ora8 } 
    2)启动Net8服务lsnrctl start 
    3)停止Net8服务lsnrctl stop 
    4)参数文件摘要 
    5)客户端配置:添加 Net Service Name ,同Windows客户端一样格式 
    1)服务器端配置Listener: 
    执行/ora/bin/netasst
    填写描述->首选Oracle服务:
    。PROTOCOL = TCP
    。HOST = 172.17.2.22
    。PORT = 1521
    查看生成的 Net8 Server配置文件:listener.ora
    [oracle@lin admin]$ more listener.ora 
    # LISTENER.ORA Configuration File:/ora/network/admin/listener.ora 
    # Generated by Oracle Net8 Assistant LISTENER = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521)) 
      (PROTOCOL_STACK = 
        (PRESENTATION = TTC) 
        (SESSION = NS) 
      ) 
     ) SID_LIST_LISTENER = 
     (SID_LIST = 
      (SID_DESC =  
       (ORACLE_HOME = /ora) 
       (SID_NAME = ora8) 
      ) 

    ### 如果指明监听服务的"全局名",则有类似这一行:(GLOBAL_DBNAME = ora8) 
    2)启动Net8服务lsnrctl start 
    首先你可以这样取得帮助: 
    [oracle@lin /ora]$ lsnrctl 
    LSNRCTL> help 
    然后开始启动:start 
    [oracle@lin bin]$ lsnrctl start 
    联接时,机器会逐步告诉你正在启动…,正在联接…,已经联接的状态,最后他说成功啦! 下面是一些简要信息: 
    LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:54 
    (c) Copyright 1998 Oracle Corporation. All rights reserved. 
    Starting /ora/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 8.1.5.0.0 - Production 
    System parameter file is /ora/network/admin/listener.ora 
    Log messages written to /ora/network/log/listener.log 
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) 
    STATUS of the LISTENER 
    ------------------------ 
    Alias LISTENER 
    Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production 
    Start Date 19-NOV-99 22:02:54 
    Uptime 0 days 0 hr. 0 min. 0 sec 
    Trace Level off 
    Security OFF 
    SNMP OFF 
    Listener Parameter File /ora/network/admin/listener.ora 
    Listener Log File /ora/network/log/listener.log 
    Services Summary... 
    ora8 has 1 service handler(s) 
    The command completed successfully 
    以上提示说,1个服务被处理,命令成功完成。
    3)停止Net8服务lsnrctl stop 
    最简单的方法是 [oracle@lin /ora]$ lsnrctl stop 
    有时侯,进程出了差错,tnslsnr没有响应,像WindowsNT常犯的毛病一 样,
    这里有一个强硬的手段:先找出它的进程号,然后 kill掉! 
    [oracle@lin /ora]$ ps -ef|grep tns
    oracle 1331 1 0 15:51 ? 00:00:00 /ora/bin/tnslsnr LISTENER -inher 或使用更少的参数也能找到tnslsnr: 
    [oracle@lin /ora]$ ps -e 
    PID TTY TIME CMD
    1331 ? 00:00:00 tnslsnr 现在杀死PID = 1331的进程: 
    [oracle@lin /ora]$ kill 1331 
    LSNRCTL象 SVRMGRL一样,是一个服务器管理程序,有不少参数,或者说是 子程序,带星号的是一个外部程序。 [oracle@lin bin]$ lsnrctl stop 
    LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:50 
    (c) Copyright 1998 Oracle Corporation. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) 
    The command completed successfully 
    Listeners =DataBase Name = Global DB Name =ora8, HomeDir = /ora/ ,SID =ora8 [oracle@lin oracle]$ cd /ora/net*/ad* 
    [oracle@lin admin]$ ls 
    listener.ora namesini.sql samples sqlnet.ora 
    namesdrp.sql namesupg.sql sqlnet.fdf tnsnames.ora 下面是在 Windwos NT/98 上远程控制 TNSLSNR 的情形(图略)。
    4)参数文件摘要 
    [oracle@lin admin]$ more /u01/app/oracle/admin/ora8/pfile/initora8.ora 
    db_name = ora8 
    instance_name = ora8 ## "事例名"是关键字 
    service_names = ora8 control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl") 
    db_block_buffers = 8192 
    shared_pool_size = 4194304 
    log_checkpoint_interval = 10000 
    log_checkpoint_timeout = 1800 
    processes = 50 
    log_buffer = 163840 log_archive_start = true 
    log_archive_dest_1 = "location=/u01/app/oracle/admin/ora8/arch" 
    log_archive_format = %t_%s.dbf 
    # 切记打开回滚段 
    rollback_segments = (r01, r02, r03, r04) # global_names = false ### 监听服务无需指明"全局名" 
    # oracle_trace_enable = true 
    # define directories to store trace and alert files 
    background_dump_dest = /u01/app/oracle/admin/ora8/bdump 
    core_dump_dest = /u01/app/oracle/admin/ora8/cdump 
    user_dump_dest = /u01/app/oracle/admin/ora8/udump 
    db_block_size = 2048 
    remote_login_passwordfile = exclusive 
    os_authent_prefix = "" 
    compatible = "8.1.5" ## 也可以兼容 "8.0.5" 
    5)客户端网络配置 
    [oracle@lin admin]$ more tnsnames.ora 
    # TNSNAMES.ORA Configuration File:/ora/network/admin/tnsnames.ora 
    # Generated by Oracle Net8 Assistant 使用net8助理,结果自动保存在 tnsnames.ora 中,
    [oracle@lin /ora]$ netass* 添加Service: 名称ora8,参数如下:PROTOCOL=TCP HOST=172.17.2.22 PORT=1521 Oracle_SID=ora8 
    机器解释成一个Oracle服务器地址包:
    ( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
      (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))
    )
    一般说来,客户端采用Windows9x/NT/2000,因为这里软件开发容易,程序员和工具较为普及。
    Windows 客户端网络配置与此类似,其内容见于: \OraNT\net80\Admin\tnsname.ora 
    ORA8.WORLD =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
        (CONNECT_DATA = (SID = ora8))
      )------------------------------------------- 
        在Windows2000(beta3专业版)中安装Personal Oeacle8.05时,监听服务安装失败,
    只要理解以上oracle结构原理,可以手工复制Net8文件,修改配置:
    copy CD-ROM\.\NT_x86\server\lsnrctl80.exe,tnslsnr80.exe,tnsping80.exe  C:\orant\bin
    copy CD-ROM\.\listener.ora  C:\orant\net80\admin
    我不久前有这么一次经历。
      
      

  9.   

    Oracle Net8 网络配置和联接 
    1)服务器端配置Listener: 
    添加Listeners , 设置选择 DataBase Name方式,填写2个参数 { HomeDir = /ora/ , SID =ora8 } 
    2)启动Net8服务lsnrctl start 
    3)停止Net8服务lsnrctl stop 
    4)参数文件摘要 
    5)客户端配置:添加 Net Service Name ,同Windows客户端一样格式 
    1)服务器端配置Listener: 
    执行/ora/bin/netasst
    填写描述->首选Oracle服务:
    。PROTOCOL = TCP
    。HOST = 172.17.2.22
    。PORT = 1521
    查看生成的 Net8 Server配置文件:listener.ora
    [oracle@lin admin]$ more listener.ora 
    # LISTENER.ORA Configuration File:/ora/network/admin/listener.ora 
    # Generated by Oracle Net8 Assistant LISTENER = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521)) 
      (PROTOCOL_STACK = 
        (PRESENTATION = TTC) 
        (SESSION = NS) 
      ) 
     ) SID_LIST_LISTENER = 
     (SID_LIST = 
      (SID_DESC =  
       (ORACLE_HOME = /ora) 
       (SID_NAME = ora8) 
      ) 

    ### 如果指明监听服务的"全局名",则有类似这一行:(GLOBAL_DBNAME = ora8) 
    2)启动Net8服务lsnrctl start 
    首先你可以这样取得帮助: 
    [oracle@lin /ora]$ lsnrctl 
    LSNRCTL> help 
    然后开始启动:start 
    [oracle@lin bin]$ lsnrctl start 
    联接时,机器会逐步告诉你正在启动…,正在联接…,已经联接的状态,最后他说成功啦! 下面是一些简要信息: 
    LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:54 
    (c) Copyright 1998 Oracle Corporation. All rights reserved. 
    Starting /ora/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 8.1.5.0.0 - Production 
    System parameter file is /ora/network/admin/listener.ora 
    Log messages written to /ora/network/log/listener.log 
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) 
    STATUS of the LISTENER 
    ------------------------ 
    Alias LISTENER 
    Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production 
    Start Date 19-NOV-99 22:02:54 
    Uptime 0 days 0 hr. 0 min. 0 sec 
    Trace Level off 
    Security OFF 
    SNMP OFF 
    Listener Parameter File /ora/network/admin/listener.ora 
    Listener Log File /ora/network/log/listener.log 
    Services Summary... 
    ora8 has 1 service handler(s) 
    The command completed successfully 
    以上提示说,1个服务被处理,命令成功完成。
    3)停止Net8服务lsnrctl stop 
    最简单的方法是 [oracle@lin /ora]$ lsnrctl stop 
    有时侯,进程出了差错,tnslsnr没有响应,像WindowsNT常犯的毛病一 样,
    这里有一个强硬的手段:先找出它的进程号,然后 kill掉! 
    [oracle@lin /ora]$ ps -ef|grep tns
    oracle 1331 1 0 15:51 ? 00:00:00 /ora/bin/tnslsnr LISTENER -inher 或使用更少的参数也能找到tnslsnr: 
    [oracle@lin /ora]$ ps -e 
    PID TTY TIME CMD
    1331 ? 00:00:00 tnslsnr 现在杀死PID = 1331的进程: 
    [oracle@lin /ora]$ kill 1331 
    LSNRCTL象 SVRMGRL一样,是一个服务器管理程序,有不少参数,或者说是 子程序,带星号的是一个外部程序。 [oracle@lin bin]$ lsnrctl stop 
    LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:50 
    (c) Copyright 1998 Oracle Corporation. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
    (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))) 
    The command completed successfully 
    Listeners =DataBase Name = Global DB Name =ora8, HomeDir = /ora/ ,SID =ora8 [oracle@lin oracle]$ cd /ora/net*/ad* 
    [oracle@lin admin]$ ls 
    listener.ora namesini.sql samples sqlnet.ora 
    namesdrp.sql namesupg.sql sqlnet.fdf tnsnames.ora 下面是在 Windwos NT/98 上远程控制 TNSLSNR 的情形(图略)。
    4)参数文件摘要 
    [oracle@lin admin]$ more /u01/app/oracle/admin/ora8/pfile/initora8.ora 
    db_name = ora8 
    instance_name = ora8 ## "事例名"是关键字 
    service_names = ora8 control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl") 
    db_block_buffers = 8192 
    shared_pool_size = 4194304 
    log_checkpoint_interval = 10000 
    log_checkpoint_timeout = 1800 
    processes = 50 
    log_buffer = 163840 log_archive_start = true 
    log_archive_dest_1 = "location=/u01/app/oracle/admin/ora8/arch" 
    log_archive_format = %t_%s.dbf 
    # 切记打开回滚段 
    rollback_segments = (r01, r02, r03, r04) # global_names = false ### 监听服务无需指明"全局名" 
    # oracle_trace_enable = true 
    # define directories to store trace and alert files 
    background_dump_dest = /u01/app/oracle/admin/ora8/bdump 
    core_dump_dest = /u01/app/oracle/admin/ora8/cdump 
    user_dump_dest = /u01/app/oracle/admin/ora8/udump 
    db_block_size = 2048 
    remote_login_passwordfile = exclusive 
    os_authent_prefix = "" 
    compatible = "8.1.5" ## 也可以兼容 "8.0.5" 
    5)客户端网络配置 
    [oracle@lin admin]$ more tnsnames.ora 
    # TNSNAMES.ORA Configuration File:/ora/network/admin/tnsnames.ora 
    # Generated by Oracle Net8 Assistant 使用net8助理,结果自动保存在 tnsnames.ora 中,
    [oracle@lin /ora]$ netass* 添加Service: 名称ora8,参数如下:PROTOCOL=TCP HOST=172.17.2.22 PORT=1521 Oracle_SID=ora8 
    机器解释成一个Oracle服务器地址包:
    ( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521)) 
      (PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))
    )
    一般说来,客户端采用Windows9x/NT/2000,因为这里软件开发容易,程序员和工具较为普及。
    Windows 客户端网络配置与此类似,其内容见于: \OraNT\net80\Admin\tnsname.ora 
    ORA8.WORLD =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
        (CONNECT_DATA = (SID = ora8))
      )------------------------------------------- 
        在Windows2000(beta3专业版)中安装Personal Oeacle8.05时,监听服务安装失败,
    只要理解以上oracle结构原理,可以手工复制Net8文件,修改配置:
    copy CD-ROM\.\NT_x86\server\lsnrctl80.exe,tnslsnr80.exe,tnsping80.exe  C:\orant\bin
    copy CD-ROM\.\listener.ora  C:\orant\net80\admin
    我不久前有这么一次经历。