客户端和数据库通信方式
1、安装Oracle client程序 + 配置TNS
2、JDBC
TNS法
TNS 的配置文件
分服务器端和客户端两部分。服务器有listener.ora,sqlnet.ora。客户端有tnsnames.ora,sqlnet.ora
所有配置文件位置
unix/linux: $ORACLE_HOME/network/admin
windows: %ORACLE_HOME%\network\admin
TNS 配置流程
首先在Oracle server端安装完成之后,因该先着手配置LISTENER,listener是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora 文件
listener.ora 文件配置
listener.ora 监听器配置文件,定义Oracle服务端所需要监听的端口协议以及实例SID,成功启动后是驻留在服务器端的一个服务。默认情况下Oracle在1521端口上侦听数据库连接请求。
## 每个数据库最少要配置一个监听器
XYZ= ## 监听器名称,随便起。这里举例叫XYZ(DESCRIPTION=(ADDRESS_LIST=
## host可以是服务器的域名,也可以是ip地址。建议输入IP地址,这在一个多IP服务器上变的尤为重要(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.1) (PORT=1521))(ADDRESS =……可以配置多个监听地址)))
## "SID_LIST_+监听器名称"为Oracle默认的命名规则,它定义了该监听器为哪些数据库实例提供服务,一个监听器可以监听多个数据库实例
SID_LIST_XYZ= ## 配置Oracle需要监听的实例(SID_LIST=(SID_DESC=(SID_NAME=plsextproc)(ORACLE_HOME=/oracle10g)(PROGRAM=extproc))(SID_DESC=(SID_NAME=mayp)(ORACLE_HOME=/oracle10g))
)
## 注:Oracle自9i版本引入了动态监听服务注册,在数据库启动时,会自动注册当前数据库实例到监听列表,所以无需配置SID_LIST_XYZ部分了,但是需要在上面的DESCRIPTION中添加(CONNECT_DATA =(SERVICE_NAME=XYZ)),即SID实例名称。
tnsnames.ora 文件配置
tnsname.ora 配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息, 服务器上通常有一个副本以便在服务器上运行客户端。
## ADDRESS_LIST 部分包含了远程数据库服务器的监听地址信息,也就是要告诉TNS远程数据库可通过哪些地址和CLIENT通讯
## CONNECT_DATA 定义了CLIENT要连接的数据库,还有数据库的连接方式,(专用或共享)XXX = ## 名字随便起,客户端是通过这个名字来获得服务器的登录信息的(DESCRIPTION =(ADDRESS_LIST =
## PROTOCOL是指定的通信协议,oracle是通过TCP/IP通信的。所以这里写TCP就好
## HOST的话如果客户端和数据库在同一台电脑可以用localhost也可以用IP。如果不同电脑就必须用oracle服务器所在电脑的IP(ADDRESS = (PROTOCOL = TCP)(HOST = localhost?ip)(PORT = XXX)))(CONNECT_DATA =(SERVICE_NAME = mayp) ## 此处为数据库服务器的SID,和那个SID重名匹配那个(SERVER = DEDICATED) ## 连接方式:专用或共享)## 在一个多IP环境中,TNS也可以配置多个远程IP地址:CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )
sqlnet.ora 文件的配置
sqlnet.ora 是个很重要的配置,它可以控制和管理Oracle连接的属性,根据参数作用的不同决定在客户端配置还是在server端配置。sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对所有的连接起作用,如果想对某个特殊的连接或服务进行约束或限制,可以 在TNS配置相应参数。详细参数可以参考:Oracle® Database Net Services Reference
sqlnet.ora 配置文件是可选的,可能存在于服务端或客户端,它设置的各种默认值会影响所有客户机和服务器。
TNS的使用
1、通过oracle的client。
如上方法配置好文件,就可以通过客户端登录远程oracle数据库。
2、程序通过tns连接远程oracle库
首先需要本地oracle client可以连上远程oracle库。 以nodejs为例,对于连接oralce的params中的connectingstring,使其值等于 tnsnames.ora 文件中 XXX 等于的值。