记录学习oracle的操作与原理2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/83057690

oracle网络连接配置:Oracle Net

前言:

向oracle这种超大的数据库管理系统一般都是在大公司都会有专门的服务器只放一个oracle数据库,此我们需要远程管理数据库,

假设,你在阿里云的主机有两台,一台专门作为web服务器,另一台专门做数据库服务器,这个时候问题来了,我们在管理数据库的时候就要用远程工具进行oracle数据库的连接了,

进入正题:

1客户端怎么和oracle数据库建立连接?

客户端需要一个账户密码+oracle服务器的ip和port+服务名/sid,这是oracle和mysql建立连接时最大的不同

那么为什么oracle会有这骚操作呢?我来告诉你,这是因为oracle在设计时他就是为了提高数据库的安全性,不想把数据库都爆露出来,因此他为每一个数据库都配置了网络服务名/sid,这样在远程连接的时候只允许你客户端连接到网络服务名所对应的数据库上(而且,oracle更骚的操作是,客户端在连接racle时只知道一个网络服务名,至于自己的网络服务名对应的是什么数据库,客户端是全然不知的,进行客户端连接oracle的用户只能看到dba给自己看到的几个表,而这几张表位于那个表空间下,客户端更是无从知晓,因此呀,oracle确实是安全到位)

进入正题:客户端怎么和mysql数据库建立连接?

客户端需要一个账户密码+oracle服务器的ip和port,建立连接之后进入mysql数据库之后就可以进行各个数据库的管理

2为oracle的数据库配置网络服务名

通过oracle的工具:Net Configuration Assistant为数据库配置sid/网络服务名,dba给你连接方式的时候就给你个网络服务名就ok了,至于oracle数据库管理下到底管理了多少个数据库?每个数据库下又有什么表空间?每个表空间又存储了什么段?客户端是全然不知的,这一切只有dba最清楚。虽然我以后不做dba,但作为开发人员的我,了解一下也没毛病!

3到底什么是oracle net

oracle net:实在客户机和服务器之间或者两个服务器之间传输数据和网络会话的,一但客户机和服务器建立了连接,oracle net将做为客户机和服务器之间的中介代理

在oracle的客户端和oracle的数据库服务器相连时,oracle数据库服务器的进程结构中的监听进程便起了作用。监听进程是常驻于内存,循环监听oracle的服务端口是否有请求,如果监听到了有对服务端口请求的客户,那么监听程序会对客户的连接信息进行处理,依据listener.ora文件判断是否合法,如果合法则监听程序允许客户端连接到oracle数据库

4oracle net配置信息对应的文件

(1)listener.ora :监听程序的配置文件

如果有一天你发现自己的客户端连接不上oracle服务器,那有可能是oracle服务器监听进程没开。。。。。。。。。

listener.ora中的主要关键字

protocol=》tcp/tcps(带安全套接字层ssl的tcp,http/https)

port:待监听的端口,即oracle提供服务的端口

global_dbname:指定全局数据库名称,即oracle待监听的数据库

sid_name:指定服务器例程的sid

(2)tnsnames.ora:网络连接的配置信息

在这两个文件中,我们可以看到oracle通过这两个文件进行监听,并且建立连接

配置本地net名,就是我们所说的主机字符串,所以说,数据库命和网络服务名(主机字符串)是两个不同的东西!!!!!!回到原点,还记得sql/plus有一个命令吗?conn username/padsword@主机字符串(现在你知道为啥这里要有主机字符串了吧,因为sql/plus作为一个客户端他想连接到服务器得用网络服务名连接呀,而且你会发现一个问题,就是每每我们新创建了一个数据库,在我们没有给这个数据库进行网络服务名配置时,你会发现oracle服务器已经自动的为我们创建了和数据库同名的网络服务名,然而这种服务名的话个人感觉不太安全,网络服务名和数据库名字相同,不太安全。。。。但也有一点好处就是方便了连接,其实没啥必要)

 

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/83057690
今日推荐