Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3277417
  • 博文数量: 346
  • 博客积分: 10189
  • 博客等级: 上将
  • 技术积分: 3125
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 19:46
文章分类

全部博文(346)

文章存档

2013年(35)

2011年(35)

2010年(76)

2009年(48)

2008年(152)

分类: 数据库开发技术

2010-03-02 18:26:33

面向积极的数据库管理

SNMP 的兴起

自从 20 世纪 80 年代末上市以来,简单网络管理协议 (Simple Network Management Protocol-SNMP) 就受到了硬件和软件厂商的热烈欢迎,并逐渐成为事实上的管理信息通信标准。在一年半以前,领先的 RDBMS 厂家联合制定了有关使用 SNMP 管理关系型数据库的一个标准方法,于是就产生了适用于所有关系型数据库的标准管理信息库 (MIB)

有这样几个原因,使得这一努力尤显意义重大。其一,Working Group 的这一努力是首先认识到除了硬件设备和操作系统之外,SNMP 在管理软件应用程序中也具有巨大潜力。但更为重要的是,厂家在这一努力过程中显示出非凡的远见和对客户的关心,他们有意识地制定了一个标准的 MIB 而不是多个单独的、私有的(并很可能是相互冲突的)MIB。这样一来,无论对什么样的数据库进行管理,数据库管理员和其他系统管理者都可以通过使用新的标准 RDBMS MIB 而更快、更容易地从实际中受益。

这一白皮书将描述 SNMP 的基本概念以及 Oracle Corporation 是如何在其产品,包括 Oracle7 Server,中添加 SNMP 支持的。其中,还对 SNMP 是如何协助数据库管理员的这一问题进行了描述,并包含了 Oracle SNMP 管理演示程序的一些示例。

即使以前对 SNMP 所知甚少,但只要您熟悉其所涉及的范围并了解数据库管理员要负责处理的问题,您就能够理解这一白皮书内大部分内容。


SNMP 基本概念

掌握几个概念,就可以理解这一实现以及 SNMP 与关系型数据库一同使用能带来的好处。图表中所显示的是一个管理系统的不同组件。随后,对这些组件进行简短的描述。有关这里没能提供的、关于 SNMP 的更多信息,可以参考本文结束部分的参考书目(参阅参考书目 5、6 和 7)。
 

SNMP 是传输管理信息协议

SNMP 是 Internet 协议套件之一。这些协议(例如,TCP/IP、FTP 和 UDP)中的每一个协议都是为特定用途而定义的。例如,FTP 就是专为文件传输定义的。从字面上讲,SNMP 就是用于在两个网络节点之间传输管理信息的一个协议(通常认为给定的网络节点就是一个管理节点或被管理节点。实际上一个节点可以既是管理节点也是被管理节点)。

作为一个协议,SNMP 仅简单地定义如何传输信息——通信是怎样发起、如何组织和处理。SNMP 并不定义和解释管理信息本身的具体内容;而只传输根据 SNMP 标准定义和格式化的信息。

MIB 定义管理信息

管理信息库 (Management Information Base-MIB) 是用来描述想要通过 SNMP 传输的管理信息的一个层次结构(参阅参考书目 10)。MIB 定义了可以用于刻画给定设备或应用程序状态或行为的一组管理变量或对象。例如,用于打印机的 MIB 就不同于用于 RDBMS 的 MIB。全部的 SNMP 通信指的是一个或多个 MIB 对象;从本质上讲,就是通过 SNMP 传送的一个或多个 MIB 对象及其值。

MIB 是用一种非常精确的语法来编写的(称为用于结构化管理信息的 SMI)。每个对象都用一个名称和对象 ID (OID) 来进行标识,并具有数据类型和访问权限。例如,对象 sysContact 就是由 OID 1.3.6.1.2.1.1.4 来标识的,且包含关于特定系统管理员联系信息的读写字符串。MIB 包含的对象,少则几个,多则上千。

标准和企业 MIB

