此頁面需要使用啟用命令檔的瀏覽器才能正常顯示。

常見問題

此主題回答使用者對於 Oracle Universal Installer 使用方面所提出的一些常見問題。此 FAQ 中的問題和回答共分為下列幾個類別:

使用動作

使用 Oracle Universal Installer

使用查詢

暫存元件

使用相依性

使用檔案和檔案群組

使用變數

翻譯版本注意事項

使用對話方塊

多個磁碟安裝

執行無訊息作業

解除安裝有相依性的頂層元件


使用動作

是否可以在某個程式碼區塊中呼叫動作?

不可以。您不能在程式碼區塊內呼叫動作。

Universal Installer 在不同平台執行安裝時,如何處理特定平台的動作?

某些動作是針對特定平台的動作。OSP 隨附的動作僅適用於 Windows 和 Solaris 平台。不適用於特定平台的動作會在安裝時被忽略,而不適用於特定平台的查詢則會傳回預設值。

有沒有建立或擷取 .exe 檔案的動作?

OUI 目前沒有可以建立或執行自動解壓縮 (.exe) 檔案的動作。請將自動解壓縮檔案的內容新增到檔案群組,然後使用 copyGroup 動作來複製檔案。如果使用此程序,解除安裝時將會移除所有檔案。安裝執行檔後,就可以使用產生動作來執行。

解除安裝如何運作?

每個動作都有一個定義的還原函數,在解除安裝時會以反向執行。您可以指定讓動作在安裝時、安裝和解除安裝時,或只在解除安裝時執行。各個指定為在解除安裝時執行的動作,會在元件的日誌中新增一個項目。進行解除安裝時,日誌會與動作的解除安裝方法一起反向執行。

何謂安裝程式動作日誌?

動作日誌是依階段作業來寫入的。每當一個新的安裝階段作業開始時,系統就會建立安裝程式動作日誌。安裝程式動作日誌中會記錄每個動作執行的作業,以及動作發生的時機是在安裝時或是解除安裝時。每個階段作業均儲存在 installActionstime_stamp.log 檔案中,其中 time_stamp 的格式為:

yyyy-mm-dd_hh-mm-ss[AM|PM].log

.err 和 .out 檔案也會在它們的檔案名稱中使用時戳,以便於持續追蹤每個階段作業的這些檔案。

要如何產生 SQL 命令?

您可以使用 spawn 動作來產生 SQL 命令。

例如,若要在安裝時建立兩個表格,您可以使用 ct.sql SQL 命令檔,包含下列各行:

create table &1 (col1 number, col2 number);
create table &2 (col1 number, col2 number);
exit;

若要在安裝時使用 SQL Plus 以 spawn 動作來建立 foo1 和 foo2 表格,其「安裝命令」參數如下:

在 Windows NT、95 或 98 系統中,請使用下列其中一項:

sqlplusw system/manager @x:/directory/ct.sql foo1 foo2
cmd /c sqlplus system/manager @x:/directory/ct.sql foo1 foo2 (僅適用於 NT)
command /c sqlplus system/mamager @x:/directory/ct.sql foo1.foo2 (Win 95/98)
sqlplus system/manager @x:/directory/ct.dql foo1 foo2 (UNIX)

若要在安裝時啟動 Oracle 資料庫,您可以使用 db.startup 命令檔,包含下列各行:

connect internal
startup
exit;

如果使用 spawn 動作,「安裝命令」參數如下 (如果「伺服器管理程式」行模式在系統路徑中):

在 UNIX 命令行:

svrmgr1 command=@/private1/Directory/db.startup

在 DOS 命令行:

svrmgr1 @/private1/Directory/db.startup

若要關閉資料庫,您可以使用 db.shutdown 命令檔,包含下列各行:

connect internal
shutdown immediate
exit;

如果使用 spawn 動作,「安裝或解除安裝命令」參數如下 (如果「伺服器管理程式」行模式在系統路徑中):

在 UNIX 命令行:

svrmgr1 command=@/private1/Directory/db.shutdown

在 DOS 命令行:

svrmgr1 @/private1/Directory/db.shutdown

使用查詢

是否可以使用查詢擷取 ORACLE_HOME 產品目錄?

您可以使用 RgsQueries 來測試使用舊版 OUI 安裝的產品。您可以使用 AreasQueries 來測試使用 OUI 安裝的產品。目前沒有查詢可以傳回 Oracle 本位目錄中安裝的所有產品清單。

使用相依性

要如何建立共用相同檔案的兩個元件?

