客户端连接ORACLE的几种方法
一、HOSTNAME方法
对于网络结构比较单一,ORACLE服务器比较少的情况下,可以使用HOSTNAME方法。不过这种方法有几个限制:
1、 必须使用TCP/IP协议
2、 不能使用高级管理工具,比如Oracle Connection Manager
3、 客户端必须有相应的扩展命名服务,比如DNS或HOSTS文件
4、 LISTENER的监听端口必须是1521
5、 服务器LISTENER必须设置GLOBAL_NAME
第5点在ORACLE10g SG中明确指定,但经下面测试,也可以不设置GLOBAL_NAME。
下面谈谈使用HOSTNAME连接ORACLE数据库的方法:
1、不设置GLOBAL_NAME方式
1)可以使用NET MANAGER工具配置概要文件,选择HOSTNAME,也可以直接编辑SQLNET.ORA文件,只保留HOSTNAME方法,如下:
# sqlnet.ora Network Configuration File:
G:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/sqlnet.ora
#SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (HOSTNAME)
2)配置HOSTS文件,位于C:/WINDOWS/system32/drivers/etc
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
对于网络结构比较单一,ORACLE服务器比较少的情况下,可以使用HOSTNAME方法。不过这种方法有几个限制:
1、 必须使用TCP/IP协议
2、 不能使用高级管理工具,比如Oracle Connection Manager
3、 客户端必须有相应的扩展命名服务,比如DNS或HOSTS文件
4、 LISTENER的监听端口必须是1521
5、 服务器LISTENER必须设置GLOBAL_NAME
第5点在ORACLE10g SG中明确指定,但经下面测试,也可以不设置GLOBAL_NAME。
下面谈谈使用HOSTNAME连接ORACLE数据库的方法:
1、不设置GLOBAL_NAME方式
1)可以使用NET MANAGER工具配置概要文件,选择HOSTNAME,也可以直接编辑SQLNET.ORA文件,只保留HOSTNAME方法,如下:
# sqlnet.ora Network Configuration File:
G:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/sqlnet.ora
#SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (HOSTNAME)
2)配置HOSTS文件,位于C:/WINDOWS/system32/drivers/etc
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
192.168.0.172 ora10g #ORACLE DATABASE SERVER
此处的ora10g 就是客户端进行连接时@后面的连接串,即为ORACLE的SID_NAME。
3)服务器端LISTENER,如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ora10g)
)
)
192.168.0.172 ora10g #ORACLE DATABASE SERVER
此处的ora10g 就是客户端进行连接时@后面的连接串,即为ORACLE的SID_NAME。
3)服务器端LISTENER,如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ora10g)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = linyuefe)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
4)连接ORACLE
SQL> conn gddc/gddc@ora10g ; --ORACLE服务器的SID_NAME
已连接。
验证一下是不是通过HOSTNAME方法进行连接的,我们把HOSTS文件中的IP地址修改成192.168.0.173,如下:
192.168.0.173 ora10g #ORACLE DATABASE SERVER
再进行连接:
SQL> disconn
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> conn gddc/gddc@ora10g ;
ERROR:
ORA-12170: TNS: 连接超时
2、设置GLOBAL_NAME方式
1)设置HOSTS文件,如下:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = linyuefe)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
4)连接ORACLE
SQL> conn gddc/gddc@ora10g ; --ORACLE服务器的SID_NAME
已连接。
验证一下是不是通过HOSTNAME方法进行连接的,我们把HOSTS文件中的IP地址修改成192.168.0.173,如下:
192.168.0.173 ora10g #ORACLE DATABASE SERVER
再进行连接:
SQL> disconn
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> conn gddc/gddc@ora10g ;
ERROR:
ORA-12170: TNS: 连接超时
2、设置GLOBAL_NAME方式
1)设置HOSTS文件,如下:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
192.168.0.172 linyuefe --linyuefe为目标ORACLE服务器的计算机名
2)服务器端LISTENER,设置GLOBAL_NAME,如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = linyuefe) –linyuefe为服务器计算机名
(SID_NAME = ora10g)
)
)
LISTENER =192.168.0.172 linyuefe --linyuefe为目标ORACLE服务器的计算机名
2)服务器端LISTENER,设置GLOBAL_NAME,如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = linyuefe) –linyuefe为服务器计算机名
(SID_NAME = ora10g)
)
)
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = linyuefe)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
3)连接ORACLE
SQL> conn gddc/gddc@linyuefe ;
已连接。
二、使用EZCONNECT方法
EZCONNECT方法ORACLE10G新推出的功能,对于客户端不需要任何配置,不过有以下几个限制:
1、客户端必须安装Oracle Net Services 10g
2、客户端和服务器端必须支持TCP/IP协议
下面介绍EZCONNECT的用法:
1) 设置概要文件,如下 :
# sqlnet.ora Network Configuration File: G:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/sqlnet.ora
NAMES.DIRECTORY_PATH= (EZCONNECT)
2) 进行连接
SQL> conn gddc/gddc@linyuefe:1521/ora10g ;
已连接。
其中,linyuefe为服务器机器名也可以是IP地址,1521为监听端口(不指定的话默认为1521),ora10g为数据库Service Name。
--使用默认端口
SQL> disconn
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> conn gddc/gddc@linyuefe/ora10g ;
已连接。
--使用IP
SQL> disconn
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
SQL> conn gddc/gddc@192.168.0.172/ora10g ;
已连接。
--只使用主机名
SQL> conn gddc/gddc@linyuefe ;
已连接。
三、TNSNAME方法
这种方法是平时使用得最多的方法,在这里也不做介绍