实际上,所有的 MIB 都是全局 MIB 树的一个部分,如图 2 所示。
 

通常认为 mgmt 分枝下的所有对象都是标准的,并由 Internet Engineering Task Force (IETF) 来严密控制。例如,所有声称可以使用 SNMP 的关系型数据库服务器都支持 mgmt 分枝下的标准 RDBMS MIB。通常,标准 MIB 也称作公共 MIB。

已经有 1000 多家厂商,包括 Oracle,为了提高其产品的可管理性,已经将他们自己的 MIB 对象添加在私有分枝下。例如,可以在 private.enterprise.oracle 分枝下找到 Oracle 服务专用的 MIB。这些 MIB 有时指私有的、私人的或企业的 MIB。事实上,正如所展示的那样,Oracle 已经为多个 Oracle 产品定义了 MIB,其中私有的 Oracle7 Server MIB 是唯一的一个(参阅参考书目 1、2 和 3)。

标准 RDBMS MIB

在 1993 年年底,以 Oracle 为首的几个数据库厂商同意合作为关系型数据库定义一个标准的 MIB(其中之一就是管理对象要独立于厂商)。最终 IETF Working Group 也认为建议的标准 MIB 的目的就是要标识 RDBMS 和使其特征化。1994 年 7 月,通过将 MIB 作为一个建议的标准,并将其标识为 RFC 1697。要想成为一个完整的标准,MIB 必须通过另外两个阶段(建议的标准—标准草案—标准)。但是,在这期间,还是鼓励广泛使用该标准以测试和证明 MIB 的价值。
 

上面的图表显示的示例,是 RDBMS 标准 MIB 中的一些对象以及 Oracle 企业数据库 MIB 中的一些对象。有关 MIB 对象的完整列表,请参阅参考书目 1 或 2。

管理节点上的 SNMP 组件

一个典型的管理节点包含(或可以访问到)如下图所示的几个组件。

管理节点(也称作管理站或控制台)运行一个称为管理平台(或框架)的软件包。所有进出管理站的 SNMP 流量都由管理平台来处理。例如,HP 的 OpenView 就是一个广泛支持各种管理应用程序的管理平台。其他的管理平台包括:

  • IBM 的 NetView/6000
  • SunSoft 的 Solstice 和 SunNet Manager
  • Digital Equipment Corporation 的 POLYCENTER/NetView
  • Novell 的 Network Management System (NMS)
  • Bull 的 Integrated System Management (ISM)
  • Cabletron 的 Spectrum
  • Castle Rock 的 SNMPc Network Manager

>

管理应用程序是运行在某个管理平台上的、可选的、可添加的软件包,专门管理某一特定的网络服务。如上所示,Oracle Monitoring Application 就是管理应用程序的一个例子。这是 Oracle 提供的一个演示程序,该应用程序与分布在 Oracle 数据库环境下的各种平台、发现程序和监视器一同运行。

管理平台将 SNMP 的历史数据存储在一个信息库(MIB 并不含有实际数据)。显然,通过 SNMP 收集到的历史数据在很多方面都很有用,包括产量计划、资源利用、存货、财会和各种报表。信息库可以是任意格式的,可以是关系型数据库、层次数据库,或是纯文本文件。许多管理平台都将 Oracle 数据库作为信息库的一个选项。使用何种信息库与 Oracle 对 SNMP 的支持无关。

被管理节点上的 SNMP 组件

通过 SNMP 所管理的节点需要如下图表中所示的某些组件 
 

显然,该节点支持通过 SNMP 监视的一个或多个服务。被管理节点可以是单用途的,比如打印机或路由器(因此只支持单个的 MIB)。但通常,被管理节点是运行大量的可管理的服务和应用程序(因此支持多 MIB——用于 O/S 和其他每一被管理的服务)的 CPU。

