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静默安装,数据安装通常分为以下部分:
- 录制响应文件(仅安装软件)
- 执行静默安装
- 配置监听器
- 创建模板
- 建立数据库实例
- 创建用户及表空间
- 配置数据
下面就此对上面的步骤展开
一、录制响应文件
使用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)
当然在你制作静默安装中,可能还会遇到其他问题,欢迎留言。