网络环境包括服务器端和客户端,服务器端提供监听来处理来自客户的连接请求,客户端提出请求并连接到服务器端进行数据库操作。
1 服务器端网络监听配置
Oracle Net listener 是位于DB host上面的一个进程,它监听客户的连接请求,并且处理客户和服务器DB的通信。
缺省的监听配置文件是 listener.ora, 它位于 Oracle home目录的子目录 network/admin 中. 比如,你的home目录是 /u01/app/oracle/product/11.2.0/dbhome_1, 那么这个配置文件在默认情况下就位于 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin .
这个文件配置了一个协议地址,而这个地址指示了数据库。下面是一个例子:
-
LISTENER =
-
(DESCRIPTION_LIST =
-
(DESCRIPTION =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost.example.com)(PORT = 1521))
-
)
-
)
配置文件是在安装阶段自动配置生成的,同时也可以用EM进行重新配置
DB在启动时,会花上1分钟左右时间和listener进行注册。服务名,代表的DB,转发请求的目标都可以在 listener.ora 文件中进行配置。这些信息也可以进行动态注册,listener上面服务和DB的动态注册被称为 service registration. 它是由后台程序监控进程(PMON)执行的,每个instance都有对应的PMON进程。Dynamic service registration 不需要更改listener.ora配置文件。
可以通过以下命令来查看监听器的状态
lsnrctl status/start/stop
配置网络可以使用netca或者EM
2 客户端连接
客户端需要提供数据库的位置和名称等信息,以便连接到指定主机的指定数据库,一般来说有三种命名方法
1 简单连接命名(Easy Connect Naming)
2 连接描述(Connect Descriptors)
3 目录命名(Directory Naming)
简单连接命名这种方式相对比较原始,不需要进行任何前期配置工作,仅仅是把目标数据库的所有信息都罗列在一个字符串中,例如
"host[:port][/service_name][:server][/instance_name]"
其中
host 主机名或者IP
port 监听器的TCP端口号,默认1521
service_name 数据库服务名称
server 服务句柄类型,为dedicated, shared, 或者 pooled
连接命令为
sqlplus user/password@
/
连接描述是在上个方法的基础上又进了一步,它把所有的信息都记录在一个位于ORACLE_HOME/network/admin的名为tnsnames.ora文件中,通过一个简单的名称来指明要连接的DB。它包含了一个协议和DB service name,一个DB可以定义有多个service name。 一般情况下,一个DB只有一个service name,就是global database name。例如
-
MYDB =
-
(DESCRIPTION =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = my-server)(PORT = 1521))
-
(CONNECT_DATA =
-
(SERVER = DEDICATED)
-
(SERVICE_NAME = myinctance)
-
)
-
)
其中的DESCRIPTION部分被称为connect descriptor,它使得客户可以连接到一个服务名为mydb.us.example.com的数据库
连接命令为
sqlplus system@MYDB
阅读(1872) | 评论(0) | 转发(1) |