互联网访问oracle(监听器)

说来话长,复杂啊。话说,以前公司有个2千年时开发的数据库工具,一直在用,TMD我们现在还在用(赖、低能、不作为。。。),早应写个新的了。。。没办法,升级包还是XXX的,妖!只能用!

 

再说,我装了win7x64后用不上这工具,主要是装不了一个叫dao_jet的老掉牙的数据库引擎,当时没有管,反正满大街的XP,装上了就用,也不是大影响。

 

今天曲折了,想升级一个包到自己的机器上,结果用不了这个破工具,打不开这个破包。(其实工具是好工具,主要是太老了)

 

费话不多说,大年初一晚,还在家里加班干这个,没有其它机器帮忙,想到连去一个客户的机器上,再通过互联网访问我本机的数据库。试了一试,我AD拔号上的IP,能ping通,再配个tnsname,tnsping超时;没事,我知道还有防火墙呢,配个oracle.exe的允许访问,不行,不是oracle,应该是监听程序,那。。。不管,允许个1521端口吧,还是不行。继续不管,直接关了防火墙。好了!(别开心得太早)提示个TNS无监听程序的错,总比之前提示操作超时强。

 

去问问阿伯和阿哥,结果是看不下去,这种问题多的是,回答中我这种情况的,我没有搜索出来。算了,在搜索过程中思考到监听程序配置文件,去改改看看,(其实公司里直接在路由器上配个端口映射就OK了)现在直接拔的AD,估计是这个原因,记起以前听同事讲过,也是去改这个listener.ora的配置文件。

 

在listener.ora上改了个外网的IP地址,重启windows的oracle监听服务,OK了,运程的机器tnsping能通。满心欢喜的,直接升级去,工具一连,提示个ora 12514 的错,又去查,发现是什么SID的问题,本人oracle半吊子,确实不知道service_name和sid的区别。没事,就是会撞墙,在客户端,改个tnsname.ora,把service_name改成sid,好。。。?再提示一个ora 12505的错,继续网上找答案,边找边思考,集中精神!!!

 

想想,应该不干12505的事,改回来,继续报12514的错,继续找。。。在伯渡上翻了几下,找到一些答案,虽然与我的情况不一样,但还是有启发,试试看,应该是这个GLOBAL_DBANAME上的文章,因为上外网了,是吧?所以要全局什么的,我不求甚解,所以付出了更多。。。(时间。。。)大家不要看,我是典型的反教。下面加粗的就是我在本地listener.ora上加的:

 

# listener.ora Network Configuration File: E:\app\db\product\11.2.0\dbhome_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\db\product\11.2.0\dbhome_2)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\db\product\11.2.0\dbhome_2\bin\oraclr11.dll")
    )
    (SID_DESC =
      (GLOBAL_DBANAME = db)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = db)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 11.22.33.44)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\app\db

 

虽然home地址写错了,但 it is work,继续我的不管精神,试试看,好了,这次真的好了。能连了,升级打上了,赶上这里写一写。

 

其实还想记录下,我想做到的事,一是oracle防火墙应该怎么设,是不是一定要设,二是,我中间试过在listener.ora上配两个监听器(本机本地连个localhost),后来发现是不行的,想找找有没有方法,外网能连内网也能连。

你可能感兴趣的:(oracle,数据库,互联网,防火墙,NetWork,工具)