AIX系统学习之-ODM管理
来源:互联网 发布:config.php如何下载 编辑:程序博客网 时间:2024/06/05 17:53
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 目录。
[root@aix211 /]#echo $ODMDIR
/etc/objrepos
比较常用的命令是odmget与odmadd命令:
1、odmget:
odmget [ -q Criteria ] ObjectClass ...
描述
odmget 命令以搜索规则和对象类列表为输入,从指定的对象类中检索选定的对象,并写 ASCII odmadd 输入文件到标准输出。
标志
-q Criteria 指定用于从对象类中选择对象的搜索条件。如果没有指定标准(没有 -q 标志),检索对象类中的所有对象。
#odmget -q name=hdisk1 CuAt |more
CuAt:
name =
"hdisk1"
attribute
=
"unique_id"
value =
"2308AJ27R0820CDNES-309170W03IBMscsi"
type =
"R"
generic =
""
rep =
"sl"
nls_index =
0
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
# odmadd hdisk3odm.add
3、odmshow命令:
odmshow 命令以对象类名称(ObjectClass)为输入并在屏幕上显示类描述。 类描述的格式采用 odmcreate 命令的输入格式。
#odmshow CuDv |more
class
CuDv {
char name[
16
];
/* offset: 0xc ( 12) */
short status;
/* offset: 0x1c ( 28) */
short chgstatus;
/* offset: 0x1e ( 30) */
char ddins[
16
];
/* offset: 0x20 ( 32) */
char location[
16
];
/* offset: 0x30 ( 48) */
char parent[
16
];
/* offset: 0x40 ( 64) */
char connwhere[
16
];
/* offset: 0x50 ( 80) */
link PdDv PdDv uniquetype PdDvLn[
48
];
/* offset: 0x60 ( 96) */
};
/*
descriptors: 8
structure size: 0x98 (152) bytes
data offset: 0x200030e8
population: 55 objects (55 active, 0 deleted)
*/
需要了解的几个对象类:
PdDv 预定义设备库
PdDv:
type =
"scsd"
class
=
"pdisk"
subclass =
"ssar"
prefix =
"pdisk"
devid =
""
以上三个参数 再使用mkdev的时候需要用到,需要特别关注,如果查找起来不方便的话,可以使用lsdev –P –H 产看预配置数据库中的这三个选项。此项对于使用mkdev生成虚设备也非常方便。
PdAt 预定义属性库
PdAt:
uniquetype =
"tape/scsi/8mm"
attribute
=
"block_size"
deflt =
"1024"
values =
"0-245760,1"
CuDv 用户自定义设备库
CuDv:
name =
"rmt0"
status =
1
chgstatus =
2
ddins =
"tape"
location =
"04-C0-00-1,0"
parent =
"scsi0"
connwhere =
"1,0"
PdDvLn =
"tape/scsi/8mm"
CuDv:
name =
"hdisk1"
status =
1
chgstatus =
2
ddins =
"scdisk"
location =
"10-60-00-1,0"
parent =
"scsi0"
connwhere =
"1,0"
PdDvLn =
"disk/scsi/scsd"
CuAt:用户自定义属性库
CuAt:
name =
"hdisk1"
attribute
=
"unique_id"
value =
"2308AJ27R0820CDNES-309170W03IBMscsi"
type =
"R"
generic =
""
rep =
"sl"
nls_index =
0
由以上输出可以看出,在使用odmget命令查找odm用户数据库信息时,可以使用 name=×作为查询key。
二、Additional Device Object Classes:
CuDep:
name =
"rootvg"
dependency =
"hd6"
CuDep:
name =
"datavg"
dependency =
"lv01"
CuDvDr: 设备驱动
resource =
"devno"
value1 =
"22"
value2 =
"0"
value3 =
"rmt0"
CuVPD: 设备vpd信息 vital product data
name =
"rmt0"
vpd =
"*MFEXABYTE
PN21F8842"
PdCn: 预定义配置信息
uniquetype =
"adapter/pci/sym875"
connkey =
"scsi"
connwhere =
"1,0"
三、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
CuAt:
name =
"hdisk0"
attribute
=
"unique_id"
value =
"21080005E93A0AST373307LC03IBMscsi"
type =
"R"
generic =
""
rep =
"nl"
nls_index =
79
CuAt:
name =
"hdisk0"
attribute
=
"pvid"
value =
"00040f8aaa29d28e0000000000000000"
type =
"R"
generic =
"D"
rep =
"s"
nls_index =
2
CuAt:
name =
"hdisk0"
attribute
=
"size_in_mb"
value =
"73400"
type =
"R"
generic =
"D"
rep =
"nr"
nls_index =
60
CuAt:
name =
"hdisk0"
attribute
=
"led"
value =
"0x57D"
type =
"Z"
generic =
""
rep =
"nr"
nls_index =
0
CuAt:
name =
"hdisk0"
attribute
=
"message_no"
value =
"87"
type =
"T"
generic =
""
rep =
"nl"
nls_index =
0
CuAt:
name =
"hdisk0"
attribute
=
"diag_scsd"
value =
"a500000107000507000c0d"
type =
"R"
generic =
""
rep =
"s"
nls_index =
0
CuDv:
name =
"hdisk0"
status =
1
chgstatus =
2
ddins =
"scdisk"
location =
"1S-08-00-8,0"
parent =
"scsi0"
connwhere =
"8,0"
PdDvLn =
"disk/scsi/scsd"
CuDvDr:
resource =
"devno"
value1 =
"24"
value2 =
"0"
value3 =
"hdisk0"
CuPath:
name =
"hdisk0"
parent =
"scsi0"
connection =
"8,0"
alias =
""
path_status =
1
path_id =
0
CuVPD:
name =
"hdisk0"
vpd_type =
0
vpd = "*MFIBM *TM\n\
ST373307LC *F00P3072 *RL4335304A*SN0005E93A*ECH12094 *P00P2672 *Z0\n\
000003129F00013E*Z0812C512"
2、搜索网关地址所属的对象类别:
[root@aix211 /]#for i in `ls $ODMDIR`; do (odmget $i 2>/dev/null |grep -p 192.168.8.1);done
CuAt:
name =
"inet0"
attribute
=
"route"
value =
"net,-hopcount,0,,0,192.168.8.1"
type =
"R"
generic =
"DU"
rep =
"s"
nls_index =
0
通过以上可以了解,每个对象所属的对象类别,然后可以用odmdelete删除对应的对象即可
例如删除hdisk0:
[root@aix211 /]#odmdelet -o CuDv -q "name=hdisk0"
- AIX系统学习之-ODM管理
- AIX系统学习之-ODM管理
- Aix学习之ODM
- 小型机 IBM AIX ODM 解析
- AIX系统日志学习笔记之二
- AIX系统日志学习笔记之三
- AIX系统学习之--卸载软件错误
- AIX系统日常管理
- AIX系统日常管理
- AIX系统性能管理之Oracle案例分析
- AIX系统性能管理之Oracle案例分析
- AIX 系统学习开始
- AIX培训总结之二:AIX管理
- aix 下ODM 删除残余lv信息
- Live555 之odm封装
- aix学习日志(三)之系统备份与还原!
- Oracle GoldenGate学习之--AIX系统安装配置
- AIX系统学习之-系统升级后软件错误
- Spring MVC 中的 Controller
- C# SerialPort使用方法
- 李开复:程序员能干一辈子
- POJ 3411 Paid Roads
- Android自定义效果——随机抽奖
- AIX系统学习之-ODM管理
- CRC16校验算法实现
- 程序员该有的艺术气质—SOLID原则
- IT人-不要一辈子靠技术生存
- 树控件多选类
- Hibernate异常No row with the given identifier exists 解决方法
- 通知的用法,传值
- 题解053-425(V13.02版本,711题)
- BUG系列:调用startActivityForResult()&onActivityResult()无响应