oracle11g是現在很多企業通用的分布步海量數據解決方案。它的介發紹作為開發人員大家想必都知道,不多說了,這里只說他的靜默安裝。至於為什么要靜默安裝呢?如果不懂,自己也可以上網搜搜,為了節約大家的寶貴時間,這里不作介紹,直入正題。
既然在windows上安裝,就要先預設檢查安裝條件,對於oracle11g來說,默認在winodows7,server 2008是通不過的,使用界面安裝也一樣,我們必須進行手動處理,否則會提示先決條件檢查失敗的錯誤是,軟件就不能進行下一步了。現在我們要做的就是找到..\database\stage\prereq\db下找到“refhost.xml”文件后,
最好是用EditPlus 3打開(學習.net你最好是把這個軟件安裝上,很好用的!)在打開之后我們找到如下代碼:添加紅色部分
1 <CERTIFIED_SYSTEMS> 2 <OPERATING_SYSTEM> 3 <VERSION VALUE="5.0"/> 4 <SERVICE_PACK VALUE="1"/> 5 </OPERATING_SYSTEM> 6 <OPERATING_SYSTEM> 7 <VERSION VALUE="5.1"/> 8 <SERVICE_PACK VALUE="1"/> 9 </OPERATING_SYSTEM> 10 <OPERATING_SYSTEM> 11 <VERSION VALUE="5.2"/> 12 </OPERATING_SYSTEM> 13 <!--Microsoft Windows Vista--> 14 <OPERATING_SYSTEM> 15 <VERSION VALUE="6.0"/> 16 </OPERATING_SYSTEM> 17 <!--Microsoft Windows 7--> 18 <OPERATING_SYSTEM> 19 <VERSION VALUE="6.1"/> 20 </OPERATING_SYSTEM> 21 </CERTIFIED_SYSTEMS>
由於windows 7與server2008都是基於6.1內核,在上面文件添加相同。故也可用上面的直接代替。
在sever2008上那段文字是下面,你也可以直接用上面的就行。在此貼出代碼只是讓你作個對比。
<!--Microsoft Windows 2008--> <OPERATING_SYSTEM> <VERSION VALUE="6.1"/> </OPERATING_SYSTEM>
作好了上面的預設條件更改后,我們就可以繼續向下進行靜默安裝處理了。
對於oracle11g靜默安裝,數據安裝通常分為以下部分:
- 錄制響應文件(僅安裝軟件)
- 執行靜默安裝
- 配置監聽器
- 創建模板
- 建立數據庫實例
- 創建用戶及表空間
- 配置數據
下面就此對上面的步驟展開
一、錄制響應文件
使用OUI錄制rsp響應文件,記錄安裝過程。(實質上在數據庫有一個response文件夾,里面就是一些定義好的響應文件,自己可以直接拿來修改用,不了解的暫且用我說的方法錄制)
在與你setup.exe文件相同的同一文件里建立一個批處理文件,名字自己取,文件代碼如下:
@echo off
setup -record -destinationFile E:\respnse_Files\install_oracle_11g_only.rsp
運行該批處理,你就可以在E:\respnse_Files\(我這里設置的是這個位置)找到install_oracle_11g_only.rsp響應文件,里面記錄一些安裝配置參數。
注意:錄制過程中選擇只安裝數據庫軟件不創建數據庫;當安裝界面到達最后一步時出現摘要界面選擇取消即可。
二、執行靜默安裝
見執行靜默安裝的批處理代碼,然后自己運行,即可以靜默安裝。我們的安裝目錄在1步驟的響應文件中(假設我的安裝目錄是:D:\luoyangVision\oracle),后面可能用到。
@echo off time/t setlocal echo 系統將為你安裝oracle_11g軟件,請耐心等候... echo.啟動安裝... %cd%\setup.exe -silent -ignoreSysprereqs -force -waitforcompletion -responseFile %cd%\install_oracle_11g.rsp -nowait
三、 使用Netca配置listener
批處理代碼見下:

1 @echo off 2 3 @set OH=D:\luoyangVision\oracle\product\11.1.0\db_1 4 5 call %OH%\BIN\netca /silent /orahome %OH% /cfg local /responseFile %cd%\netca.rsp 6 7 if %ERRORLEVEL% == 0 echo netca網絡配置成功! 8 pause
netca.rsp響應文件見代碼(也可以直接復制response文件夾下的同名文件,然后自己修改)

