第五章 对象数据库管理器(ODM)

一、ODM概述

AIX系统用一种特殊的方法来管理和维护系统的配置信息、设备信息和关键产品信息。所有这些信息都保存在/etc/objrepos,/usr/lib/objrepos和/usr/share/lib/objrepos目录中,位于这些目录中的文件被称为系统对象类。

系统对象类是由对象数据库管理器(ODM)来管理,对象数据库管理器(object database manager)简称ODM,它是一组用于管理面向对象数据库的程序和命令。因此系统对象类也成为ODM数据库。

ODM的基本组件是对象类和对象。对象类是结构相同的同一类对象的集合,相当于一个具有固定格式的记录型文件。如下图,就是定义PdAt对象类的代码:

而对象则是对象类中的一个成员,类似C++中的类的实例,相当于C语言中的结构数组的一个数组元素,也相当于记录型文件中的一条记录,类似下图,就是PdAt对象类的一个实例:

二、ODM负责的数据

ODM负责管理和维护的系统数据有:

1)设备配置信息

2)SMIT工具的菜单、选择项和对话框的显示信息

3)软件安装和更新过程中使用的关键字产品数据库(SWVPD)

4)网络通信配置信息

5)系统资源信息

设备信息分为两种:预定义(Predefined)和用户定义(Customized)。预定义数据包含着系统可能支持的所有设备配置信息,用户定义数据包含着在系统中已定义或者是配置的实际设备的配置信息。在系统安装和初始化引导时,由系统检测当前系统所连接的设备,并在用户定义数据库中定义设备的当前设置,在系统运行时,当用户执行命令定义配置设备时就更新了用户定义数据库。安装软件时,也更新ODM数据库,系统资源控制器所管理的资源都保存在ODM数据库中,但并不是所有的系统数据都保存在ODM数据库中。
三、ODM数据库文件

OMD数据库也是以文本文件存在,但不是ASCII的编码,所以一般的编辑器也无法编辑它。ODM数据库文件存放在/etc/objrepos,/usr/lib/objrepos和/usr/share/lib/objrepos目录中。

位于/etc/objrepos目录的文件有:用户定义设备对象类和用于SWVPD的root(根)部分的4个对象类。位于该目录下的信息不能通过网络共享。它主要包括了这个主机系统中配置了哪些的硬件信息,哪些可读/可写的软件和这个主机系统代表性的配置信息细节

例如,启动小机第一阶段定义定义基本设备的就是Config_Rules类中的phase属性为1的设备,而这个Config_Rules文件就在/etc/objrepos目录下:

位于/usr/lib/objrepos目录下的文件包括预定义设备类、SMIT菜单对象类和SWVPD可安装软件产品和/usr部分的4个对象类。在这个目录下的对象类是只读的,能够通过网络被/usr客户端,无盘和无数据工作站共享。安装在/usr下的软件通过网络只能被AIX系统共享。

位于/usr/share/lib/objrepos目录下的文件包括用于SWVPD可安装软件产品的/usr/share部分的4个对象类。/usr/lib和/usr/share/lib所保存的文件的区别是/usr/share/lib目录包括软件的只读可共享设备部分,像文本文件和消息文件,像文本文件和消息文件,这些不依赖于AIX,/usr/lib包括了特定机器上执行的软件部分。

四、对象类

ODM数据库包括6种对象,分别是与定义设备信息,用户定义设备信息,软件信息,SMIT菜单,日志信息和网络安装管理器等。

1)预定义设备信息包括的对象类有PdDv,PdAt,PdCn;

PdDv对象类包括系统支持的所有与定义设备,它也包括一个PdAt对象类的链接。

PdAt对象类包括系统支持的所有预定义设备的所有可能属性。

PdCn对象类包括系统支持的每个设备的预链接属性

2)用户定义设备信息包括的对象类有CuDv,CuAt,CuDep,CuDvDr,Config_Rules,CuVPD,这些类包括了所有的用户定义的设备。用户定义设备指的是那些实际存在在系统中的设备,而且这些设备已经定义好了,系统正在使用或者随时可以使用这些设备,而不是指能够连接到系统上的设备,因为能够连接在系统上的设备比已连接的设备要多。

3)软件信息指软件的重要产品数据库,包括的对象类有history,inventory,lpp,product。