每一被管理的服务都有一个或多个相关的 MIB,这些 MIB 含有可用于该服务的管理对象。例如,可以使用两类互补的 MIB 监视 Oracle7 Server:标准 RDBMS MIB 和 Oracle 企业 RDBMS MIB。

每个物理节点必须具备 SNMP 代理。该代理协调进出管理平台的所有 SNMP 通信(SNMP 查询和响应),以节点的名义执行下列 SNMP 功能:

  • 在已知地址侦听请求。
  • 对收到的请求进行解码
  • 将 SNMP 通信量多路转换到所有可用的子代理
  • 对发出的回复和陷阱进行编码
如果在被管理节点上有多个被管理服务,则每一应用程序都需要一个子代理,且由主代理协调所有对子代理的 SNMP 通信。在这种情况下,主代理必须是可扩展的(这样就可以在应用程序启动时,同主代理一同注册子代理的 MIB)。

通常操作系统会提供 SNMP 代理。但是,并不是所有操作系统所配的代理都是可扩展的,因此 Oracle 提供了一个由 PEER Networks, Inc. 颁发了许可证的、可扩展的主代理。

管理节点与被管理节点之间的 SNMP 操作

SNMP 支持三种类型通信。

SNMP Poll 是最常见的 SNMP 事务,由管理者节点发起。由管理应用程序请求有关某个特定被管理服务的管理信息。应用程序利用管理平台提供的 SNMP 支持将这一请求传输到被管理节点。运行在目标节点上的 SNMP 代理接收请求,获答复信息并将其送回到管理者。SNMP Set 类似于轮询,但它并不请求变量的当前值,而是给变量设置一个新值。

与 Poll 和设置操作不同,SNMP Trap 由被管理节点开始,在此之前,管理者并没发出任何请求。通常这种通信是用来通知发生了某一异常事件。管理者端用于侦听陷阱信息的守护程序会接收这类消息,而该守护程序通常都是管理框架的一部分。然后,接收陷阱信息的守护程序会将陷阱消息转发到相关的管理应用程序。


SNMP 如何使数据库管理员受益?

尽管对 SNMP 的相关组件及其之间的相互作用已经有了些初步的认识,您可能仍然不知道 SNMP 到底能向 Oracle 数据库管理员提供哪些便利之处。比如说,它能提供哪些新功能,简化哪些操作?

SNMP 将数据库管理与大量的、广泛使用的管理工具集成。有了 SNMP,所有管理者(数据库管理员、系统管理员、网络管理员)可以在屏幕上查看网络节点状态、网络链接、路由器、服务器等信息的同时查看 Oracle 数据库的状态。数据库管理员和网络管理员还可以使用相同的工具,一同确定并解决交叠问题和难以诊断的问题。

基于 SNMP 的管理工具数量多,功能强且灵活。当前多数基于 SNMP 的管理工具都利用了直观的图形界面。管理者可以结合使用标尺、刻度盘、图表和图像等图形元素,来显示窗口和控制面板。还可以实时地绘制、缩放和重新绘制数据的各种映射和视图,并且只需轻触按纽就可调用其他应用程序。正因为 SNMP 既简单又开放,这种应用程序的数量还在不断增长。

SNMP 可对分散的服务进行集中管理。可以使用一个中心管理工作站监视任意数字或查看远程数据库。这样做有很多好处,比如可以更有效地利用数据库管理员资源(用一个中心数据库管理员代替多个远程数据库管理员),而且使分布式数据库和网络服务的管理更易保持协调一致。

SNMP 是一个开放式的、事实上的管理标准。 SNMP 已经得到广泛应用,而且 SNMP 的发展速度还在不断加快。正如该协议的名称,SNMP 既简单又易于实现。许多基于 SNMP 的第三方的管理产品都可以使用的并可以交互操作。因为 SNMP 已得到验证并已接受为标准,所以您对软件和培训的投资对产品是有用的。

