拓樸匯入和匯出公用程式可讓您從使用 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 |
在操作完成前或資料發生衝突時,匯入公用程式會提示您回答以下項目:
確認警告訊息 – 以下訊息要求您確認匯入操作。
The data being used is exported by <user name> on <mm/dd/yyyy>. The import operation will modify your topology database, are you sure you want to do this? [Yes/No] |
輸入 y 表示「是」,或輸入 n 表示「否」。
本節說明可能會作為匯入指令結果出現的訊息。
匯入:Results 1/1
State=Success
Message=The topology data is successfully imported.
原因:成功。
說明:作業成功完成。
filename:No such file.
原因:檔案不存在。
說明:指定的檔案不存在。指令行可能使用了兩個檔案:一個提供匯入資料來源的資料檔,以及一個提供參數清單的參數檔。
import: Cannot open filename.
原因:許可權遭拒。
說明:檔案無法開啟以供讀取。
import: File format is not supported.
原因:格式錯誤。
說明:來源檔不是匯出資料所用的有效資料庫檔案。
import: File out-of-date (xx days).
原因:資料過時。
說明:您使用的資料已過時。
import: Authentication failed.
原因:驗證失敗。
說明:目前使用者沒有在拓樸階層結構中建立物件的權限。
import: Wrong parameter file.
原因:參數檔錯誤。
說明:參數檔應為 name = value 組的清單。如果格式不正確,應用程式將產生錯誤訊息,並停止作業。
import: illegal parameter - <para>.
Use -h option to get usage.
原因:非法的參數。
說明:已將非法的參數傳入匯入操作。請使用 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" |
以下清單顯示可能會作為匯出指令結果出現的訊息。
Export: Results 1/1
State=Success
Message=The topology data is successfully exported.
原因:成功。
說明:作業成功完成。
export: Cannot open file.
原因:檔案不存在。
說明:參數檔不存在。
filename: Permission denied.
原因:檔案錯誤。
說明:無法建立或開啟檔案以供寫入。
export: File format not supported.
原因:格式錯誤。
說明:當將匯出資料附加到無效的匯出資料檔時,會發生錯誤。
export: The domain <domainname > does not exist
原因:物件錯誤。
說明:您要匯出的網域不存在。
export: Wrong parameter file.
原因:參數檔錯誤。
說明:參數檔包含 name = value 組的清單。如果檔案格式不正確,應用程式將通知您,並停止作業。
export: The current user is different from the last one.
原因:使用者衝突。
說明:當您嘗試將資料覆寫或附加到他人建立的現有資料檔時,會發生錯誤。您無法修改或覆寫其他使用者建立的匯出資料。
export: Data is out-of-date.
原因:資料太舊。
說明:您使用的匯出檔案已過時。只有當您以附加模式匯出資料時,才會出現此訊息。
export: illegal parameter - <para>.
Please use -h option to get usage.
原因:非法的參數。
說明:已將非法的參數傳入匯出操作。
以下清單可辨別匯入和匯出公用程式處理的拓樸資料。
有關各個網域、群組及主機的記錄資訊。
有關網域與群組的修飾資訊。修飾資訊僅包含佈局和背景索引,而不包含背景內容。例如,有關背景的資訊僅包含 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.6</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-2" fulldesc="wizard" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 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-2" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 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-2" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 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-2" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 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-2" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 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-2" fulldesc="SUNW,Ultra-2" 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>