三架马车保障Oracle网络的连通性


  Oracle数据库是网络数据库的典型代表 。消费者 可以通过网络来 拜访Oracle数据库 。Oracle数据库提供了网络互联的各种 方案,包含 构造和驱动程序,其网络通讯 协定 构造 类似于OSI-RM,但又有自己的分层机制 。也便是说,Oracle的网络是基于计算机网络的,通过网络使Oracle实现了数据共享、数据 完全性操纵、数据安全传输、跨操作系统平台( 可以同时运行在Linux或者微软的操作系统平台上)、在多硬件平台中间的数据 彼此操作 。

  那么是什么保障了Oracle网络的连通性呢? 容易的说,是全局数据库名、监听程序与网络服务名这三架马车保障了Oracle网络的连通性 。

  第一架马车:全局数据库名 。

  在谈到全局数据库名之前,小编要先谈谈这个www.chinaitlab.com的域名 。这个互联网上的域名就相当于我们 事实生活中的门牌号码一样, 可以在 纷纷 错杂的网络世界里精确无误地把我们指引到我们要 拜访的站点 。从这个www.chinaitlab.com域名来看,它是由几个不同的 部分组成的 。这几个不同的 部分彼此中间 存在上下的 品位关系 。其中最终的.CN是域名的第一层,.COM是域名的第二层,而.Ctocio则是真正的域名,处在第三层, 顺次类推 。至此我们 可以看出域名从后到前的 品位 构造 类似于一个倒立的树型 构造 。其中第一层的.CN叫做地理顶级域名 。在这些地理顶级域名下,还 可以再依据需要定义次一级的域名 。如在我国的顶级域名.CN下又设立了.COM,.NET,.ORG,.GOV,.EDU,以及我国各个行政区划的字母代表如.BJ代表北京,.SH代表上海等等 。故当 拜访网站时, 惟独要输入域名(www.chinaitlab.com)即 可以 打开相应的网站,而不需要输入难以记忆的IP地址 。

  而Oracle数据库系统是一个大型的 分布式数据库系统 。有时候出于性能等的考量,一般需要在企业的多个地方部署多个数据库系统,这就组成了Oracle 分布式网络环境 。为了保障每个数据库名字的唯一性,Oracle数据库系统借鉴了域名的命名 规定, 使用域名 构造来命名 分布在各地的数据库 。即一个数据库的全局名字由其数据库名和该数据库所在的域名组成 。 假如现在某一家企业在浙江有宁波、杭州、舟山三个办事处,分别部署了三个Oracle数据库,其中杭州为总部 。 构造图如下:

  依据全局数据库名命名 规定,杭州公司数据库名字为ORAL.DTM 宁波公司的数据库名字为ORAL.NINGBO.DTM,舟山公司的数据库名字为ORAL.ZHOUZHAN.DTM 。此时假如 利用程序要衔接不同部门的得数据库就十分的容易 。 可以通过全局数据库名字来指定需要 拜访的数据对象 。 惟独要 通过 容易的 批改,消费者就 可以衔接到所需要衔接的数据库 。另为,还 可以在网络环境配置一个默许域,如此 拜访默许域中的数据库对象不需要指定域名 。

  利用全局数据库名 可以起到两个 好处 。一是易于数据库进行扩充 。如现在企业可能只用一个数据库来 解决业务 。然而当企业规模 扩充的时候,可能一个数据库不 可以满足性能上的需要 。或者是由于企业合并等缘由,需要部署 分布式的数据库环境 。此时不需要更改原先的存在的数据库,就 可以对数据库环境进行扩充 。二是容易数据库的衔接 。当消费者在不同的数据库中间进行改换时, 使用全局数据库名将会十分的容易 。

  故小编 提议数据库治理员, 即便企业目前惟独一台Oracle数据库时,最好对其进行命名时也 可以依据全局数据库命名 规定来定义其名字 。以利益后续数据库的扩充,同时也便于数据库治理员的日常 保护 。

  第二架马车:网络服务名 。

  当治理员利用conn system/system @tsh命令衔接数据库的时候,@后面的内容便是网络服务名 。网络服务名是数据库服务器在客户端的名称 。换句话说,便是数据库的别名 。通常状况下,一个数据库 可以有多个网络服务名 。网络服务名重要用来将衔接标识符解析为衔接 形容符,协助客户端 利用程序精确的衔接到指定的数据库服务器 。一般来说,网络服务器重要提供两方面的信息 。一是服务名称,默许状况下服务名称便是数据库全局名称;二是路由信息,即达到指定服务的网络路由,或者说是监听程序的网络地址 。当 利用程序衔接数据库时,其衔接字符串中的网络服务名就指出了所需要衔接到的数据库服务器 。另外,在客户端上,也必须配置有于服务器 协定地址 雷同的衔接 形容符 威力够向监听程序发出衔接 申请 。

  可见网络服务名这架马车,在Oracle网络衔接中就 如同其起到一个马夫手中皮鞭的作用,指挥着这辆马车的前进方向 。然而,这架马车 比较娇贵,动辄就会浮现问题 。

  如当某个客户端非 畸形关机后,再一次启动 。可能会发现 无奈 畸形衔接到客户端, 揭示网络服务器名 舛误而 无奈 畸形衔接到客户端 。再如有时候会由于 无奈解析全局数据库名字而客户端 无奈衔接到数据库 。为了 预防网络服务名浮现 舛误,小编有以下几个 提议 。

  一是网络服务名的信息通常状况下是 保留在TNSNAMES.ORA这个文件中 。假如意外关机等状况,这个文件中的信息可能会 迷失 。为此最好对这个文件进行独立的备份 。在遇到由于网络服务名 舛误而 无奈衔接到数据库的时候, 可以先利用这个文件进行 复原 。通常状况下,都 可以解决问题 。

  二是最好不要手工更改这个文件 。 固然这个文件看起来 比较 容易,然而 批改起来 比较麻烦 。除非你是这方面的专家,不然的话最好不要手工更改这文件 。通常状况下,最好采纳Oracle数据库自带的工具来配置 。小编 提议的作法是,先利用TNS工具把原先的配置文件删除, 而后再再一次 构建一个 。这是一个不错的 取舍 。

  三是当客户端与Oracle数据库服务器进行衔接的时候,假如浮现 揭示网络服务器的 舛误 揭示时(监听程序 无奈找到 实用于客户机衔接的例程),有 部分缘由是 无奈解析数据库全局名所造成的 。此时,治理员 可以尝试着 批改这个文件中的全局数据库名 。即把全局数据库名 批改为数据库服务器对应的IP地址 。假如 厄运的话,这么 批改后就 可以解决客户端的衔接问题了 。

  另外需要 留神,有时候系统 揭示网络服务名 舛误 无奈衔接到数据库时,有可能不是网络服务名 舛误所造成 。有可能使 其余的缘由 。如有时候假如存在防火墙,系统也会 揭示这个 舛误信息 。如一次消费者在Linux系统上安装Oralce数据库 。而默许状况下,Linux系统的防火墙是开启的 。在事后没有个防火墙关闭,招致Oralce 无奈 畸形衔接 。Oracle数据库并不是不 可以通过防火墙,而是需要在防火墙上进行额外的设置 。故假如是出于学习的需要,小编 提议 可以先把Linux等操作系统的防火墙服务临时关闭掉 。

  第三架马车:监听程序 。

  监听程序是运行在服务器端的一个 径自的服务 历程 。他的作用便是通过监听端口,监听网络上的客户机对服务器的衔接 申请,并治理客户机与服务器中间的网络通讯量 。假如做一个形象的比喻,监听程序就 如同是宾馆前面的保安 。看到有客人来了,就开门来其进去 。假如客人没付钱就走人,保安就会拦住客户不让其走 。监听程序其的作用便是跟这个保安的作用十分 类似 。每次客户端 申请衔接服务器时,监听程序就会第一时 直 接纳到这个 申请 。 而后监听程序会把这个 申请汇报给服务器 。另外,监听程序还会对消费者的合法性做出辨认 。假如客户端提供的衔接信息与监听程序 保留在配置文件中的信息(如 协定、端口、数据库等等信息)匹配的话,则监听程序就授权客户机衔接到服务器 。不然的话,就会 回绝客户机的衔接 申请 。可见,监听程序这架马车,在数据库衔接中起着举足轻重的作用 。

  当服务器端的监听程序没有 畸形启动时,客户端将 无奈通过网络衔接到数据库服务器 。