SNMP 使您能更积极地解决问题。 许多数据库管理员总是不能对某些问题作出及时的反应,而不是对问题有所估计并在问题发生之间就作好应对准备。SNMP 的一大好处就是可以持续地对 Oracle 服务进行监视,这样,如果发生了什么意外情况,您会马上得到通知并采取纠正操作。甚至还可以为这些事件定义一些程序来进行自动响应。


Oracle 使用 SNMP 进行监视的应用程序

作为 Oracle SNMP 支持的一部分,Oracle 已经编写了一个可运行于不同网络平台的演示程序。使用这个应用程序,数据库管理员可以利用以下特性:
  • 在任意规模的网络内实时定位(或查找)、识别和监视 Oracle 数据库。
  • 使用标准的 Oracle 图标定义可以显示数据库自定义群的不同视图或子映射
  • 实时定义、自定义和重新指定任意数量的图形显示,以监视性能和使用情况
  • 查看或浏览 Oracle 数据库和服务的当前状态
  • 查询任意 MIB 对象或对象组合的当前值
  • 设置可以触发警告或对特定事件进行程序响应的阈值
  • 联系当前环境,启动其他管理应用程序,比如 Oracle Server Manager,以便对意外事件作出直接响应
  • 监视和记录活的级别以维护历史数据,这对于重新构建问题、定期报表、趋势和性能分析都非常有用。
应该注意到,Oracle 提供的 SNMP 演示程序只是为了监视 Oracle 服务,而不是管理这些服务。也就是说,不能使用该应用程序更新或写入 Oracle 启动参数而只能查询或读取当前值。然而该 SNMP 演示程序在验证正常操作和对潜在问题的发现和反应方面的表现还是很出色的,要想对问题进行更深入的调查或采取相应的措施,则还必须使用其他工具,比如 Oracle Server Manager。

下图表描述了 Oracle SNMP 应用程序在与 HP OpenView 一同使用时可提供的一些特性。 
 

 
  
 

在左上角是分布式 Oracle 网络的自定义映射,显示在三个节点上运行着的五个数据库服务器。您可以看到数据库 NMS 的颜色(红色)与别的不同,表明可能存在某些问题。下拉式菜单显示了可以查看信息的不同分类(Init Parameters、Instance、Storage、Users 和 Schema)。

在右上角是 Oracle Server Manager 运行的两个独立的实例——一个显示数据库 V713 表空间信息,另一个则显示数据库 TPC_B 的用户信息。这些信息展示了是如何根据 SNMP 捕获的信息启动如 Oracle Server Manager 这样的应用程序。在这个例子中,V713 表空间 FILLDISK 的空间分配表几乎已经被填满。当该表空间的分配率达到预先指定的阈值(大概为 95%),Oracle Server Manager 就会依据当时的情况启动,自动显示一个窗口以便给表空间增加空间。数据库管理员可以选择继续或退出窗口。

这些显示信息有各自不同的来源,并可以通过缩放或重新显示来显示更多数据。在映射中将显示 Oracle 不同产品的标准 Oracle 图标。


Oracle 对 SNMP 的承诺

关于在所有 Oracle 产品中,以及 Oracle 产品运行的各种操作系统上提供 SNMP 支持这方面,Oracle 已经有了一些目标。

Oracle 正在提供 Oracle 主要产品的 MIB。目前已经可以使用的 MIB 有:

  • Oracle7 Server (既支持建议的标准 MIB,也支持 Oracle 的企业扩展)
  • Oracle Network Listener
  • Oracle Name
  • Oracle MultiProtocol Interchange
  • Oracle Mobile Agent
  • Oracle Media Server
MIB 会按计划一个产品一个产品,逐个地发布,而不会使所有产品共有一个 MIB 或子代理。

Oracle 还为常用的管理平台提供了一个基本的 SNMP 演示程序,并为 Oracle7 服务器的所有用户提供了一个 SNMP 解决方案的 CDROM。

