zoukankan      html  css  js  c++  java
  • Oracle 开放端口供客户机连接

    测试远程机器端口是否开通:
    打开命令行窗口
    telnet 服务器IP 7000


    Oracle 10G 安装在Win2003上,WIN2003只开放端口1521端口,则远程telnet 1521端口能通,但是数据库连接不上。原因如下:

            Oracle客户端连接服务器,首先去找1521监听端口,服务器的1521监听端口再向server process进程发出请求,并返回一个随机端口,返回给客户端,客户端再来连接这个端口。

    Matalink上提供了三种解决办法,实际上USE_SHARED_SOCKET 是最有效最方便的。


    方法一(推荐):

    在windows2003的注册表中,hkey_local_machinesoftwareoraclehome0下加入字符串值:
    USE_SHARED_SOCKET=TRUE,在服务器上开启TCP“1521”端口,重启ORCALE服务器即可!


    方法二:

    1、首先将数据库实例改为SHARED SERVER模式
    2、以SYSDBA登录SQLPLUS,通过SQLPLUS生成系统当前的参数设置文件pfile:create pfile='d:init.ora' from spfile;
    3、修改d:init.ora文件,在其中增加(用editplus编辑):*.service_names='your service name'和*.dispatchers='(address=(protocol=tcp)(host=localhost)(port=1521)(dispatchers=1)'
    4、生成新的SPFILE:create spfile from pfile='d:init.ora';
    5、重启动数据库。
    6、在防火墙中开放1521端口。


    方法三:

    在数据库端(也可以是另外的机器,但是cman的机器必须和数据库都在防火墙的后面)安装了cman的前提下,启动cman,然后开放防火墙端的1630端口(看cman开的是什么端口啦),最后在客户端的tnsnames.ora文件中添加:
    cmantest = (description = (address_list = (address = <- first address is to CMAN (protocol=tcp) (host=hostname or ip of cman) (port=1610) ) (address= <- second address is to Listener (protocol=tcp) (host=hostname or ip of listener) (port=1521) ) ) (connect_data = (sid = sidname)) (source_route = yes)


    另:
    安装完Windows版的Oracle 10G 后,开启了windows 2003自带的防火墙,发现在本机可以访问oracle数据库,但在远程不能连接,一直都在报连接超时。关闭防火墙后,可以用远程连接Oracle 10G 数据库。但开启防火墙后,又不能连接,说明问题出在防火墙上,防火墙开启TCP 1521端口,仍然不能连接数据库。解决问题的办法如下:
    1.如果是Oracle 8i ,修改注册表HKLMSoftwareOracle,增加一个字符串值USE_SHARED_SOCKET = TRUE。
    2.如果是非Oracle 9i,打开%Oracle_Home%inoracle.key文件,按里面的路径HKLM增加一个字符串值USE_SHARED_SOCKET = TRUE。
    3.增加以后重启机子让注册表生效。


    如果是Linux下的Oracle,只要在防火墙中打开TCP 1521端口就可以连接了。


    小知识:Netstat命令用法   
    命令格式:Netstat ?-a? ?-e? ?-n? ?-o? ?-s?   
    -a 表示显示所有活动的TCP连接及计算机监听的TCP和UDP端口。   
    -e 表示显示以太网发送和接收的字节数、数据包数等。   
    -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。   
    -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。   
    -s 表示按协议显示各种连接的统计信息,包括端口号。

  • 相关阅读:
    Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
    yii2权限控制rbac之rule详细讲解(转)
    Yii2提交表单提示无法验证
    php 数组排序以及按照某个字段排序
    Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
    Yii2的深入学习--自动加载机制(转)
    YII2 自定义日志路径
    Yii2-Redis使用小记
    windows下安装php5.5的redis扩展
    php json_decode返回null
  • 原文地址:https://www.cnblogs.com/publiter/p/13595661.html
Copyright © 2011-2022 走看看