若要建立共用相同檔案的兩個元件,其中一種方法便是建立包含共用檔案的個別元件。兩個元件對於共用檔案的元件會有相依性。若安裝了兩個元件之一,則會安裝此個別元件。當解除安裝其他兩個元件且沒有元件相依於此元件時,也會解除安裝此個別元件。

相依元件和被依附元件有何差別?

相依元件通常是頂層元件,會依存於下層元件 (被依附項)。相依元件必須等到它的所有被依附元件都安裝之後才能夠安裝。

例如:如果元件 A (必要或選擇性) 需要安裝元件 B 才能正常運作,那麼 A 就依存於 B。在此情況下,A 是相依項,B 是被依附項。

何謂循環相依性?

如果被依附元件依存於原來的相依元件,就會發生循環相依性。例如,如果 A 依存於 B,B 依存於 C,而 C 依存於 A,就有循環相依性存在。在個別階段作業編輯元件並指定相依性時,就可能發生此情況。「暫存驗證程式」會檢查是否有循環相依性。

OUI 不支援循環相依性。

使用變數

如何匯出公用變數?

您可以透過變數關聯,讓相依元件中的變數與被依附元件中的變數建立關聯。您必須將 B 中的變數 foo 與 A 中對應的公用變數建立關聯。必要條件是這兩個變數均需標記為「公用」且屬於相同類型。

例如,如果「元件 A」依存於「元件 B」,且元件 B 有 foo 公用變數,則可以匯出「元件 A」中的變數,作為「元件 B」中的 foo 值。

如何指定字串給程式碼區塊中的數值變數?

請使用 parseInt 函數將字串轉換成數值。因為函數不會導致異常狀況,所以如果傳送的字串不是代表有效的整數,則 parseInt 函數會傳回 0。

如何在組態輔助程式規格檔中使用變數?

請依下列方式在組態輔助程式規格檔中設定 CLASSPATH 變數:

Name=<類別路徑>
Description=<為這個要啟動的組態設定工具指定所需的類別路徑>

您還需將 CLASSPATH 包含在規格檔之 GENERAL 區段的引數清單中。

使用此規格檔建立組態輔助程式時,install/deinstall 引數將會包含 CLASSPATH 引數。您應在此處指定 CLASSPATH,使用與指定動作/查詢/對話方塊/函數的引數時相同形式來指定。

注意::因為參數 (-cp) 已是規格的一部分,所以您不需要再指定一次。

在理想的情況下,您應建立下列平台特定常數:

建立常數後,您就可以使用它們來確認傳送到「Java 程式實際執行環境 (JRE)」的類別路徑是否正確,如以下範例所示:

NET8_LOCATION + "/lib/netcfg.jar" + c_sPathSeparator + c_sCLASSPATH

使用對話方塊

如何建立多重項目對話方塊?

「多重項目」對話方塊會顯示使用者定義的提示,以及安裝作業所需的輸入欄位。每個輸入欄位的左側都會顯示一個相關的標籤。輸入欄位共有三種類型:POPDOWN、SECURE 或 TEXTFIELD。這些輸入欄位類型都有區分大小寫,因此必須依照列示輸入。目前每個對話方塊只能有一個 POPDOWN 欄位,供您從可用的選項清單中選擇項目。SECURE 欄位通常是用來輸入密碼。當您必須手動輸入要求的資訊時,則是使用 TEXTFIELD 類型。

子標題欄位顯示什麼內容?

您可以在所有標準對話方塊中指定子標題,直接顯示在標題之下。子標題欄位的預設值是空字串。您可以在「資訊」對話方塊中指定顯示在對話方塊下方的說明文字。說明文字的預設值是空值。

如何驗證密碼?

使用「密碼」對話方塊時,您可以使用對話方塊預設值功能來設定密碼。(對話方塊預設值不會被驗證。)「密碼」對話方塊會執行驗證,檢查您在輸入密碼確認密碼欄位中輸入的值是否相同。這個值會設到接受密碼的變數中。變數驗證方法可以新增其他驗證,例如檢查密碼是否正確等等。

執行無訊息作業

如何在特定元件執行作業?

依照預設,會在 component_table 中所列的每個元件執行作業。如果您只想在特定的元件執行作業,請使用元件鍵從清單選取個別的元件。例如:

範例 Components_Table:

comp0 c:/components/component0.prp component0 "NT,Solaris" 1.0
comp1 c:/components/component1.prp component1 "NT,Solaris" 1.0
comp2 c:/components/component2.prp component2 "NT,Solaris" 1.0
patch3 c:/components/patch3.prp patch1 "NT,Solaris" 1.1

指定元件的命令行範例:

ospSilent c:/myspec.txt -components {comp0, comp1, patch3}

使用 Oracle Universal Installer

