天天看点

AIX系统学习之-ODM管理

AIX系统学习之-ODM管理

        AIX ODM(Object Database Manager)是由一组对象类和对象所组成的数据库。对象类相当于Oracle数据库中的object,由ODM create创建,删除可以使用ODM drop,对象就相当于object下的数据(比如磁盘、Adapter等),可以使用ODM add命令加入对象,使用ODM delete命令删除,使用ODM change命令修改指定记录。查询的命令可以使用odmget。

 一、使用 ODM 命令

     当使用 odmcreate 或者 odmdrop 命令来创建或者删除对象类时,请使用以下方法之一指定将从中访问类定义文件的目录:

将文件存储在 $ODMDIR 指示的缺省目录下,即:/usr/lib/objrepos 目录。 

   比较常用的命令是odmget与odmadd命令:

1、odmget:

odmget [  -q Criteria ] ObjectClass ...

描述

odmget 命令以搜索规则和对象类列表为输入,从指定的对象类中检索选定的对象,并写 ASCII odmadd 输入文件到标准输出。

标志

-q Criteria 指定用于从对象类中选择对象的搜索条件。如果没有指定标准(没有 -q 标志),检索对象类中的所有对象。

2、odmadd :

添加对象到创建的对象类。

语法

odmadd [ InputFile ... ]

odmadd 命令以一个或多个InputFile 文件为输入,并且添加对象到带有节文件数据的对象类中。每个 InputFile 文件是 ASCII 文件,包含有描述要添加到对象类中的对象的数据。如果没有指定文件,从标准输入中获取输入。

在使用odmadd命令之前,最好使用odmget 查询并生成样本文件,然后修改一下,再使用odmadd命令加入指定的对象类。

注意:odmadd 将把对象添加到$ODMDIR变量指定的目录所对应的对象类中去。

比如:

取一份odm样板; 

# odmget -q name=hdisk2 CuAt > hdisk3odm.add

编辑样本文件,最重要的是修改pvid属性回原有硬盘的pvid,另外一项属性unique_id名字也一起修改了。当然还有name要更正为hdisk3。插入修改过的文件到CuAt 

3、odmshow命令:

odmshow 命令以对象类名称(ObjectClass)为输入并在屏幕上显示类描述。 类描述的格式采用 odmcreate 命令的输入格式。

需要了解的几个对象类:

PdDv    预定义设备库

     以上三个参数 再使用mkdev的时候需要用到,需要特别关注,如果查找起来不方便的话,可以使用lsdev –P –H 产看预配置数据库中的这三个选项。此项对于使用mkdev生成虚设备也非常方便。

PdAt    预定义属性库

CuDv   用户自定义设备库

CuDv:

CuAt:用户自定义属性库

由以上输出可以看出,在使用odmget命令查找odm用户数据库信息时,可以使用 name=×作为查询key。

二、Additional Device Object Classes:

CuDep:

CuDvDr:          设备驱动

CuVPD:            设备vpd信息 vital product data

PdCn:             预定义配置信息

三、ODM 管理的系统数据包括:

设备配置信息 

SMIT(菜单、选择器和对话框)的显示信息 

安装和更新过程的重要产品数据 

通信配置信息 

系统资源信息

注意:ODM中不包含设备驱动程序,只能从设备驱动文件往CuDvDr中写驱动记录

设备状态:

Define:没有加载驱动,但odm中有定义

Available:已加载驱动,并将驱动记录进CuDvDr.

Stopped:停止状态,有些设备支持此状态

四、案例:

搜索对象所属的对象类别:

Usage:

for i in `ls $ODMDIR`; do (odmget $i  2>/dev/null |grep -p 特定字符串); done

1、搜索hdisk0所属的对象类别

[root@aix211 /]#for i in `ls $ODMDIR`; do (odmget $i 2>/dev/null |grep -p hdisk0);done

2、搜索网关地址所属的对象类别:

[root@aix211 /]#for i in `ls $ODMDIR`; do (odmget $i  2>/dev/null |grep -p 192.168.8.1);done

通过以上可以了解,每个对象所属的对象类别,然后可以用odmdelete删除对应的对象即可

例如删除hdisk0:

[root@aix211 /]#odmdelet -o CuDv -q "name=hdisk0"