静默安装
经常搭建Oracle测试环境,有时候觉得OUI(即图形界面)方式甚是繁琐,你得一步一步进行确认,所幸,Oracle支持静默安装。在我看来,它主要有两方面的好处:一、极大地提升了效率,尤其是批量安装。二、很多时候,只有终端环境可供使用。
一、准备responseFile文件
从Oracle软件中获取文件模板
[oracle@node2 ~]$ cd database/response/
dbca.rsp db_install.rsp netca.rsp
其中database是Oracle软件解压后生成的目录。可见在response目录下有三个模板,其中dbca.rsp是用来创建数据库的。db_install.rsp是用来安装Oracle软件的。netca.rsp是用来创建监听器的。当然也可在db_install.rsp中直接创建数据库。在这里,为求方便,我们选择db_install.rsp模板一并安装软件,创建数据库。
二、编辑responseFile文件
[oracle@node2 ~]$ grep -Ev "^$|^#" db_install.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_AND_CONFIG ORACLE_HOSTNAME=node2.being.com UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oracle/oraInventory SELECTED_LANGUAGES=en ORACLE_HOME=/u01/app/oracle/product/11.2.0.1/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper oracle.install.db.CLUSTER_NODES= oracle.install.db.isRACOneInstall= oracle.install.db.racOneServiceName= oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryOption=true oracle.install.db.config.starterdb.memoryLimit=400 oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL=oracle oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle/fast_recovery_area oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT= DECLINE_SECURITY_UPDATES=true PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= PROXY_REALM= COLLECTOR_SUPPORTHUB_URL= oracle.installer.autoupdates.option=SKIP_UPDATES oracle.installer.autoupdates.downloadUpdatesLoc= AUTOUPDATES_MYORACLESUPPORT_USERNAME= AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
注意部分如上所示,关于每个参数的说明,可参考模板中的解释。
三、 静默安装
[oracle@node2 database]$ ./runInstaller -help
如果对runInstaller的参数不是很了解的话,可通过该命令进行查看。
[oracle@node2 database]$ ./runInstaller -help Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-04-01_10-05-47PM. Please wait ...[oracle@node2 database]$ Usage: runInstaller [-options] [(<CommandLineVariable=Value>)*] Where options include: -clusterware oracle.crs,<crs version> Version of Cluster ready services installed. -crsLocation <Path> Used only for cluster installs, specifies the path to the crs home location. Specifying this overrides CRS information obtained from central inventory. -invPtrLoc <full path of oraInst.loc> Unix only. To point to a different inventory location. The orainst.loc file contains: inventory_loc=<location of central inventory> inst_group=<> -jreLoc <location> Path where Java Runtime Environment is installed. OUI cannot be run without it. -logLevel <level> To filter log messages that have a lesser priority level than <level>. Valid options are: severe, warning, info, config, fine, finer, finest, basic, general, detailed, trace. The use of basic, general, detailed, trace is deprecated. -paramFile <location of file> Specify location of oraparam.ini file to be used by OUI. -responseFile <Path> Specifies the response file and path to use. -attachHome For attaching homes to the OUI inventory. -cfs Indicates that the Oracle home specified is on cluster file system (shared). This is mandatory when '-local' is specified so that Oracle Universal Installer can register the home appropriately into the inventory. -clone For making an Oracle Home copy match its current environment. -debug For getting the debug information from OUI. -detachHome For detaching homes from the OUI inventory without deleting inventory directory inside Oracle home. -enableRollingUpgrade Used in cluster environment, to enable upgrade of a product on a subset of nodes (on which the product was installed). -executeSysPrereqs Execute system pre-requisite checks and exit. -force Allowing silent mode installation into a non-empty directory. -help Displays above usage. -ignoreSysPrereqs For ignoring the results of the system pre-requisite checks. -local Performs the operation on the local node irrespective of the cluster nodes specified. -printdiskusage Log debug information for disk usage. -printmemory Log debug information for memory usage. -printtime Log debug information for time usage. -relink For performing relink actions on the oracle home Usage: -relink -maketargetsxml <location of maketargetsxml> [-makedepsxml <location of makedepsxml>] [name=value] -silent For silent mode operations, the inputs can be a response file or a list of command line variable value pairs. -waitforcompletion Installer will wait for completion instead of spawning the java engine and exiting. -suppressPreCopyScript Suppress the execution of precopy script. -acceptUntrustedCertificates Accept untrusted certificates from a secure site. -suppressPostCopyScript Suppress the execution of postcopy script. -noconfig Do not execute config tools. -noconsole For suppressing display of messages to console. Console is not allocated. -formCluster To install the Oracle clusterware in order to form the cluster. -remotecp <Path> Unix specific option. Used only for cluster installs, specifies the path to the remote copy program on the local cluster node. -remoteshell <Path> Unix specific option. Used only for cluster installs, specifies the path to the remote shell program on the local cluster node. -executePrereqs To execute only the prerequisite checks. -ignorePrereq To ignore running the prerequisite checks. -ignoreInternalDriverError To ignore any internal driver errors. -downloadUpdates To download updates only. -showProgress To show the installation progress on the console. This option is supported only in case of silent installation. Command Line Variables Usage Command line variables are specified using <name=value>; for example: [ session: | compName: | compName:version: ]variableName=" valueOfVariable"] Session/Installer variables are specified using: [session:]varName=value Ex 1: session:ORACLE_HOME_NAME="OraHome" Ex 2: ORACLE_HOME_NAME="OraHome" The lookup order is session:varName then just varName. The session prefix is used to avoid ambiguity. Component variables are specified using: [compInternalName:[Version:]]varName Ex 1: oracle.comp1:1.0.1:varName="VarValue" Ex 2: oracle.comp1:varName="VarValue" The lookup order is compInternalName:Version:varName, then compInternalName:varName, then just varName.
开始静默安装
[oracle@node2 database]$ ./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /home/oracle/db_install.rsp
其中-silent指的是静默安装,-ignorePrereq忽略prerequisite的检查结果,showProgress显示进度,responseFile是种子文件。
[oracle@node2 database]$ ./runInstaller -silent -ignorePrereq -showProgress -responseFile /home/oracle/db_install.rsp Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 3073 MB Passed Checking swap space: must be greater than 150 MB. Actual 3999 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-04-01_10-13-42PM. Please wait ...[oracle@node2 database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base. CAUSE: The Central Inventory is located in the Oracle base. ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory. [WARNING] [INS-30011] The ADMIN password entered does not conform to the Oracle recommended standards. CAUSE: Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. ACTION: Provide a password that conforms to the Oracle recommended standards. You can find the log of this install session at: /u01/app/oracle/oraInventory/logs/installActions2015-04-01_10-13-42PM.log Prepare in progress. .................................................. 8% Done. Prepare successful. Copy files in progress. .................................................. 15% Done. .................................................. 21% Done. .................................................. 27% Done. .................................................. 34% Done. .................................................. 39% Done. .................................................. 44% Done. .................................................. 52% Done. .................................................. 57% Done. .................................................. 62% Done. .................................................. 67% Done. ........................................ Copy files successful. Link binaries in progress. .......... Link binaries successful. Setup files in progress. .................................................. 72% Done. .............................. Setup files successful. The installation of Oracle Database 11g was successful. Please check '/u01/app/oracle/oraInventory/logs/silentInstall2015-04-01_10-13-42PM.log' for more details. Oracle Net Configuration Assistant in progress. .................................................. 86% Done. Oracle Net Configuration Assistant successful. Oracle Database Configuration Assistant in progress. .................................................. 95% Done. Oracle Database Configuration Assistant successful. Execute Root Scripts in progress. As a root user, execute the following script(s): 1. /u01/app/oracle/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/11.2.0.1/db_1/root.sh .................................................. 100% Done. Execute Root Scripts successful. Successfully Setup Software.
最后,需root用户手动执行以下两个文件:
1. /u01/app/oracle/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/11.2.0.1/db_1/root.sh
当然,也可查看/u01/app/oracle/oraInventory/logs/installActions2015-04-01_10-13-42PM.log了解具体的安装信息。
命令行安装
首先来看dbca命令行支持哪些参数。
[oracle@node2 ~]$ dbca -help dbca [-silent | -progressOnly | -customCreate] {<command> <options> } | { [<command> [options] ] -responseFile <response file > } [-continueOnNonFatalErrors <true | false>] Please refer to the manual for details. You can enter one of the following command: Create a database by specifying the following parameters: -createDatabase -templateName <name of an existing template in default location or the complete template path> [-cloneTemplate] -gdbName <global database name> [-sid <database system identifier>] [-sysPassword <SYS user password>] [-systemPassword <SYSTEM user password>] [-emConfiguration <CENTRAL|LOCAL|ALL|NONE> -dbsnmpPassword <DBSNMP user password> -sysmanPassword <SYSMAN user password> [-hostUserName <Host user name for EM backup job> -hostUserPassword <Host user password for EM backup job> -backupSchedule <Daily backup schedule in the form of hh:mm>] [-centralAgent <Enterprise Manager central agent home>]] [-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE> [-datafileDestination <destination directory for all database files> | -datafileNames <a text file containing database objects such as controlfiles, tablespaces, redo log files and spfile to their corresponding raw device file names mappings in name=value format.>] [-redoLogFileSize <size of each redo log file in megabytes>] [-recoveryAreaDestination <destination directory for all recovery files>] [-datafileJarLocation <location of the data file jar, used only for clone database creation>] [-storageType < FS | ASM > [-asmsnmpPassword <ASMSNMP password for ASM monitoring>] -diskGroupName <database area disk group name> -recoveryGroupName <recovery area disk group name> [-characterSet <character set for the database>] [-nationalCharacterSet <national character set for the database>] [-registerWithDirService <true | false> -dirServiceUserName <user name for directory service> -dirServicePassword <password for directory service > -walletPassword <password for database wallet >] [-listeners <list of listeners to configure the database with>] [-variablesFile <file name for the variable-value pair for variables in the template>]] [-variables <comma separated list of name=value pairs>] [-initParams <comma separated list of name=value pairs>] [-sampleSchema <true | false> ] [-memoryPercentage <percentage of physical memory for Oracle>] [-automaticMemoryManagement ] [-totalMemory <memory allocated for Oracle in MB>] [-databaseType <MULTIPURPOSE|DATA_WAREHOUSING|OLTP>]] Configure a database by specifying the following parameters: -configureDatabase -sourceDB <source database sid> [-sysDBAUserName <user name with SYSDBA privileges> -sysDBAPassword <password for sysDBAUserName user name>] [-registerWithDirService|-unregisterWithDirService|-regenerateDBPassword <true | false> -dirServiceUserName <user name for directory service> -dirServicePassword <password for directory service > -walletPassword <password for database wallet >] [-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE> [-enableSecurityConfiguration <true|false> [-emConfiguration <CENTRAL|LOCAL|ALL|NONE> -dbsnmpPassword <DBSNMP user password> -sysmanPassword <SYSMAN user password> [-hostUserName <Host user name for EM backup job> -hostUserPassword <Host user password for EM backup job> -backupSchedule <Daily backup schedule in the form of hh:mm>] [-centralAgent <Enterprise Manager central agent home>]] Create a template from an existing database by specifying the following parameters: -createTemplateFromDB -sourceDB <service in the form of <host>:<port>:<sid>> -templateName <new template name> -sysDBAUserName <user name with SYSDBA privileges> -sysDBAPassword <password for sysDBAUserName user name> [-maintainFileLocations <true | false>] Create a clone template from an existing database by specifying the following parameters: -createCloneTemplate -sourceSID <source database sid> -templateName <new template name> [-sysDBAUserName <user name with SYSDBA privileges> -sysDBAPassword <password for sysDBAUserName user name>] [-maintainFileLocations <true | false>] [-datafileJarLocation <directory to place the datafiles in a compressed format>] Generate scripts to create database by specifying the following parameters: -generateScripts -templateName <name of an existing template in default location or the complete template path> -gdbName <global database name> [-scriptDest <destination for all the scriptfiles>] Delete a database by specifying the following parameters: -deleteDatabase -sourceDB <source database sid> [-sysDBAUserName <user name with SYSDBA privileges> -sysDBAPassword <password for sysDBAUserName user name>] Query for help by specifying the following options: -h | -help
由此来看,dbca命令行参数还是及其丰富的,完全可DIY建库。
下面,用最少参数建了一个库。
[oracle@node2 trace]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName test -sysPassword oracle -systemPassword oracle
注意,密码需指定,不然会有以下提示
A value for the command line argument "systemPassword" is not provided. We cannot proceed without a value for this argument.
最后输出结果如下:
Copying database files 1% complete 3% complete 11% complete 18% complete 26% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 60% complete 62% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/test/test.log" for further details.
注意:建库时的日志信息可在$ORACLE_BASE/cfgtoollogs/dbca/<dbname>下查看。