实验内容,在计算机上用vmware建立虚拟机,尝试用本机连接虚拟机上的oracle 10g 数据库

本机是64位win7,为了plsql连接oracle,应下载10g以上版本的32位客户端,然后安装完成后,在E:\app\Administrator\product\11.2.0\client_1\network\admin目录下建立tnsnames.ora(如果没有该目录,可以自己新建)和sqlnet.ora

对这tnsnames.ora和sqlnet.ora进行配置

在sqlnet.ora中应改成如下形式:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

注意,第二句的意思为计算机会用nesnames的方式来找相关文件

在tnsnames.ora中,配置如下:

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

第一行为你的数据库名字,可以用命令select name from v$database来查看

HOST为你要连接的计算机的ip地址,我是linux虚拟机,用命令ifconfig可以来查看自己的ip地址

port是你的监听端口,可以去/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora中查看(当然你之前要配过监听,目录也是每个人不一样的,但是大致目录是这个样子)

service_name也是第一行的内容

当然如果tnsnames是可以从虚拟机中找到的,在/u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora中也可以看到,

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
 

可以看到的是,在虚拟机中host是127.0.0.1,这个ip表示的是本机,所以只要复制下来黏贴到你本机的tnsnames.ora中再该掉HOST就完成了

这时可以做一个简单的测试,在cmd下,键入

sqlplus hr/hr(用户名密码)@ORCL

如果能连的进去,基本你的plsql就也能连的进去了,但是需要注意的是,如果cmd可以进入数据库而plsql无法进入,那么你需要设置一下你的plsql,在tools-》performance-》connect中手动设置一下路径,这样就能连入了,路径就是你客户端装在哪里路径就是哪个了

基本上就是这么简单,其实如果仔细想一想oracle的原理,是可以自己做到这些的