Oracle 通过 Oracle 的 Business Alliance Programme (BAP) 和系统管理工具 Systems Management Tool Initiative (SMTI) 与第三方紧密合作以指定、开发、测试、分配和销售 Oracle 新的管理产品和特性。SNMP Software Development Kit (SDK) 特别适用于这些伙伴(参考书目 4 )。


SNMP V2 的含意

关于 SNMP 的最大问题之一,就是管理平台和应用程序多长时间才能支持、实际上是否支持 SNMPv2。SNMPv2 弥补了 v1 中目前已发现的一些缺陷,尤其是安全问题。实际上,v1 在安全问题上的欠缺是 RDBMS Working Group 同意保持 RDBMS MIB 只读属性的主要原因。在 SNMPv2 中,安全问题得到了明显的加强;能够以事务为单位设置安全模式,并且定义了 MD5 认证和 DES 隐私。

SNMPv2 其他的显著特性有:一个新的可以改善性能的 GET BULK 操作符,和用于支持层次管理站并减少网络流量的管理者到管理者 MIB。

除了这些新特征,厂家已经在缓步向 SNMPv2 移植。我们有理由期待扩展 SNMP 在管理和监视上的应用规模的努力会促进对 SNMPv2 的需求。


总结

领先的 RDBMS 厂家,通过定义一个标准 RDBMS MIB,可使 SNMP 的好处扩展到软件应用程序,他们对 SNMP 价值已经达成共识。SNMP 在监视分布式 Oracle 环境方面,给 Oracle 数据库管理员带来了明显的好处:
  • 在 Oracle 中,可以使用 MIB,使得丰富而强大的网络管理工具随时都可以与 MIB 进行结合。现在使用关系型数据库的两种 MIB:建议的标准 MIB 和 Oracle 企业 MIB,Oracle 数据库管理员就可以立即将他的管理功能与网络管理员的管理功能集成。以前一些难以解决的问题,现在诊断起来就要容易得多。
  • 使用所选管理平台的监视、报表和意外处理特性,数据库管理员可以在数据库管理中发挥更积极的作用,并使某些任务自动化。
  • 尤其是在地理上分散的数据库环境中,可以集中数据库管理员的资源,进行更加协调一致的管理。
  • 因为 SNMP 是一个开放的标准,任意第三方都可以将 Oracle 管理系统添加到某个基于 SNMP 的工具中。Oracle 承诺在与第三方紧密合作开发 Oracle 产品新管理选项时充分利用 SNMP 的优点。

参考书目

Oracle 出版物

1. Oracle SNMP Support Reference Guide;Part No. A32324。

2. Oracle7 Database Server SNMP MIB Quick Reference Card,Part No. A33144。

3. Oracle SQL*Net Services SNMP MIB Reference Card;Part No. A33145。

4. Oracle SNMP Software Development Kit;Part No. A22084。 (包含以上部分)。

商务出版物

5. The Simple Book - An Introduction to Internet Management;第 2 版;Marshall T. Rose;Prentice Hall;1994。

6. SNMP, SNMPv2, and CMIP - The Practical Guide to Network-Management Standards;William Stallings;AddisonWesley;1993。

7. Managing Internetworks with SNMP;Mark A. Miller;M & T Books;1993。

RFC

8. RFC 1697:D. Brower,R. Purvy,A. Daniels,M. Sinykin,J. Smith 著 "Relational Database Management System (RDBMS) Management Information Base (MIB) using SMIv2," 1994 年 8 月

9. RFC 1157:J. D. Case,M. Fedo,M. L. Schoffstall 和 C. Davin 著 "Simple Network Management Protocol (SNMP)," 1990 年 5 月

10.RFC 1156:K. McCloghrie 和 M. T. Rose 著 "Management Information Base for Network Management of TCP/IP-based Internets," 1990 年 5 月

11. RFC 1227:M. T. Rose 著 "SNMP MUX Protocol and MIB," 1991 年 5 月。


Shelly Dimmick-Willard & Dimitris Nakos,1995 年 5 月
版权所有 (c) Oracle Corporation 1995
阅读(3211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~