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)

 

当然在你制作静默安装中,可能还会遇到其他问题,欢迎留言。

posted @ 2012-12-28 13:01  thickThinker  阅读(4159)  评论(2编辑  收藏  举报