1 ############################################################### 2 ## Copyright(c) Oracle Corporation 2002. All rights reserved.## 3 ## ## 4 ## Specify values for the variables listed below to customize## 5 ## your installation. ## 6 ## ## 7 ## Each variable is associated with a comment. The comment ## 8 ## identifies the variable type. ## 9 ## ## 10 ## Please specify the values in the following format: ## 11 ## ## 12 ## Type Example ## 13 ## String "Sample Value" ## 14 ## Boolean True or False ## 15 ## Number 1000 ## 16 ## StringList {"String value 1","String Value 2"} ## 17 ## ## 18 ############################################################### 19 ## ## 20 ## This sample response file causes the Oracle Net ## 21 ## Configuration Assistant (NetCA) to complete an Oracle Net ## 22 ## configuration during a custom install of the Oracle10i ## 23 ## server which is similar to what would be created by the ## 24 ## NetCA during typical Oracle10i install. It also documents ## 25 ## all of the NetCA response files variables so you can ## 26 ## create your own response file to configure Oracle Net ## 27 ## during an install the way you wish. ## 28 ## ## 29 ############################################################### 30 31 [GENERAL] 32 RESPONSEFILE_VERSION="11.1" 33 CREATE_TYPE= "CUSTOM" 34 35 #------------------------------------------------------------------------------- 36 # Name : SHOW_GUI 37 # Datatype : Boolean 38 # Description: This variable controls appearance/suppression of the NetCA GUI, 39 # Pre-req : N/A 40 # Default : TRUE 41 # Note: 42 # This must be set to false in order to run NetCA in silent mode. 43 # This is a substitute of "/silent" flag in the NetCA command line. 44 # The command line flag has precedence over the one in this response file. 45 # This feature is present since 10.1.0.3. 46 #------------------------------------------------------------------------------- 47 #***********************************************************# 48 #SHOW_GUI=false 49 SHOW_GUI=false 50 #***********************************************************# 51 52 #------------------------------------------------------------------------------- 53 # Name : LOG_FILE 54 # Datatype : String 55 # Description: If present, NetCA will log output to this file in addition to the 56 # standard out. 57 # Pre-req : N/A 58 # Default : NONE 59 # Note: 60 # This is a substitute of "/log" in the NetCA command line. 61 # The command line argument has precedence over the one in this response file. 62 # This feature is present since 10.1.0.3. 63 #------------------------------------------------------------------------------- 64 #LOG_FILE=""/oracle10gHome/network/tools/log/netca.log"" 65 66 [oracle.net.ca] 67 #INSTALLED_COMPONENTS;StringList;list of installed components 68 # The possible values for installed components are: 69 # "net8","server","client","aso", "cman", "javavm" 70 INSTALLED_COMPONENTS={"server","net8","javavm"} 71 72 #INSTALL_TYPE;String;type of install 73 # The possible values for install type are: 74 # "typical","minimal" or "custom" 75 INSTALL_TYPE=""typical"" 76 77 #LISTENER_NUMBER;Number;Number of Listeners 78 # A typical install sets one listener 79 LISTENER_NUMBER=1 80 81 #LISTENER_NAMES;StringList;list of listener names 82 # The values for listener are: 83 # "LISTENER","LISTENER1","LISTENER2","LISTENER3", ... 84 # A typical install sets only "LISTENER" 85 LISTENER_NAMES={"LISTENER"} 86 87 #LISTENER_PROTOCOLS;StringList;list of listener addresses (protocols and parameters separated by semicolons) 88 # The possible values for listener protocols are: 89 # "TCP;1521","TCPS;2484","NMP;ORAPIPE","IPC;IPCKEY","VI;1521" 90 # A typical install sets only "TCP;1521" 91 LISTENER_PROTOCOLS={"TCP;1521"} 92 93 #LISTENER_START;String;name of the listener to start, in double quotes 94 LISTENER_START=""LISTENER"" 95 96 #NAMING_METHODS;StringList;list of naming methods 97 # The possible values for naming methods are: 98 # LDAP, TNSNAMES, ONAMES, HOSTNAME, NOVELL, NIS, DCE 99 # A typical install sets only: "TNSNAMES","ONAMES","HOSTNAMES" 100 # or "LDAP","TNSNAMES","ONAMES","HOSTNAMES" for LDAP 101 NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"} 102 103 #NOVELL_NAMECONTEXT;String;Novell Directory Service name context, in double quotes 104 # A typical install does not use this variable. 105 #NOVELL_NAMECONTEXT = ""NAMCONTEXT"" 106 107 #SUN_METAMAP;String; SUN meta map, in double quotes 108 # A typical install does not use this variable. 109 #SUN_METAMAP = ""MAP"" 110 111 #DCE_CELLNAME;String;DCE cell name, in double quotes 112 # A typical install does not use this variable. 113 #DCE_CELLNAME = ""CELL"" 114 115 #NSN_NUMBER;Number;Number of NetService Names 116 # A typical install sets one net service name 117 NSN_NUMBER=1 118 119 #NSN_NAMES;StringList;list of Net Service names 120 # A typical install sets net service name to "EXTPROC_CONNECTION_DATA" 121 NSN_NAMES={"EXTPROC_CONNECTION_DATA"} 122 123 #NSN_SERVICE;StringList;Oracle10i database's service name 124 # A typical install sets Oracle10i database's service name to "PLSExtProc" 125 NSN_SERVICE = {"PLSExtProc"} 126 127 #NSN_PROTOCOLS;StringList;list of coma separated strings of Net Service Name protocol parameters 128 # The possible values for net service name protocol parameters are: 129 # "TCP;HOSTNAME;1521","TCPS;HOSTNAME;2484","NMP;COMPUTERNAME;ORAPIPE","VI;HOSTNAME;1521","IPC;IPCKEY" 130 # A typical install sets parameters to "IPC;EXTPROC" 131 NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
四,創建實例模板
運行dbca工 具,根據實際情況配置步驟 1 - 13 界面上提示,
在界面步驟 14:去掉“創建數據庫的”的勾選,選擇“另存為數據庫模板”,名稱輸入orcl
點擊完成,此時會生成模板文件../assistants/dbca/templates/orcl.dbc(在安裝文件的這個目錄下找),把模板復制一份,假設我們文件復制都放在你setup.exe同名文件下。
五、創建數據庫實例

