DBeaver连接oracle数据库

关山初度尘未洗,策马扬鞭再奋蹄!这篇文章主要讲述DBeaver连接oracle数据库相关的知识,希望能为你提供帮助。
引言上一篇文章,主要讲解的是如何在windows环境下安装DBeaver。本篇文章带来的是,如何使用DBeaver连接oracle数据库。要想连接oracle数据库,咱们就有必要聊聊oracle的监听器了。
Oracle监听器简介Oracle监听器运行于数据库服务器端一个进程,用于监听所有来自客户端的连接请求,并提供处理数据库服务方面的请求。
示意图如下:

客户端的连接请求有多种我来介绍一下,2种常见的方式
(a)、常用的数据库开发工具比如:?PLSQL  Developer和SqlDeveloper?,它们通过配置要连接数据库相关的参数,向数据库发起连接请求
(b)、java编程中的jdbc,运行程序时,?向数据库发起连接请求?
?以上2种连接请求,客户端要和Database server端网络畅通,否则无法正常连接?
客户端的连接请求在Database server的进程语法 :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后,没有正常释放。如果有兄弟对这个案例感兴趣的,可以单独找我聊聊,在此处我就不过多的赘述了!??
Oracle支持的2种连接方式??专有模式:??为每个用户提供一个单独的到服务器的会话通道,其特点是响应客户端请求速度快,但PGA占用较多。
??共享模式:??由多个用户连接共享一个进程,多个用户共享一个会话通道。
监听器的主要功能(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环境中的监听器之间进行沟通通信。
配置Oracle监听器?(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???


监听维护常用命令??启动指定的监听器??
lsnrctl start
??关闭指定的监听器??
lsnrctl stop
??显示监听器的状态??
lsnrctl status
输入本条命令后:显示监听器是不是活动的,日志与跟踪文件的位置,监听器已经持续运行了多长时间,以及监听器所监听的任务。如下图所示:

说到这块,oracle的监听器的技术点,已经够大家入门的了。要想连接oracle  Database我们还差一个知识点,就是如何查询oracle的实例名。
查看oracle的实例名
oracle的监听器和实例名,我们都已经了解了。下面我们就进入正题:DBeaver连接oracle数据库。
双击打开DBeaver

不要创建示例数据库


新建数据库连接方式1
新建数据库连接方式2
连接oracle


此处的Service Name,我们在上面通过命令查询到了,就是??ecom??。
登录oracle认证的用户名:sys,它是oracle的内置用户,它的角色默认就是:SYSDBA,最大的权限用户。
下载oracle的JDBC驱动

【DBeaver连接oracle数据库】

查看oracle的表数据


结束语至此,DBeaver连接oracle数据库的全部内容就讲解完了。本篇文章中,oracle JDBC的驱动包,我们是在联网的提前下,让DBeaver自动下载的。如果没有网络的情况下,我们也可以脱机加载自己本地的JDBC驱动包,在下一篇文章< DBeaver连接mysql数据库> 中,我就使用脱机的方式加载自己本地的JDBC驱动包。
敬请期待,感谢各位兄弟的来访!!!



















    推荐阅读