拓樸匯入和匯出公用程式可讓您從使用 XML 標記的 ASCII 檔案匯入拓樸資料庫,或將拓樸資料庫匯出至此檔案。匯入公用程式可讓您從檔案中讀取資料,並更新拓樸資料庫和拓樸代理程式物件的資料。匯出公用程式的作業與匯入公用程式相反。
本章說明以下主題:
定期將拓樸資料轉儲為備份。
在不同的拓樸伺服器之間傳輸資料。
在拓樸資料毀損時從備份復原資料。
將資料轉換為其他檔案格式,並將其載入協力廠商管理平台中的其他管理系統。
您可以從 Sun Management Center 主控台主視窗或 CLI 存取這些功能。您必須指定要匯入或匯出的完整拓樸資料和領域。此工具支援多種資料處理方法,包括覆寫和附加。
匯入和匯出公用程式支援領域層級操作。 您可以指定匯出一個領域或整個拓樸階層結構。
您可以透過匯入公用程式復原備份資料。
您可以將任一領域的物件匯入至一個領域。
您可以透過匯出公用程式備份現有資料。
您可於增量模式中匯出資料。
只有當目前拓樸階層結構包含資料時,您才可以從主要主控台視窗匯出拓樸資訊。
拓樸匯入和匯出公用程式透過用戶端 API 與 Sun Management Center 伺服器通訊。 匯入和匯出 ASCII 檔案常駐於主控台系統的。此檔案透過客戶端 API 向伺服器提供資訊。伺服器將此資訊傳送至與拓樸資料庫互動的拓樸代理程式。下圖顯示了支援這些公用程式的軟體架構。
對於匯出,有兩種模式可供選用: 附加和覆寫。 在覆寫模式中,轉儲資料會取代現有檔案的內容。在附加模式中,轉儲資料會被新增至檔案末尾。
對於匯入,有兩種模式可用來處理包含在轉儲檔案中的領域資訊。第一種模式為忽略領域資訊。所有物件均建立在指定領域或起始領域中。第二種模式為一併匯入領域資訊和所有其他物件。在此情況下,可建立新的領域。所有非領域物件均建立在相應領域中。
您可從主要主控台視窗或 CLI 啟動拓樸匯出公用程式,請參閱匯入和匯出 CLI 介面中的說明。
在主要主控台視窗的「工具」功能表中選擇「匯出拓樸」。
「匯出拓樸」對話方塊即會出現。
從「匯出領域名稱」清單中選取領域。
清單可顯示由拓樸代理程式管理的所有領域。您可以選取匯出一個領域。 若要匯出多個領域,您可以在附加模式下重複前述操作,以匯出其他領域。
鍵入要匯出檔案的名稱,或使用「瀏覽」按鈕選取現有檔案。
若要匯出檔案,你必須有寫入檔案或建立檔案的權限。否則會顯示錯誤訊息,並結束操作。
決定是要將資料附加到現有檔案中,還是覆寫現有檔案中的資料。
附加模式可將資料附加到檔案末尾。覆寫模式可覆寫檔案。當使用附加模式匯出時,會對檔案執行較嚴謹的檢查。現有檔案必須為有效的匯入和匯出資料檔。有效資料檔為定義完整的 XML 檔案,包含正確的匯入和匯出檔案文件類型聲明 (DTD)。
從「有效天數」功能表中選擇資料有效的天數。
您可以從下列值中選擇:
7 天
15 天
30 天
90 天
依預設,拓樸匯出資料的有效天數不受限制。
(選擇性的)(選擇性的) 提供有關此匯出功能的註解。
按一下「確定」將資料匯出到指定檔案,並關閉「匯出拓樸」視窗。
您可從主要主控台視窗或 CLI 啟動拓樸匯入公用程式,請參閱匯入和匯出 CLI 介面中的說明。
從主要主控台的「工具」功能表中選取「匯入拓樸」。
「匯入拓樸」視窗即會出現。
鍵入包含要匯入拓樸資料的檔案之完整路徑名稱。
您還可以使用「瀏覽」按鈕來尋找檔案。
決定是匯入拓樸中的所有內容,還是僅匯入群組和實體。
遵循 – 匯入群組和領域資訊。群組和實體建立在檔案包含的領域中。
忽略 – 忽略領域資訊,僅將群組和實體匯入您指定的目標領域中。
從「名稱」清單中選取要將資料匯入其中的領域。
依預設,所有資料均被匯入起始領域。
只有在前一步驟中選擇了「忽略」選項,您才可以在拓樸階層結構中指定要將資料匯入的位置。
按一下「確定」以匯入資料,並關閉「匯入拓樸」視窗。
匯入公用程式會更新拓樸資料庫。因此,在資料匯入之前,警告對話方塊可讓您確認此操作。
警告對話方塊可告知您輸入檔案的產生時間和產生者。此警告可幫助您確保使用的是正確的資料檔。
需要執行的其他數項檢查:
匯出的資料檔包括有關檔案有效時間的資訊。如果您嘗試匯入過時檔案,則會收到錯誤訊息,且操作會停止。
匯入公用程式會檢查檔案是否存在及是否可讀。如果這些檢查失敗,您會收到錯誤訊息,且操作會停止。
為使匯入公用程式能夠分析匯入檔案,檔案格式必須正確。如果檔案格式不正確,匯入公用程式會產生錯誤訊息。
如果實體存在於目前的拓樸階層結構中,則會出現另一個警告對話方塊,詢問是否要取代該實體。選取以下選項之一:
用新值取代衝突的資料。
取代全部衝突的資料。 若資料衝突再次發生,則不會出現對話方塊,而直接取代舊值
不更新衝突的資料。
若資料衝突再次發生,則不會出現對話方塊。忽略所有衝突,並且不作任何變更。
停止匯入操作。
您可以使用以下指令從 CLI 呼叫匯入和匯出公用程式:
# /opt/SUNWsymon/sbin/es-cli > login Host: servername Login: username Password: password Login successful! > export parameter > import parameter |
請參閱匯入指令參數和匯出指令參數,以取得有關適當指令參數的資訊。
import 指令可從檔案為指定領域擷取先前匯出的拓樸資料。
import 指令具有以下參數:
domain 參數的值為要匯入的拓樸所屬領域的名稱。如果未指定領域,將匯入所有領域。
domainmode 參數的值決定是否從匯入的拓樸建立新的領域。如果值為 follow,則將群組和領域拓樸匯入目前拓樸,並可建立新的領域。如果值為 ignore,則只將群組和實體匯入指定的目標領域。
filename 參數的值為應該從中擷取拓樸資訊的檔案之名稱。
nodemode 參數的值決定是否以匯入的拓樸取代現有的拓樸。如果 nodemode 參數的值為 replace,則將以匯入的值取代衝突的資料。如果 nodemode 參數的值為 ignore,則不更新衝突的資料。
指令行中的外顯指定將置換參數檔中的相同指定。例如,如果在指令行中指定 mode=ignore,而在參數檔中指定 mode=follow,則使用 mode=ignore。
在以下範例中,從檔案 /home/examples/snapshot 中匯入先前匯出的拓樸。根據需要建立新的領域,並以匯入的拓樸取代衝突的資料。
> import filename=/home/examples/snapshot domainmode=follow \ nodemode=replace |
在操作完成前或資料發生衝突時,匯入公用程式會提示您回答以下項目:
確認警告訊息 – 以下訊息要求您確認匯入操作。
正在使用的資料由 <user name> 於 <mm/dd/yyyy> 匯出。 匯入操作將修改您的拓樸資料庫,您確定要這樣做嗎?[是/否] |
輸入 y 表示「是」,或輸入 n 表示「否」。
資料衝突 – 以下訊息要求您決定如何處理衝突的資料。
實體 <entity name> 已存在於您的拓樸階層結構中,您要將其取代嗎? [取代(r)/取代全部(a)/忽略(i)/忽略全部(g)/停止(s)] |
此訊息的回應值包括以下選項:
用新值取代衝突的資料
用新值取代所有衝突的資料
不更新衝突的資料
忽略所有衝突,並且不作任何變更
停止匯入操作
本節說明可能會作為匯入指令結果出現的訊息。
匯入:完成。
成功。
描述:操作成功完成。
filename: 無此文件。
檔案不存在。
描述:指定的檔案不存在。 指令行可能使用了兩個檔案: 一個提供匯入資料來源的資料檔,以及一個提供參數清單的參數檔。
匯入: 無法開啟 filename。
許可權拒絕。
描述:檔案無法開啟以供讀取。
匯入: 不支援檔案格式。
格式錯誤。
描述:來源檔不是匯出資料所用的有效資料庫檔案。
匯入:檔案過時(xx 天)。
資料過時。
描述:您使用的資料已過時。
匯入:認證失敗。
認證失敗。
描述:目前使用者沒有在拓樸階層結構中建立物件的權限。
匯入:錯誤的參數檔。
參數檔錯誤。
描述:參數檔應為 name = value 組的清單。 如果格式不正確,應用程式將產生錯誤訊息,並停止作業。
匯入:非法的參數 - < para>。
請使用 -h 選項來取得用法。
非法的參數。
描述:已將非法的參數傳入匯入操作。請使用 import -h 檢視可用的選項和參數。
export 指令可將一個領域或所有領域的拓樸資料儲存到一個檔案中。
export 指令可接受以下參數:
comment 參數的值為要包含在檔案中的附註。
domain 參數的值為要匯出的拓樸所屬領域的名稱。如果未指定領域,將匯出所有領域。
filename 參數的值為應該將拓樸資訊匯出至其中的檔案之名稱。
mode 參數的值決定如何將拓樸資訊加入檔案。如果值為 append , 則將資料附加到檔案內容中。 如果值為 overwrite,則將以新的資料取代檔案先前的內容。
validity 參數的值為資料有效的時間長度(以天計)。以下值為有效性參數的合法值:
Unlimited
7
15
30
90
在以下範例中,將 Default Domain 儲存到名為 snapshot 的檔案中。snapshot 的原始內容將被新的資料覆寫。假設新資料的有效期不受限制。註解指定此資料用於系統測試群組。
> export filename=/home/examples/snapshot \ domain="Default Domain" mode=overwrite validity=Unlimited \ comment="System Test Group" |
呼叫匯出指令後,會要求您輸入註解。提示符號為 >。按 Return 鍵可斷行。按兩下 Return 鍵可結束註解。
> export -p domain=ALL mode=append <return> 請為匯出輸入註解: > Comment text line 1 <Return> > Comment text line 2 <Return> > <Return> < 狀態 = 正常 訊息 = 完成。 > |
以下清單顯示可能會作為匯出指令結果出現的訊息。
匯出:完成。
成功。
描述:操作成功完成。
匯出:無法開啟 file。
檔案不存在。
描述:參數檔不存在。
filename:許可權拒絕。
檔案錯誤。
描述:無法建立或開啟檔案以供寫入。
匯出:不支援檔案格式。
格式錯誤。
描述:當將匯出資料附加到無效的匯出資料檔時,會發生錯誤。
匯出:領域 < domainname> 不存在
物件錯誤。
描述:您要匯出的領域不存在。
匯出:錯誤的參數檔。
參數檔錯誤。
描述:參數檔包含 name = value 組的清單。 如果檔案格式不正確,應用程式將通知您,並停止作業。
匯出:目前使用者與上一位不同。
使用者衝突。
描述:當您嘗試將資料覆寫或附加到他人建立的現有資料檔時,會發生錯誤。您無法修改或覆寫其他使用者建立的匯出資料。
匯出:資料過時。
資料太舊。
描述:您使用的匯出檔案已過時。只有當您以附加模式匯出資料時,才會出現此訊息。
匯出:非法的參數 - < para>。
請使用 -h 選項來取得用法。
非法的參數。
描述:已將非法的參數傳入匯出操作。
以下清單可辨別匯入和匯出公用程式處理的拓樸資料。
有關各個領域、群組及主機的記錄資訊。
有關領域與群組的修飾資訊。修飾資訊僅包含佈局和背景索引,而不包含背景內容。例如,有關背景的資訊僅包含 GIF 檔案名稱,而不包含 GIF 檔案。
關係資訊說明拓樸階層結構、實體背景和佈局。
匯入/匯出檔案說明匯入資料和匯出資料。您可以使用任何文字編輯程式來編輯此檔案。此檔案包含拓樸階層結構中各個實體的相關資訊。因為附加匯出模式可將更多的物件資訊附加到檔案中,因此該格式易於延伸和分析。匯出的資料以 XML 格式儲存。
檔案分為四個部份:
Magic 資訊
DTD(文件類型聲明)
標頭資訊
資料區塊
Magic 資訊可識別此檔案為 XML 格式檔案。通常,此資訊顯示如下:
<? XML version = 1.0 ?> |
DTD 資訊定義文件的架構。匯出檔案的 DTD 類似以下範例。
<!ELEMENT ENTITY (ENTITY* ADORNMENT*)> /* Entity element describes a entity. If it is a group, it may contain groups and adornment. */ <!ATTLIST ENTITY /* Entity attributes */ desc CDATA full_desc CDATA hostname CDATA ip CDATA netmask CDATA architecture CDATA family CDATA polling_type CDATA url CDATA x_coord CDATA y_coord CDATA topology_type CDATA event_dest CDATA trap_dest CDATA target_host CDATA target_ip CDATA read_info CDATA write_info CDATA> <!ELEMENT ADORNMENT> <!ATTLIST ADORNMENT x_coord CDATA y_coord CDATA type CDATA configuration CDATA> ]> |
標頭資訊用於記錄一般資訊,例如:
使用者
資料
版本
平台
產品
資料區塊包含拓樸階層結構架構和實體。
下圖為新的領域拓樸的圖解。
此範例顯示新的領域的拓樸匯出檔案。
<?xml version="1.0" encoding="UTF-8"?> <DOCUMENT> <HEAD> <USER>jkang</USER> <DATE>1/7/1999</DATE> <VALIDITY>7 days</VALIDITY> <PRODUCT>Sun Management Center</PRODUCT> <VERSION>3.0</VERSION> <COMMENTS>This is an example.</COMMENTS> </HEAD> <DOMAIN name="my new"> <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" family="sun4u-Sun-Ultra-30" fulldesc="wizard" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="23" yCoord="39" /> <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-2" family="sun4u-Sun-Ultra-30" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" type="" writeInfo="" xCoord="75" yCoord="39" /> <ENTITY arch="" config="" desc="campus" entityId="e-3" family="campus-view" fulldesc="" hostname="" ipAddr="" isPoll="true" isSoftGroupLink="false" netMask="" pollType="aview" readInfo="espublic" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:164/mod/topology+view-101" type="" writeInfo="" xCoord="27" yCoord="111"> <ENTITY arch="" config="" desc="building" entityId="e-1" family="building-view" fulldesc="" hostname="" ipAddr="" isPoll="true" isSoftGroupLink="false" netMask="" pollType="aview" readInfo="espublic" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:164/mod/topology+view-102" type="" writeInfo="" xCoord="" yCoord=""> <ENTITY arch="SunOS 5.8" config="" desc="Wizard" entityId="e-1" family="sun4u-Sun-Ultra-30" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> <ENTITY arch="SunOS 5.8" config="" desc="aaa" entityId="e-2" family="sun4u-Sun-Ultra-30" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-3" family="sun4u-Sun-Ultra-30" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> </ENTITY> </ENTITY> <ENTITY arch="" config="" desc="129.158.0.0" entityId="e-4" family="network-view" fulldesc="129.158.0.0" hostname="129.158.0.0" ipAddr="129.158.0.0 isPoll="true" isSoftGroupLink="false" netMask="255.255.255.0" pollType="aview" readInfo="espublic" targetHost="129.158.0.0" targetIp="129.158.0.0" targetUrl="snmp://129.158.168.63:164/mod/topology+view-103" type="" writeInfo="" xCoord="38" yCoord="181"> <ENTITY arch="" config="" desc="129.158.168.0" entityId="e-1" family="subnetwork-view" fulldesc="129.158.168.0" hostname="129.158.168.0" ipAddr="129.158.168.0" isPoll="true" isSoftGroupLink="false" netMask="255.255.255.0" pollType="aview" readInfo="espublic" targetHost="129.158.168.0" targetIp="129.158.168.0" targetUrl="snmp://129.158.168.63:164/mod/topology+view-104" type="" writeInfo="" xCoord="" yCoord=""> <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" family="sun4u-Sun-Ultra-30" fulldesc="SUNW,Ultra-30" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="public" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> </ENTITY> </ENTITY> <ENTITY arch="" config="" desc="myworkstation" entityId="e-5" family="nonagent-sun4u-Sun-Ultra30" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="" pollType="snmp" readInfo="public" targetHost="" targetIp="" targetUrl="snmp://wizard:1100/oid//1.3.6.1.2.1.1.7.0" type="" writeInfo="private" xCoord="52" yCoord="253" /> <ENTITY arch="SunOS 5.8" config="" desc="System Group" entityId="e-6" family="base-agent" fulldesc="MIB tree branch" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="amod" readInfo="" targetHost="wizard" targetIp="129.158.168.63" targetUrl="snmp://129.158.168.63:1100/mod/mib2-simple/system" type="" writeInfo="" xCoord="52" yCoord="329" /> <ADORNMENT Config="bus" Id="adorn-7" Type="layout" XCoord="0" YCoord="0" /> </DOMAIN> </DOCUMENT>