1 @echo off 2 echo oracle開始創建數據庫orcl實例並配置... 3 call %OH%\BIN\dbca -silent -createDatabase -templateName %cd%\orcl.dbc -gdbname "orcl" -sid "orcl" -emConfiguration LOCAL -sysPassword "system" -systemPassword "system" -DBSNMPPASSWORD "system" -SYSMANPASSWORD "system" 4 if %ERRORLEVEL% == 0 echo oracle創建數據庫orcl實例並配置成功! 5 if %ERRORLEVEL% == 1 echo oracle創建數據庫orcl實例並配置失敗!請手動運行dbca靜默建庫.bat
做完以上這些后,數據庫軟件基本上算是配置完成。但是我們想要我們自己的數據表及空間,所以我們還要做以下幾個工作。
六、創建用戶及表空間
在這一步,我們將創建用戶及表空間及向用戶授權。你可以根據自己需要配置你自己的數據表及權限。
下面代碼只供參考:

@echo off echo 正在安裝配置用戶及表空間... call %OH%\BIN\sqlplus.exe system/system@//localhost:1521/orcl as SYSDBA @CreatTableSpaceAndUser.sql if %ERRORLEVEL% == 0 echo oracle配置用戶及表空間成功! if %ERRORLEVEL% == 1 echo oracle配置用戶及表空間失敗!請手動運行
其中@CreatTableSpaceAndUser.sql即為你要創建的數據表空間,用戶,授權的SQl語句。表空間即類似為我們其他數據庫庫中數據庫名稱。
注意:創建表空間,我們要以Sysdba的身份登陸,在這里我們借用數據庫自帶的SQlplus工具創建。
七、向表空間配置數據
在步驟六中,我們以系統管理員的用戶登陸,創建用戶。此處我們即以上面創建的用戶角色登陸(注意上步的授權),配置數據,因為在oracle中數據表與用戶是密切相關的,用系統管理員登陸,你會看不到數據。因此此處千萬不要以管理員身份登陸。