history对象类包括了关于安装和更新软件产品的历史记录。

inventory对象类包括了与一个软件产品相关的文件的信息。

lpp对象类包括了已经安装的软件产品信息,当然也有当期软件产品的状态信息

product对象类描述了关于软件产品安装和更新的产品信息,当然也有当前软件产品的状态信息。

4)SMIT菜单包括的对象类有sm_menu_opt,sm_name_hdr,sm_cmde_hdr,sm_cmd_opt。

5)日志信息包括错误日志信息,alog和dump信息,它的对象类是SWservAt。该对象类包括这些日志文件的名字、类型、大小、位置、和其他一些属性信息。

五、ODM命令

使用ODM命令之前,必须保证¥ODMDIR环境变量设置正确,设置方法如下:

#export ODMDIR=/etc/objrepos

时间: 2024-08-08 13:50:30

第五章 对象数据库管理器(ODM)的相关文章

流畅的python第十五章上下文管理器和else块学习记录

with 语句和上下文管理器for.while 和 try 语句的 else 子句 with 语句会设置一个临时的上下文,交给上下文管理器对象控制,并且负责清理上下文.这么做能避免错误并减少样板代码,因此 API 更安全,而且更易于使用.除了自动关闭文件之外,with 块还有很多用途 else 子句不仅能在 if 语句中使用,还能在 for.while 和 try 语句中使用 for 仅当 for 循环运行完毕时(即 for 循环没有被 break 语句中止)才运行 else 块.while 仅

java面向对象编程——第五章 对象的行为

5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称为调用栈的结构中.当前正在执行的方法位于调用栈的顶部,当前方法执行完成后,就从调用栈的顶部移除,控制流程返回栈中的前一个方法.当一个新方法被调用后,这个新的方法就放在调用栈的顶部. 在java程序中,第一个被调用的方法就是main(),该方法是JVM调用的.因此main()方法总是在调用栈的底部.

第六章 JVM垃圾收集器(2)

上一章记录了几种常见的垃圾收集器,见<第五章 JVM垃圾收集器(1)> 1.G1 说明: 从上图来看,G1与CMS相比,仅在最后的"筛选回收"部分不同(CMS是并发清除),实际上G1回收器的整个堆内存的划分都与其他收集器不同. CMS需要配合ParNew,G1可单独回收整个空间 原理: G1收集器将整个堆划分为多个大小相等的Region G1跟踪各个region里面的垃圾堆积的价值(回收后所获得的空间大小以及回收所需时间长短的经验值),在后台维护一张优先列表,每次根据允许的

c++第五章-(类与对象、构造器和析构器)

1.构造器与结构体的区别:构造器多支持方法.其作用有申请内存,初始化变量. 在c++中构造器没有返回值:语法Class Name(); 2.析构器的作用:释放内存. 在c++中析构器没有返回值:语法~ClassName(); class Animal { public: std::string mouth; std::string name; void eat(); void sleep(); void drool(); Animal(std::string theName); }; class

OpenGL ES着色器语言之操作数(官方文档第五章)

OpenGL ES着色器语言之操作数(官方文档第五章) 5.1操作数 OpenGL ES着色器语言包含如下操作符. 5.2数组下标 数组元素通过数组下标操作符([ ])进行访问.这是操作数组的唯一操作符,举个访问数组元素的例子: diffuseColor += lightIntensity[3] * NdotL; 5.3函数调用 如果一个函数有返回值,那么通常这个函数调用会用在表达式中. 5.4构造器 构造器使用函数调用语法,函数名是一个基本类型的关键字或者结构体名字,在初始化器或表达式中使用.

“全栈2019”Java第七十五章:内部类持有外部类对象

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第七十五章:内部类持有外部类对象 下一章 "全栈2019"Java第七十六章:静态.非静态内部类访问权限 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习

JS复习第五章

第五章 引用类型 一.Object类型 创建object实例的方式有两种. 第一种是使用new操作符后跟object构造函数,如下所示: ver person = new Object( ) ; person.name = “Nicholas” ; person.age = 29 ; 另一种方式是使用对象字面量表示法: var person = { name : “Nicholas”, age : 29 } ; 对象字面量是向函数传递大量可选参数的首选形式. function displayIn

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文