日期:2014-05-16  浏览次数:20454 次

在本机连接服务器上的Oracle数据库
今天下午搞了两个多小时,终于可以了。情况是这样的:

在本地,我的电脑安装了Oracle10g客户端,然后我需要访问公司服务器上的某个数据库,由于是第一次这样做,遇到了很多的问题。问题如下:

1,本地需要启动某个模式的服务和监听器吗?

这个问题害的我在本地服务项中找这个服务找的DT,到最后才知道本地根本就没有啥需要启动的Oracle服务!

2,打开SQL Plus之后,弹出窗口要求输入“用户名”,“口令”,“主机字符串”;

前两项还好说,我要访问远程的Oracle数据库,肯定有用户名和口令了,就是这个“主机字符串”,折腾了我有2.5个小时!!网上的一帮P民我是见识到了,真是服了YOU们了,所有搜索到的内容都是一样的,连一个标点符号都是一样的!可惜,都是错的!!最后自己摸索再摸索,终于搞定了!

如下:找到tnsnames.ora文件,然后开始编辑
(注意:我装的是10g的客户端,可能地址不大一样,但是最终要找的那个文件我想是一样的)

   $oracle_home\product\10.2.0\client_1\NETWORK\ADMIN    //在这个目录下
   /*
       在此目录下有一个“tnsnames.ora”的文件,
         用记事本打开这个文件,开始进行配置
   */

   //文件大概如下内容
    AAA_HOST =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = host_name)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = BBB)
          (SERVER = DEDICATED)
        )
      )

    BBB =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = host_name)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = BBB)
        )
      )

    AAA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = host_name)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = AAA)
        )
      )

/*
       注意:网上的P民讲到,主机字符串就是那个SID的值,哥试了那么多次,
             压根就不是!其实最主要的是在下面的配置。我这里配置了两个,一个
             AAA,一个是BBB,这是在服务器上对应的两个模式数据库名,一定是要
             对应的!另外:host_name是目标服务器的机器名,这样就可以了!
             
             当我连接时,直接在“主机字符串”一栏输入"AAA"或"BBB"即可!
*/




注意:以上仅为个人实战经验,别见笑!我刚开始学习,有些术语没有某些“砖家”那么专业,另外,那些P民的N份COPY或许是对的,只是我没有搞懂而已吧?