注:本文讲述了oracle数据库实例连接的配置过程,三个重要的配置文件位于C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目录下

1. sqlplus

sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)。客户端就会首先在tnsnames.ora文件中找orcl的记录。如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例。

2. 客户端。Tnsnames.ora

这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。

#你所要连接的时候输入得TNSNAME,如果listner启动失败尝试改IP地址

ora10gcsdl1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ora10gcsdl1)

)

)

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = IBM-66336DAFE8F.cn.ibm.com)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

3. 服务器端。listener.ora

listener监听器进程的配置文件,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。

#下面定义LISTENER进程为哪个实例提供服务

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = ora10gcsdl1)

(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)

)

(SID_DESC =

(SID_NAME = ora10gcs)

(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)

)

)

#监听器的名字,一台数据库可以有不止一个监听器

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

)

)

4.排错用到的指令:

lsnrctl > help

tnsping ora10gcsdl

Oracle代码

orCL = 

(DESCRIPTION = 

(ADDRESS_LIST = 

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521)) 

(CONNECT_DATA = 

(SERVICE_NAME = orcl) 

主要的参数为HOST、PORT、SERVICE_NAME