1 @echo off 2 echo 正在安裝配置電力系統EICS數據表... 3 call %OH%\BIN\sqlplus.exe 用戶名/密碼@//localhost:1521/orcl @CreateTable20120921.sql 4 if %ERRORLEVEL% == 0 echo oracle11g安裝配置電力系統EICS數據表成功! 5 if %ERRORLEVEL% == 1 echo oracle11g安裝配置電力系統EICS數據表失敗!請手動運行CreateDataBase.bat
到此,靜默創建數據庫(含表數據)算是全面了。我們只需要把上面的分步合起來,形成一個完整的批處理代碼,那么即可一步創建成功。
完整的批處理代碼見下:(全程大約半個小時)

@echo off color 0a echo 系統將為你安裝oracle_11g軟件,請耐心等候... echo %date% %time% echo.啟動安裝... ..\setup.exe -silent -force -waitforcompletion -responseFile %cd%\install_oracle_11g.rsp -nowait if %ERRORLEVEL% == 0 echo.oracle11g數據庫軟件安裝完成 echo %date% %time% rem 延時器,等待安裝或者配置完全就緒 set a=. set /p =.< nul for /l %%i in (1,1,30) do ( set /p =%a%< nul choice /t 1 /d y /n >nul) echo . echo oracle開始配置網絡監聽... @set OH=D:\luoyangVision\oracle\product\11.1.0\db_1 call 設置ORACLE_HOME變量.vbs %OH% echo. @set PATH=%OH%\BIN;%PATH% REM echo %PATH% call %OH%\BIN\netca /silent /responseFile %cd%\netca.rsp if %ERRORLEVEL% == 0 echo netca網絡配置成功! if %ERRORLEVEL% == 1 (echo netca網絡配置失敗!請手動netca配置) echo %date% %time% set /p =.< nul for /l %%i in (1,1,10) do ( set /p =%a%< nul choice /t 1 /d y /n >nul) echo . echo oracle開始創建數據庫orcl實例並配置... call %OH%\BIN\dbca -silent -createDatabase -templateName %cd%\orcl.dbc -gdbname "orcl" -sid "orcl" -emConfiguration LOCAL -sysPassword "system" -systemPassword "system" -DBSNMPPASSWORD "system" -SYSMANPASSWORD "system" if %ERRORLEVEL% == 0 echo oracle創建數據庫orcl實例並配置成功! if %ERRORLEVEL% == 1 echo oracle創建數據庫orcl實例並配置失敗! echo %date% %time% set /p =.< nul for /l %%i in (1,1,10) do ( set /p =%a%< nul choice /t 1 /d y /n >nul) echo . echo oracle開始創建用戶及大文件表空間... echo 正在安裝配置用戶及表空間... call %OH%\BIN\sqlplus.exe system/system@//localhost:1521/orcl as SYSDBA @CreatTableSpaceAndUser.sql if %ERRORLEVEL% == 0 echo oracle配置用戶及表空間成功! if %ERRORLEVEL% == 1 echo oracle配置用戶及表空間失敗!請手動運行CreateDataBase.bat echo 正在安裝配置電力系統EICS數據表... call %OH%\BIN\sqlplus.exe XX/password@//localhost:1521/orcl @CreateTable20120921.sql if %ERRORLEVEL% == 0 echo oracle11g安裝配置電力系統EICS數據表成功! if %ERRORLEVEL% == 1 echo oracle11g安裝配置電力系統EICS數據表失敗!請手動運行CreateDataBase.bat echo. :end echo. pause
常見錯誤1:DBCA錯誤,無法定位輸入點nzdacvalue於動態連接庫orazt1.dll上?
處理:需要配置環境變量oracle_home,這個我們已在批處理中設置了,批處理變量中優先於系統中環境變量,因此環境變量可以不設置,但是如果批處理中沒有覆蓋系統環境變量的話,運行時你就要設置。
常見錯誤2:oracle系統標識符已經存在,請指定另一個ID?(尤其重裝的情況下)
處理:cmd下運行 oradim -delete -sid xxxx (這里的XXX為你之前創建的ID)
當然在你制作靜默安裝中,可能還會遇到其他問題,歡迎留言。