oracle 11g 静默安装

静默安装

经常搭建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 11g 静默安装
[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 11g 静默安装

注意部分如上所示,关于每个参数的说明,可参考模板中的解释。

三、 静默安装

      [oracle@node2 database]$ ./runInstaller -help

      如果对runInstaller的参数不是很了解的话,可通过该命令进行查看。

oracle 11g 静默安装
[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 11g 静默安装

    开始静默安装

    [oracle@node2 database]$ ./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /home/oracle/db_install.rsp

    其中-silent指的是静默安装,-ignorePrereq忽略prerequisite的检查结果,showProgress显示进度,responseFile是种子文件。

oracle 11g 静默安装
[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.
oracle 11g 静默安装

    最后,需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 11g 静默安装
[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
oracle 11g 静默安装

由此来看,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.                      

最后输出结果如下:

oracle 11g 静默安装
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 11g 静默安装

注意:建库时的日志信息可在$ORACLE_BASE/cfgtoollogs/dbca/<dbname>下查看。

上一篇:mysqldump命令


下一篇:Security property & attack