windows7,windows server2008靜默安裝配置oracle11g(服務器版)


  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靜默安裝,數據安裝通常分為以下部分:

  1. 錄制響應文件(僅安裝軟件)
  2. 執行靜默安裝
  3. 配置監聽器
  4. 創建模板
  5. 建立數據庫實例
  6. 創建用戶及表空間
  7. 配置數據

下面就此對上面的步驟展開

一、錄制響應文件

  使用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

  批處理代碼見下:

View Code
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文件夾下的同名文件,然后自己修改)

View Code
  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同名文件下。

五、創建數據庫實例

View Code
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

做完以上這些后,數據庫軟件基本上算是配置完成。但是我們想要我們自己的數據表及空間,所以我們還要做以下幾個工作。

六、創建用戶及表空間

  在這一步,我們將創建用戶及表空間及向用戶授權。你可以根據自己需要配置你自己的數據表及權限。

  下面代碼只供參考:

View Code
@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中數據表與用戶是密切相關的,用系統管理員登陸,你會看不到數據。因此此處千萬不要以管理員身份登陸。 

View Code
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

到此,靜默創建數據庫(含表數據)算是全面了。我們只需要把上面的分步合起來,形成一個完整的批處理代碼,那么即可一步創建成功。       
完整的批處理代碼見下:(全程大約半個小時)

View Code
@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)

 

當然在你制作靜默安裝中,可能還會遇到其他問題,歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM