比较好奇登陆公司的远程数据库,有很多种方法,比较傻的一种就是用putty登陆unix服务器(叫它服务器A吧),再执行sqlplus命令,连接数据库。就是纯unix环境,要打一条一条命令。
第二种就用sql developer连,但是tnsnames.ora里写的是另外一个服务器(叫它服务器B吧),当然两个连接的是同一个数据库。我想问的是,服务器A和服务器B是什么关系,分别有什么作用?数据库实际是装在服务器B上的吧?谢谢。

解决方案 »

  1.   

    请查看服务器的TNSNAMES.ORA的设置以及本机tnsnames.ora的设置,以及本机连接服务器所使用的连接字符串.sql developer连接oracle数据库并不需要本机的tnsnames.ora设置.
      

  2.   

    如果本机要连的话,直接在tnsnames.ora里添加以下部分
    A=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = A的IP地址)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = A的实例名)
        )
      )
    如果服务器B创建了到服务器A的dblink的话那你访问数据库B也可以访问数据库A
    装在哪台机器上你只要看tnsname.ora的HOST是哪个Ip或主机名就是了。
      

  3.   

    第一种登录为telnet方式,进入数据库前大都为Unix命令;
    第二种方式是目前较为常见的连接方式,windows方式。在windows中安装Oracle客户端,并使用net configuration assistant连接服务器,产生连接串。conn 用户名/密码@连接串。
      

  4.   

    可能我没有说清楚,我不是想问怎么写tnsnames.ora,这个我已经搞定了,数据库也连上了。一开始我以为是填服务器A,所以怎么连也连不上,后来才知道要填服务器B,就连上了。这样看来数据库是装在B上的,A有一个到B的dblink,B本身没有分配很多的unix用户名,想问一下这样做有什么好处?ps:还有一个小问题:我的tnsnames.ora文件里面ADDRESS后面必须再多一个参数community=tcp.world否则也不能连接,请问这个参数有什么用?谢谢 
      

  5.   

    请查看服务器的TNSNAMES.ORA的设置以及本机tnsnames.ora的设置,以及本机连接服务器所使用的连接字符串.sql developer连接oracle数据库并不需要本机的tnsnames.ora设置.
      

  6.   

    1.community=tcp.world,是不是可以理解为社区连接的协议类型,也有使用nmp.world的;
    2.B本身没有分配很多的unix用户名,  LZ能否再解释一下?
      

  7.   


    谢谢
    to 2: B可能只有服务器管理员可以登陆(登陆服务器本身,不是数据库),其他的unix用户可以登陆A,连接数据库的时候,再从A转到B。在A上面每个人都有一个自己的文件夹,可以存script什么的。我想A可以看作大家存文件的一个地方,没有数据库。B呢只有数据库。这样两个服务器分工明确。此外,公司也用了apex(oracle application express) 来制作简单的数据库查询界面。那个apex 是装在第3个服务器上面.我比较的菜鸟,上面这些搞了我老半天才搞明白。上面的提到的这些是用于测试的服务器和数据库,实际应用的服务器和服务器不知道是怎么编排的。