Oracle 绑定后无法通过指定 IP 访问,求教 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
black11black
V2EX    问与答

Oracle 绑定后无法通过指定 IP 访问,求教

  •  
  •   black11black 2020 年 12 月 31 日 1873 次点击
    这是一个创建于 1848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,有一台 linux 机器上要装 oracle,折腾半天了。

    现在服务已经安装成功,并且正常启动。

    使用如下命令启动成功:

    sudo lsnrctl start sqlplus /nolog conn / as sysdba startup 

    并且在这种访问模式下能够成功获取到数据

    SQL> select * from scott.dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 

    于是把服务绑定到局域网 IP,想要从另一台机器上登录,修改了 listener.ora

    # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /home/rogear/tools/oracle11g 

    和 tnsnames.ora

    # tnsnames.ora Network Configuration File: /home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 

    然后重启数据库和监听程序。

    这时候使用登录命令会得到提示:

    sqlplus scott/[email protected]:1521/orcl ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 

    请问可能是什么原因造成的? 当前可以确保网络是连同的,确实能访问到 192.168.1.100:1521 上的程序,但是登录失败,怎么回事呢

    17 条回复    2021-01-10 15:53:20 +08:00
    gefranks
        1
    gefranks  
       2020 年 12 月 31 日
    打开 Net Manager 看看 profile 里面是否允许了 hostname 方式的连接
    black11black
        2
    black11black  
    OP
       2020 年 12 月 31 日
    @gefranks

    修改后提示、

    db@dbpc:~$ sqlplus scott/[email protected]:1521/orcl

    SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 31 12:58:42 2020

    Copyright (c) 1982, 2013, Oracle. All rights reserved.

    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0


    Enter user-name:
    gefranks
        3
    gefranks  
       2020 年 12 月 31 日
    请确认你 oracle instance 正常工作的.你这个提示看上去 instance 工作不正常
    为啥用这么老的版本, 这版本早就淘汰了
    gefranks
        4
    gefranks  
       2020 年 12 月 31 日
    还有你 listener 为啥要用 sudo 起?哪个用户装的用那个用户起吧
    black11black
        5
    blak11black  
    OP
       2020 年 12 月 31 日
    @gefranks 感谢回复,初学 oracle 不太清楚概念,instance 是指数据库的工作实例吗?

    我目前的数据库是可以用 sqlplus (不带任何参数)的方式连接的,并且能正常工作。

    用这个版本是网上查了一下很多人推荐这个,就没用最新的,确实很多坑
    gefranks
        6
    gefranks  
       2020 年 12 月 31 日
    是的,就是数据库的工作实例.参考这个看下
    https://support.esri.com/en/technical-article/000008516
    请检查$ORACLE_HOME, $ORACLE_SID 环境变量是否设置
    black11black
        7
    black11black  
    OP
       2020 年 12 月 31 日
    @gefranks 环境变量设置是正确的,很神秘。我用 ubuntu 是因为一直以来用的都是 debian 系,但是外网搜索了一下似乎 oracle 对 debian 系非常不友好,我确实在安装过程中遇到很多编译坑,我想直接放弃 ubuntu,尝试一下 oracle linux+最新版 oracle 的这样配置了,不知道能否坑少一点。

    另外老哥是否知道 Oracle 在 windows 和 linux 中性能表现是否有区别?我如果想把目前基于 mysql 的生产服务迁移到 oracle 中,应该在 windowsserver 上搭建还是 linux 上搭建。搜索了一下,几乎没有这方面的资料。
    gefranks
        8
    gefranks  
       2021 年 1 月 1 日   1
    oracle db 我记得是没有在 debian 系上认证过, 在甲骨文的时候我也没做过在我们的应用在 debian 系上的认证.
    区别肯定有,我接触的客户他们的数据库系统绝大多数都是跑在 linux 上的, windows 上的非常少
    gefranks
        9
    gefranks  
       2021 年 1 月 1 日
    oracle linux 的话坑应该是最少的.
    terryhyx
        10
    terryhyx  
       2021 年 1 月 1 日
    官方认证过的 Linux 应该就 RHEL OEL SLES
    确认你的 instance 是叫 orcl 吗?
    listener.org 用静态注册 试试看
    black11black
        11
    black11black  
    OP
       2021 年 1 月 7 日
    @gefranks
    @terryhyx
    带佬,我又遇到问题了。这次新搞了一台 windows 机器,裸机新系统,想测试一下 oracle19c 使用上和 11g 有没有什么区别。

    我在官网下载并安装后又遇到不能连接的问题,而且表现比较奇怪。

    安装过程中我选择了服务器类-->典型安装。这个是依照 11g 时的经验安装的,但是后来查了一下安装教学似乎都推荐用桌面类,我也是没搞懂为什么。

    安装成功后,powershell 执行 sqlplus /nolog,而后 conn / as sysdba , 成功
    在菜单里直接启动 sqlplus 命令行程序,输入用户名 system,密码 123456 , 成功 (但是无法连接到 scott.dept 表,不知道是否新版本里这个库被删除了)

    使用 navicat 连接 127.0.0.1:1521,失败,提示 ORA-12541:TNS:无监听程序
    使用 tcping 检查 1521 端口,端口是关闭的
    使用其他程序占用 1521 端口,可以占用该端口
    检查 services.msc 服务,OracleOraDB19Home1TNSListener 正在运行
    使用 Net Configuration Assistant,配置新的监听程序,提示不能占用 1521 端口,因为 1521 端口已在使用中。

    搞不太懂什么状况,一会说又一会说没有
    black11black
        12
    black11black  
    OP
       2021 年 1 月 7 日
    已经解决,问题产生由于两个原因,其一是安装 oracle 的时候默认监听没有放在本地回环而是监听了局域网 IP,导致端口既被占用又闲置。

    但修改 IP 后仍无法访问,还需要配置 listener.ora ,新增

    (SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = C:\Users\HW\Downloads\WINDOWS.X64_193000_db_home)
    (SID_NAME = ORCL)
    )

    这些内容才能正常监听,不是很清楚为什么默认设置没有调好,还要自己加配置
    gefranks
        13
    gefranks  
       2021 年 1 月 7 日
    为啥 lisenter 要放在 loopback?
    据我的经验在 win 上装好 listener 起来就好了(如果没自己创建 listner 就有个默认的), 要用起来其他没啥要改的配置啊。
    black11black
        14
    black11black  
    OP
       2021 年 1 月 7 日
    @gefranks 很神秘
    black11black
        15
    black11black  
    OP
       2021 年 1 月 10 日 via Android
    @gefranks 大佬,我在 oracle linux 安装又遇到无法访问。调试时运行 sqlplus lsnrctl 等提示无命令,这是正常的吗?

    这次是官方镜像 oracle linux 7.7 版,安装 19c 。安装过程挺顺利的,按照程序的检查提示,在默认系统中增大 swap,修改系统参数,以及安装几个库之后就很无痛的装上了。localhost:5500/em 可以访问,但 sqlplus 之类的就访问不了
    gefranks
        16
    gefranks  
       2021 年 1 月 10 日
    @black11black 请问你 ORACLE_HOME 是否设置了? ORACLE_SID 设了么, sqlplus, lsnrctl 所在的 bin 目录是否加入到了 PATH 里面?
    gefranks
        17
    gefranks  
       2021 年 1 月 10 日
    @gefranks 不过我自己一般是设好上面的 ORACLE_HOME 和 ORACLE_SID 后直接去 bin 目录下面执行 lsnrctl 和 sqlplus 的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5527 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 01:57 PVG 09:57 LAX 17:57 JFK 20:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86