oracle拨云见日第6篇之网络配置
Posted 飞哥大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle拨云见日第6篇之网络配置相关的知识,希望对你有一定的参考价值。
引言
前面的几篇文章中,我们介绍了:oracle的主流版本、oracle数据库的各种方式安装。
经过千辛万苦,我们的oracle环境搭建起来,我们学习oracle之旅的第一步迈开了。Oracle安装完成还不能使用,要想使用它就要做网络相产的配置:监听和传输文件。
Oracle监听器
1、简介
Oracle监听器运行于数据库服务器端一个进程,用于监听所有来自客户端的连接请求,并提供处理数据库服务方面的请求。
示意图如下:
2、客户端的请求各类
我来介绍一下,2种常见的方式
(a)、常用的数据库开发工具比如:PLSQL Developer和SqlDeveloper,它们通过配置要连接数据库相关的参数,向数据库发起连接请求
(b)、java编程中的jdbc,运行程序时,向数据库发起连接请求
以上2种连接请求,客户端要和Database server端网络畅通,否则无法正常连接
3、请求监听的进程
语法 :ps -ef|grep oracle实例名
通过查询结果可以看出来,现在没有任何客户端,通过网络向数据库发起连接请求。
使用plsqldev.exe通过网络向数据库发起连接请求。
再次查看Database server的进程
通过查询结果可以看出来,现在有1台客户端,通过网络向数据库发起连接请求,产生的进程标识为oracleecom (LOCAL=NO)。
至此,我讲的客户端请求,都是通过网络远程向数据库发起连接请求,在数据库端产生的进程标识是LOCAL=NO的。如果在数据库端本地登录,在数据库端产生的进程标识是LOCAL=YES的。我来演示一下,详细如下图所示。
在数据库端本地使用sqlplus登录
再次查看Database server的进程
通过查询结果可以看出来,现在有2台客户端,通过网络向数据库发起连接请求,产生的进程标识为oracleecom (LOCAL=NO)和oracleecom (LOCAL=YES)。
为什么在此处要给大家扩展讲一下进程,因为早些年在联通做DBA时,我们的RAC集群进程突然爆增,手机短信报警疯了。当时就是通过进程发现的,当时发现产生了大量的oracleecom (LOCAL=NO)进程。最后定位到问题,是开发那边的数据库连接池没有配置好,申请完session后,没有正常释放。如果有兄弟对这个案例感兴趣的,可以单独找我聊聊,在此处我就不过多的赘述了!
4、Oracle连接方式
专有模式:为每个用户提供一个单独的到服务器的会话通道,其特点是响应客户端请求速度快,但PGA占用较多。
共享模式:由多个用户连接共享一个进程,多个用户共享一个会话通道。
5、主要功能
(a)、监听客户端请求,监听器运行在数据库服务器之上,与Oracle实例(可为多个)相关关联,是一个专门的进程process。在Windows的服务项目或者Linux的运行进程列表中,都会看到对应的运行进程,Windows上名为TNSLSNR,Linux/Unix平台上是lsnrctl,监听器守候在服务器制定端口(默认为:1521),监听客户端的请求。
(b)、为客户端请求分配Server Process,监听器只负责接收请求,之后将请求转接给Oracle
Server Process,在Oracle的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程Server Process(也称为影子进程)作为代理。监听器接受到请求之后,就向操作系统(或者Dispatcher组件)要求fork(或分配)一个Server
Process与客户端相连。
(c)、注册实例服务,本质上讲,listener是建立实例和客户端进程之间联系的桥梁。Listener与实例之间的联系,就是通过注册的过程来实现的,注册的过程就是实例告诉监听器,它的数据库数据库实例名称instance_name和服务名service_names。监听器注册上这样的信息,对客户端请求根据监听注册信息,找到正确的服务实例名称,目前Oracle版本中,提供动态注册和静态注册两种方式。
(d)、错误转移failover,Failover是RAC容错的一个重要方面功能,其功能是在数据库实例崩溃的时候,可以自动将请求转移到其他可用实例上的一种功能。可以提供很大程度上的可用性(Availability)功能,这个过程中,发现实例已经崩溃,并且将请求转移到其他实例上,就属于是listener的功能。
(e)、负载均衡衡量,在RAC架构中,Oracle实现了负载均衡。当一个客户请求到来时,Oracle会根据当前RAC集群环境中所有实例的负载情况,避开负载较高的实例,将请求转移到负载较低的实例进行处理。在早期RAC版本中,负载轻重的衡量是根据监听器当前维护连接数目来确定的,而不是实时查看多实例的负载,RAC环境中的监听器之间进行沟通通信。
6、配置监听器
(a)、方式1 直接编辑监听的配置文件listener.ora
vi $ORACLE_HOME/network/admin/listener.ora
#listener.ora Network Configuration File:/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
#Generated by Oracle configuration tools.
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= 实例名)
(ORACLE_HOME= /oracle/app/oracle/product/10.2.0/db_1)
(SID_NAME = 实例名)
)
)
LISTENER =
(DESCRIPTION=
(ADDRESS =(PROTOCOL = TCP)(HOST = 数据库本机IP)(PORT = 默认端口1521))
)
(b)、方式2 图形界面1
(c)、方式2 图形界面2
7、常用命令
启动指定的监听器
lsnrctl start
关闭指定的监听器
lsnrctl stop
显示监听器的状态
lsnrctl status
输入本条命令后:显示监听器是不是活动的,日志与跟踪文件的位置,监听器已经持续运行了多长时间,以及监听器所监听的任务。如下图所示:
说到这块,oracle的监听器的技术点,已经够大家入门的了。要想连接oracle Database我们还差一个知识点,就是如何查询oracle的实例名。
oracle传输文件
1、简介
传输文件位于客户端,用于配置客户端连接服务端数据库连接信息。客户端服务配置信息包括:服务器地址、服务名称(数据库实例)、端口号。
客户端根据传输文件中的SERVICE_NAME和地址(ADDRESS)\\端口(PORT),到这个地址去访问监听器。然后监听器根据文件lisnter.ora文件中的GLOBAL_NAME来判断是否有一个 GLOBAL_DBNAME 和 SERVICE_NAME 相等。如果相等,则建立客户端到SID标识的服务端实例的连接。
2、配置传输文件
(a)、方式1 直接编辑监听的配置文件tnsnames.ora
vi $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
服务别名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 服务端数据库的IP)(PORT = 默认监听端口1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务端数据库的SID)
)
)
(b)、方式2 图形界面
选择:本地网络服务名配置
添加新的服务名
服务端数据库的SID名
TCP协议
服务端数据库的IP
测试配置是否正常
给本次配置的服务名起个别名,方便程序连接
实战操作
相关软件以百度云盘的方式,分享出来(盘换成拼音pan):
链接:https://盘.baidu.com/s/1f__AcVAkqAo3EzFNvFhGwA
提取码:feig
1、安装instantclient
此软件负责给你电脑提供传输文件功能,它非常小,大小只有几十M。如果没安装它,你要单独安装Oracle client,Oracle client几百M。
a、解压文件
我将它解压到D盘根目录了,注意你自己的解压路径
b、编辑传输文件
在tnsnames.ora中配置
2、安装PLSQL_Developer
PLSQL Developer是款编程行业常使用的PL/SQL数据库管理工具。PLSQL Developer正式版具有语法加强、SQL和PL/SQL帮助、对象描述、代码助手、编译器提示、PL/SQL完善、代码内容、代码分级、浏览器按钮、超链接导航、宏库等许多智能特性。并且PLSQL Developer还可满足要求性最高的用户需求,使您能方便地创建你的客户端/ 服务器应用程序的服务器部分。
a、解压文件
我将它解压到D盘根目录了,注意你自己的解压路径
b、配置OCI库
在PLSQLDeveloper中如果不配置OCI文件,它是识别不到instantclient中配置的传输文件,我们来看一下。
打开PLSQLDeveloper客户端后,登录需要的信息有3部分:用户名、口令、数据库。其实登录的信息有4部分,缺少了角色部分。
我们不登录,点击取消按钮,配置OCI文件,如下所示。
配置完成后,一定关闭PLSQL_Developer,进行重启。
3、登录PLSQL_Developer
打开PLSQLDeveloper客户端后,登录需要的信息有4部分:用户名、口令、数据库、角色。
结束语
到此本篇文章就结束了,送给那些:
1、准备学习Oracle的朋友们
2、已经学习了Oracle,但是没有在Linux环境下安装成功oracle的朋友们
3、对Oracle感兴趣、对Linux感兴趣的朋友们
4、Oracle刚入门的朋友们
有一段时间没有写关于Oracle的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!
以上是关于oracle拨云见日第6篇之网络配置的主要内容,如果未能解决你的问题,请参考以下文章
oracle拨云见日第9篇之Oracle10.2.0.1升级11.2.0.4.3
oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19