要如何在全新的 NT 系統指定 Oracle_Home 欄位的自訂預設值?

您可以在 oraparam.ini 檔案中加上下列項目:

DEFAULT_HOME_LOCATION=/<HomeDirectory>

目錄名稱就會附加到具有最多磁碟可用空間的磁碟機,並使用它作為預設值。這個值只有在全新系統進行安裝時才會用到。

如需有關使用 oraparam.ini 檔案的詳細資訊,請參閱 Oracle Universal Installer Concepts Guide 的 "Troubleshooting" 章節。

進行 UNIX 安裝時如何顯示版本注意事項?

OUI 會在安裝結束時提示您輸入工具或命令來顯示版本注意事項 (如果適用)。如果您想使用 viemacs 來檢視版本注意事項,請在工具名稱前輸入 xterm -e。例如,xterm -e vi 會顯示一個個別的 xterm 視窗,並立即執行 vi <filename> 命令。

OUI 會傳回哪些不同的結束碼?

如需有關結束碼的詳細資訊,請參考 Oracle Universal Installer Concepts Guide

要如何建立回應檔 (含有在某一特定安裝階段作業所做的全部選擇)?

如需有關使用回應檔的詳細資訊,請參考 Oracle Universal Installer Concepts Guide 的 "Customizing and Creating Response Files" 章節。特別是 "Creating a Response File with Record Mode" 小節。

OUI 如何決定其暫時檔的位置?

OUI 會先嘗試 $TEMP 環境變數,如果找不到,再接著嘗試 $TMP;如果還是找不到,即預設為 /tmp (Solaris) 和 C:/Temp (Windows)。

OUI 指定變數值的順序為何?

變數會依下列優先順序設定:

  1. 命令行

  2. 回應檔
  3. 相依元件傳送的順序
  4. 變數的運算

為什麼在 Linux 環境中我除了英文版的 OUI 外,不能呼叫其他語言版本?

如果您不能在 Linux 環境中呼叫英文版以外的其他語言版本 OUI,請使用國家代碼和語言代碼在 Shell 中設定語言設定值。

將語言設定值設定為法文的命令行範例:

setenv LANG fr_FR
setenv LC_ALL fr_FR

為何在叢集系統看不到「節點選擇」頁面?

如果您沒有在叢集系統中看到此頁面,請檢查是否已順利安裝 Oracle Clusterware。如果已順利安裝,請執行 <CRSHome>/bin/olsnodes 來檢查叢集軟體是否已啟動且在執行中。如果 olsnodes 沒有傳回節點清單,OUI 便不會顯示此頁面。這是系統特定問題,不是 OUI 的問題。如果沒有安裝 Oracle Clusterware,且系統是廠商叢集軟體的一部分,請執行 Disk1/install/<平台>/lsnodes 來取得節點清單。如果 lsnodes 沒有傳回節點清單,OUI 便不會顯示此頁面。

為何我看到空 Oracle 本位目錄的「選取的節點」頁面?

如果您已經解除安裝在這個本位目錄的軟體,就會發生這種狀況。因為 OUI 仍然保持這個本位目錄和節點資訊。因此,請自安裝產品目錄對話方塊移除 Oracle 本位目錄 (請參閱線上說明瞭解詳細資訊),然後開始安裝。

為何 OUI 在「可用的產品」頁面或「安裝類型」頁面顯示清單方塊?

可能是提供的選項太多和 (或) 選項的描述太長,而讓單一頁面無法容納清單和描述。如果有三個選項,若要確保能夠顯示圓鈕頁面,則每個選項只能有三行描述。

為何「安裝類型」和「摘要」頁面的大小與 Oracle 本位目錄的實際需求大小不同?

大小是由安裝時所需的空間和已安裝的產品累計而得。通常某些空間 (用於連結) 在安裝完成之後就不需要。如果此大小不正確,安裝開發人員應視需要更新元件中的偏差大小。若要計算實際大小,可以使用 -printdisk 選項執行 OUI,並且確定暫時檔、用於連結的暫存空間、Oracle 本位目錄,以及 Oracle 本位目錄之外的所有檔案 (例如資料庫檔案),都設定在不同的磁碟。OUI 將會在日誌目錄中建立一個檔案,說明每個動作的磁碟使用量。然後,就可以使用最高和結束使用量來設定偏差大小 (安裝、暫時和後續安裝)。

如何除錯安裝階段的錯誤?

如果這是「安裝」階段的問題 (例如在安裝時發生的錯誤),請查看 installActionstime_stamp.log 的上次更新。如果上一個項目是動作或查詢的錯誤,這就是潛在的安裝命令檔問題。安裝開發應該進一步決定修訂問題的優先順序。修訂這些情況之優先順序的秘訣:

