天天看點

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"