Database 如何通过网络访问Oracle数据库?

Database 如何通过网络访问Oracle数据库?,database,oracle,listener,remote-connection,Database,Oracle,Listener,Remote Connection,我正在尝试通过网络访问我的Oracle数据库。我用谷歌搜索了很多,找到了很多解决方案,但这些对我来说并不适用 问题是,我想通过本地网络从一台计算机访问另一台计算机上的Oracle数据库 我所做的是 我找到了一个用 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbp.devProject.com)(PORT=1521)) 当我修改此文件并尝试运行和访问数据库时,不会发生任何事情,它会抛出一个错误,您指定的端口号被另一个侦听器使用,因此我更改了端口号,但无法访

我正在尝试通过网络访问我的Oracle数据库。我用谷歌搜索了很多,找到了很多解决方案,但这些对我来说并不适用

问题是,我想通过本地网络从一台计算机访问另一台计算机上的Oracle数据库

我所做的是

  • 我找到了一个用
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbp.devProject.com)(PORT=1521))

    当我修改此文件并尝试运行和访问数据库时,不会发生任何事情,它会抛出一个错误,您指定的端口号被另一个侦听器使用,因此我更改了端口号,但无法访问数据库。 2.我已经使用oracle的工具Net Manager配置了一个新的侦听器,它为我创建了一个侦听器,但它不能通过网络访问数据库

    这里有一些必要的结果

  • lsnrctl状态:使用侦听器名称的侦听器已启动
  • 连接字符串:jdbc:oracle:thin:@dbp.devProject.com:4541:myDB
  • 数据库版本
  • Oracle数据库11g企业版11.2.0.1.0版-64位生产
  • PL/SQL 11.2.0.1.0版-生产
  • 核心11.2.0.1.0生产
  • 用于64位Windows的TNS:11.2.0.1.0版-生产
  • NLSRTL版本11.2.0.1.0-生产
  • 状态告诉我这一点

    连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

    侦听器的状态

    别名:LISTENER

    版本:TNSLSNR适用于64位Windows:版本11.2.0.1.0-生产

    开始日期:2015年5月14日11:58:05

    正常运行时间:0天2小时。29分50秒

    跟踪级别:关闭

    安全性:开启:本地操作系统身份验证

    SNMP:关闭

    侦听器参数文件:product\11.2.0\dbhome\u 1\network\admin\Listener.ora

    侦听器日志文件:\Listener\alert\Log.xml

    正在侦听终结点摘要

    有人请帮帮我。
    感谢您的帮助。

    在试图从中连接到数据库的系统上的TNSNAMES.ORA文件中创建一个条目。(TNSNAMES.ORA位于ORACLE_安装_路径/Network/Admin/文件夹中)

    样本条目:

    DB_HOST_NAME =
    
      (DESCRIPTION =
    
        (ADDRESS = (PROTOCOL = TCP)(HOST = DB_HOST_NAME)(PORT = 1521))
    
        (CONNECT_DATA =
    
          (SERVER = DEDICATED)
    
          (SERVICE_NAME = XE)
    
        )
    
      )
    

    如果您安装了多个Oracle客户端,则可能需要在所有这些TNSNAMES.ORA中更新这些客户端。每当您在为数据库创建远程访问时遇到此类错误时,请先执行以下操作

  • 使用Oracle的Net Manager工具创建监听器或手动创建监听器
  • 生成侦听器后,请签出“Listener.ora” [位于:ORACLE\u INSTALLED\u DIR\product\11.2.0\dbhome\u 1\NETWORK\ADMIN] 文件,供您输入。(是否有您刚才创建的侦听器条目。如果找到条目,则执行下一步,否则从第一步开始执行。)
  • 如果您找到了侦听器的条目,请打开命令提示符并启动命令
    lsnrctl status
    。这将为您提供所有当前正在运行的侦听器列表,找出您刚才创建的侦听器
  • 查看您的侦听器的
    主机名
    端口号
  • 根据在
    lsnrctl status
  • 连接数据库,您可以从网络中的任何位置访问数据库
  • 享受事物,有些挑战需要勇气,一旦你从中退缩,它将永远无法解决

    我真的很感谢所有回答和评论这个问题的人,这些材料让我的挑战变得容易

    谢谢你@Alex、@Lalit、@TenG和@S.Krishna
    非常感谢各位。

    如果您的主机名和端口号是listener,那么您可以通过在防火墙设置中启用端口号来尝试此选项

    在Windows防火墙中打开端口
    • 打开控制面板
    • 打开Windows防火墙
    • 单击高级设置链接
    • 选择“入站规则”
    • 在“入站规则”下创建“新规则”
    • 从向导的第一个屏幕中选择“端口…”
    • 选择TCP或UDP
    • 输入端口范围
    • 完成向导

    现有侦听器在哪个IP和端口上-lsnrctl状态显示什么?您的数据库是针对哪个侦听器(如果有)注册的(
    lsnrctl服务
    )?您试图连接的确切方式-地址、端口、服务名称/SID;事实上,整个连接字符串?@AlexPoole:我没有使用任何IP,我使用的是主机名dbp.devProject.com,端口号4541(这个端口是免费的,没有使用任何服务或程序)。而lsnrctl显示我的侦听器已经启动。可能是重复的。您在进行更改后重新启动了侦听器吗?如前所述,您是否检查了侦听器状态?最重要的是,您正在修改哪个侦听器文件?让sue知道您是在DB服务器中检查侦听器,而不是在尝试连接的机器中。我的意思是以防万一,如果你在客户端也安装了Oracle软件。我可以在同一台计算机上本地连接,但不能从另一台计算机(Mac)连接,首先我尝试禁用防火墙,然后尝试了你的建议。两者都起作用了。
    DB_HOST_NAME =
    
      (DESCRIPTION =
    
        (ADDRESS = (PROTOCOL = TCP)(HOST = DB_HOST_NAME)(PORT = 1521))
    
        (CONNECT_DATA =
    
          (SERVER = DEDICATED)
    
          (SERVICE_NAME = XE)
    
        )
    
      )