如何除錯叢集安裝問題?

如果問題與在遠端節點執行的服務/登錄更新有關,這就是 OUI 問題。OUI 小組將會在收到您針對問題所提供的可重製測試案例後,決定修訂問題的優先順序。OUI 依據大部分叢集作業的 SRVM API。分辨出修訂問題之優先順序後所得的結果將可判斷 OUI 是否沒有正確執行作業,或是屬於 SRVM 問題。OUI 小組將會據此適當的重新指派錯誤。

如何除錯組態輔助程式問題?

暫存元件

嘗試安裝時出現「無法鎖定取得安裝來源區的獨佔寫入存取權」錯誤訊息。

為了避免同時寫入暫存區,暫存區會有一個鎖定。如果您在執行其他暫存階段作業的同時,又嘗試暫存到同一個暫存區,或安裝階段作業嘗試從同一個暫存區進行安裝,就會發生這項錯誤。請檢查您是否在執行某個安裝程式階段作業的同時,又嘗試從同一個暫存區進行暫存。

使用檔案和檔案群組

可以新增到檔案群組的項目數目上限是多少?

您大約可以新增 6000 個檔案到檔案群組。如果檔案群組中的檔案數目超過這個限制,將會同時影響安裝階段的記憶體需求和安裝速度。使用 copyJarContents 動作擷取的 jar 檔案也應該套用相同的限制。

翻譯版本注意事項

要如何含括我元件的翻譯的版本注意事項?

由於所有的版本注意事項都必須包括在檔案對應中,因此您可以新增所有翻譯的版本注意事項檔,並將它們全部標記成要複製到特定的目標位置。您現在就可以建立此檔案的版本注意事項。

建議您將翻譯的 (非英文) 版本注意事項放在個別的檔案群組中,而 copyGroup 動作跟著原始的 copyGroup 動作。

多個磁碟安裝

我有跨多個磁碟的產品。OUI 在安裝此產品時,持續多次要求相同的磁碟。為何會這樣?

請確定「建立多片 CD 作業」是最後一個在暫存區執行的作業。如果您安裝、刪除任何元件,或對暫存區進行其他變更,就必須在 Oracle Software Packager 重新建立多片 CD。同時請檢查下列各項:

解除安裝有被依附項的頂層產品

下列範例使用的頂層元件含有 Oracle Universal Installer 提供之不同類型的被依附項。

測試 1:測試元件是否有「必要的」被依附項類型

設定

建立兩個頂層元件 (A 和 B),每個各有相同的「必要」被依附項 (C)。

安裝

I1a.選擇 A 會安裝 A 與 C。
I1b.之後,選擇 B 僅安裝 B (之前已安裝其被依附項 C)。

解除安裝

D1a.選擇 A 僅解除安裝 A。不會解除安裝 C,因為它是 B 的「必要」被依附項,因此還需要它。
D1b.選擇 A 與 C 會解除安裝 A、B 與 C。同時也會解除安裝 B,因為解除安裝了它的「必要」被依附項 C,無法單獨安裝 B。
D1c.選擇 C 會解除安裝 A、B 與 C。同時也會解除安裝 A 與 B,因為解除安裝了它們的「必要」被依附項 C,無法單獨安裝 A 與 B。

測試 2:測試元件是否有 '1,more' 類型的被依附項

設定

建立兩個頂層元件 (A 和 B),每個各有「相同的」兩個 '1,more' 類型被依附項 (C 和 D)。

安裝測試 2

I2.a. 選擇 A 和兩個被依附項 (C 和 D) 會安裝 A、C 和 D。
I2.b. 之後,選擇 B (沒有 C 和 D) 只會安裝 B。

解除安裝測試 2

D2.a1.選擇 A 僅解除安裝 A。
D2.a2.選擇 A 與一個被依附項 C (在 A 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 B 和 D。

D2.a3.只選擇一個被依附項 C (在 A 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A、B 和 D。

D2.a4.只選擇一個被依附項 D (在 A 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A、B 和 C。

D2.a5.選擇兩個被依附項 C 與 D (在 A 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A 和 B。

D2.b1.選擇 B 僅解除安裝 B。
D2.b2.選擇 B 與一個被依附項 C (在 B 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A 和 D。

D2.b3.只選擇一個被依附項 C (在 B 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A、B 和 D。

D2.b4.只選擇一個被依附項 D (在 B 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A、B 和 C。

D2.b5.選擇兩個被依附項 C 與 D (在 B 之下) 會解除安裝所有的元件 (A、B、C 和 D)。

注意:會解除安裝 A 和 B。

回到頁首