Nowadays everyone is installing #db12c in different variants, posting screenshots, talking about a better tool to run GUI through.
However I could not find posts about silent installation of GI and RDBMS. Yes, installation without sleek graphical interfaces, just pure command line in terminal. Thinking about RAC Attack at OOW13 I decided to install a two-node RAC cluster on my laptop to see how it would work.
Using Virtual Box, I created VM (named s1) for OEL 6.4 with 2Gb of RAM and performed a basic server installation setting 2 IP addresses (192.168.56.11, 172.16.100.11) for public and private networks with allocated 30Gb disk. 620 packages were installed, server rebooted and the login prompt came quick and short-spoken.
Since there were additional packages required, I attached iso image for OEL 6.4 to VM and mounted it in command line
mount /dev/dvd /media
It gave me packages available under /media/Packages which I installed straight away (based on requirements)
rpm -Uvh compat-libcap1-1.10-1.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm \ libstdc++-devel-4.4.7-3.el6.x86_64.rpm gcc-4.4.7-3.el6.x86_64.rpm glibc-devel-2.12-1.107.el6.x86_64.rpm \ glibc-headers-2.12-1.107.el6.x86_64.rpm cpp-4.4.7-3.el6.x86_64.rpm cloog-ppl-0.15.7-1.2.el6.x86_64.rpm \ kernel-headers-2.6.32-358.el6.x86_64.rpm ppl-0.10.2-11.el6.x86_64.rpm mpfr-2.4.1-6.el6.x86_64.rpm \ libaio-devel-0.3.107-10.el6.x86_64.rpm ksh-20100621-19.el6.x86_64.rpm gcc-c++-4.4.7-3.el6.x86_64.rpm
Since it is not that important to have a DNS service running for my silent installation tests, I used one IP address for SCAN and put it to /etc/hosts file together with IP addresses for hosts of a two-node cluster
127.0.0.1 localhost.localdomain localhost 192.168.56.11 s1.home s1 192.168.56.12 s2.home s2 192.168.56.15 s-scan.home s-scan 172.16.100.11 s1-priv.home s1-priv 172.16.100.12 s2-priv.home s2-priv 192.168.56.13 s1-vip.home s1-vip 192.168.56.14 s2-vip.home s2-vip
Then I created groups and an Oracle account (I did not create groups for SYSDG, SYSKM and SYSBACKUP planning to use dba group)
groupadd oinstall groupadd dba groupadd asmdba groupadd asmadmin useradd -m -g oinstall -G asmdba,asmadmin,dba oracle passwd oracle
and created a directory where software will be installed
mkdir /u01 chown oracle.oinstall /u01
as well as disabled firewall and SE Linux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config /etc/init.d/iptables stop /etc/init.d/ip6tables stop chkconfig --level 2345 iptables off chkconfig --level 2345 ip6tables off
I stopped VM and created 2 shared disks for ASM (2Gb and 5Gb) using steps described in RAC Attack 12c wiki in details.
When VM was started, back up and partitions for disks were created, I added rules for persistent naming of ASM devices. Since I was using only two devices for ASM, RAC Attack Ninjas’ script was changed to use sdb and sdc.
echo "options=-g" > /etc/scsi_id.config i=1 cmd="/sbin/scsi_id -g -u -d" for disk in sdb sdc ; do cat <<EOF >> /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd?1", BUS=="scsi", PROGRAM=="$cmd /dev/\$parent", \ RESULT=="`$cmd /dev/$disk`", NAME="asm-disk$i", OWNER="oracle", GROUP="dba", MODE="0660" EOF i=$(($i+1)) done /sbin/partprobe /dev/sdb1 /dev/sdc1 /sbin/udevadm test /block/sdb/sdb1 /sbin/udevadm test /block/sdc/sdc1 /sbin/udevadm control --reload-rules /sbin/start_udev
It finished preparation of OS for further cloning to second VM and I simply powered off the machine in VBox.
Thanks again to RAC Attack Ninjas for the instructions which made tests easier and provided certain steps to clone VM.
I created new VM s2 without addition of any disks and set network interfaces and performed a clone of virtual disk from one Virtual Machine to a new one and attached cloned and disks for ASM to new VM.
After startup of new VM s2, I changed the name of the host to s2.home and IP addresses to new ones using setup command which works in text mode, removed file for network rules and deleted UUID and HWADDR from adapter configuration files
rm -f /etc/udev/rules.d/70-persistent-net.rules sed -i -e '/HWADDR/d' -e '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[0-2]
Now I was able to start 2 virtual machines together and copied GI and RDBMS software to the first node under /home/oracle/install and unzipped archives there.
First of all, I executed ssh passwordless script to copy keys between nodes
cd /home/oracle/install/grid/sshsetup ./sshUserSetup.sh -user oracle -hosts "s1 s2" -advanced -confirm -noPromptPassphrase
Then I executed verification utility to generate fixup scripts
cd /home/oracle/install/grid ./runcluvfy.sh stage -pre crsinst -fixupnoexec -n s1,s2
The check produced the report at the end of the execution
ERROR: PRVE-0426 : The size of in-memory file system mounted as /dev/shm is "1004" megabytes which is less than the required size of "2048" megabytes on node "" PRVE-0426 : The size of in-memory file system mounted as /dev/shm is "1004" megabytes which is less than the required size of "2048" megabytes on node "" Check for /dev/shm mounted as temporary file system failed ****************************************************************************************** Following is the list of fixable prerequisites selected to fix in this session ****************************************************************************************** -------------- --------------- ---------------- Check failed. Failed on nodes Reboot required? -------------- --------------- ---------------- OS Kernel Parameter: semmsl s2,s1 no OS Kernel Parameter: semmns s2,s1 no OS Kernel Parameter: semopm s2,s1 no OS Kernel Parameter: semmni s2,s1 no OS Kernel Parameter: shmmni s2,s1 no OS Kernel Parameter: s2,s1 no file-max OS Kernel Parameter: s2,s1 no ip_local_port_range OS Kernel Parameter: s2,s1 no rmem_default OS Kernel Parameter: s2,s1 no rmem_max OS Kernel Parameter: s2,s1 no wmem_default OS Kernel Parameter: s2,s1 no wmem_max OS Kernel Parameter: s2,s1 no aio-max-nr Hard Limit: maximum open s2,s1 no file descriptors Hard Limit: maximum user s2,s1 no processes Soft Limit: maximum user s2,s1 no processes Execute "/tmp/CVU_12.1.0.1.0_oracle/runfixup.sh" as root user on nodes "s2,s1" to perform the fix up operations manually Pre-check for cluster services setup was unsuccessful on all the nodes.
Since OS packages were installed at the beginning, there were only some issues with OS Kernel parameters and size of temporary file system (which I ignored). To fix the parameters I executed the script on both nodes under root. It’s worth mentioning that the process for generating fixup scripts has changed since 11g. Now they are placed in a fixup directory under CVU_12.1.0.1.0_oracle and are in XML format while previously there were 2 directories CVU*_fixup, CVU*_oracle in /tmp and the configuration file was in text format.
Further execution of the check showed that the script worked and applied changes to the kernel
NOTE: No fixable verification failures to fix ...
Based on my experience of silent installation and after several tests, I came up with the following parameters for the response file of Grid Infrastructure installation and put them to text file /tmp/gi.rsp on first node s1
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.1.0 SELECTED_LANGUAGES=en INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=CRS_CONFIG ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/12.1.0/grid oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.gpnp.scanName=s-scan.home oracle.install.crs.config.gpnp.scanPort=1521 oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.autoConfigureClusterNodeVIP=false oracle.install.crs.config.ClusterType=STANDARD oracle.install.crs.config.clusterName=s-cluster oracle.install.crs.config.clusterNodes=s1.home:s1-vip.home,s2.home:s2-vip.home oracle.install.crs.config.networkInterfaceList=eth0:192.168.56.0:1,eth1:172.16.100.0:2 oracle.install.crs.managementdb.configure=false oracle.install.crs.config.storageOption=LOCAL_ASM_STORAGE oracle.install.asm.SYSASMPassword=ASM111pwd# oracle.install.asm.diskGroup.name=CRS oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.disks=/dev/asm-disk1 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm* oracle.install.asm.monitorPassword=ASM222mon# oracle.installer.autoupdates.option=SKIP_UPDATES
GI software was installed and it required the execution of several scripts to finish configuring the Grid Infrastructure
[[email protected] grid]$ ./runInstaller -silent -responseFile /tmp/gi.rsp -showProgress -ignorePrereq Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 18470 MB Passed Checking swap space: must be greater than 150 MB. Actual 4095 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-19_02-38-55PM. Please wait ...[[email protected] grid]$ [WARNING] [INS-41170] You have chosen not to configure the Grid Infrastructure Management Repository. Not configuring the Grid Infrastructure Management Repository will permanently disable the Cluster Health Monitor, QoS Management, Memory Guard, and Rapid Home Provisioning features. Enabling of these features will require reinstallation of the Grid Infrastructure. You can find the log of this install session at: /u01/app/oraInventory/logs/installActions2013-09-19_02-38-55PM.log Prepare in progress. .................................................. 8% Done. Prepare successful. Copy files in progress. .................................................. 16% Done. .................................................. 21% Done. .................................................. 27% Done. .................................................. 32% Done. .................................................. 37% Done. .................................................. 42% Done. ........................................ Copy files successful. .......... Link binaries in progress. .......... Link binaries successful. .................................................. 56% Done. Setup files in progress. Setup files successful. .................................................. 62% Done. Setup Inventory in progress. Setup Inventory successful. .................................................. 68% Done. Finish Setup successful. Perform remote operations in progress. Perform remote operations successful. .................................................. 75% Done. Saving Cluster Inventory in progress. .................................................. 80% Done. Saving Cluster Inventory successful. The installation of Oracle Grid Infrastructure 12c was successful. Please check '/u01/app/oraInventory/logs/silentInstall2013-09-19_02-38-55PM.log' for more details. Prepare for configuration steps in progress. Prepare for configuration steps successful. .................................................. 85% Done. Update Inventory in progress. Update Inventory successful. .................................................. 95% Done. As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/12.1.0/grid/root.sh Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [s1, s2] Execute /u01/app/12.1.0/grid/root.sh on the following nodes: [s1, s2] Run the script on the local node first. After successful completion, you can start the script in parallel on all other nodes. .................................................. 100% Done. Successfully Setup Software. As install user, execute the following script to complete the configuration. 1. /u01/app/12.1.0/grid/cfgtoollogs/configToolAllCommands RESPONSE_FILE=<response_file> Note: 1. This script must be run on the same host from where installer was run. 2. This script needs a small password properties file for configuration assistants that require passwords (refer to install guide documentation).
I executed /u01/app/oraInventory/orainstRoot.sh on both nodes and it did not cause any issues.
Since it was a silent installation OUI_SILENT parameter in /u01/app/12.1.0/grid/install/utl/rootmacro.sh (which is part of root.sh) was set to true and to see the execution output on a screen, not through a generated log, I set the parameter to false and executed the script. It was completed successfully on both nodes and the Grid Infrastructure was configured
...Configure Oracle Grid Infrastructure for a Cluster ... succeeded
For the configuration script, I created text file /tmp/conf.rsp which had 2 lines
oracle.assistants.asm|S_ASMPASSWORD=ASM111pwd# oracle.assistants.asm|S_ASMMONITORPASSWORD=ASM222mon#
and executed the script
[[email protected] grid]$ /u01/app/12.1.0/grid/cfgtoollogs/configToolAllCommands RESPONSE_FILE=/tmp/conf.rsp Setting the invPtrLoc to /u01/app/12.1.0/grid/oraInst.loc perform - mode is starting for action: configure Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: UpdateNodelist data: Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: oracle.installer.oui_loc:/u01/app/12.1.0/grid/oui Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: oracle.installer.jre_loc:/u01/app/12.1.0/grid/jdk/jre Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: oracle.installer.doNotUpdateNodeList:true Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: OracleHomeToUpdate:/u01/app/12.1.0/grid;isCRS:true;isCFS:false;isLocal:false Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: From map: Hosts:[s1, s2] => Nodelist:[s1, s2] Sep 19, 2013 4:40:08 PM oracle.install.driver.oui.UpdateNodelistJob call INFO: Before calling api: Hosts:[s1, s2] => Nodelist:[s1, s2], update localnode? true Sep 19, 2013 4:41:20 PM oracle.install.config.common.NetCAInternalPlugIn invoke INFO: NetCAInternalPlugIn: ... adding </ouiinternal> Sep 19, 2013 4:41:20 PM oracle.install.driver.oui.config.GenericInternalPlugIn invoke INFO: Executing NETCA Sep 19, 2013 4:41:20 PM oracle.install.driver.oui.config.GenericInternalPlugIn invoke INFO: Command /u01/app/12.1.0/grid/bin/netca /orahome /u01/app/12.1.0/grid /orahnam OraGI12Home1 /instype typical /inscomp client,oraclenet,javavm,server,ano /insprtcl tcp /cfg local /authadp NO_VALUE /responseFile /u01/app/12.1.0/grid/network/install/netca_typ.rsp /silent /silent /ouiinternal Sep 19, 2013 4:41:21 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn.handleProcess() entered. Sep 19, 2013 4:41:21 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: getting configAssistantParmas. Sep 19, 2013 4:41:21 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: checking secretArguments. Sep 19, 2013 4:41:21 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: No arguments to pass to stdin Sep 19, 2013 4:41:21 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: starting read loop. Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: End of argument passing to stdin Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parsing command line arguments: Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parsing command line arguments: Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "orahome" = /u01/app/12.1.0/grid Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "orahome" = /u01/app/12.1.0/grid Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "orahnam" = OraGI12Home1 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "orahnam" = OraGI12Home1 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "instype" = typical Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "instype" = typical Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "inscomp" = client,oraclenet,javavm,server,ano Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "inscomp" = client,oraclenet,javavm,server,ano Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "insprtcl" = tcp Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "insprtcl" = tcp Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "cfg" = local Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "cfg" = local Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "authadp" = NO_VALUE Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "authadp" = NO_VALUE Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "responsefile" = /u01/app/12.1.0/grid/network/install/netca_typ.rsp Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "responsefile" = /u01/app/12.1.0/grid/network/install/netca_typ.rsp Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "silent" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "silent" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "silent" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "silent" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Parameter "ouiinternal" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Parameter "ouiinternal" = true Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Done parsing command line arguments. Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Done parsing command line arguments. Sep 19, 2013 4:41:23 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:26 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Oracle Net Services Configuration: Sep 19, 2013 4:41:26 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Oracle Net Services Configuration: Sep 19, 2013 4:41:26 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Profile configuration complete. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Profile configuration complete. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Profile configuration complete. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Profile configuration complete. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Listener "LISTENER" already exists. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Listener "LISTENER" already exists. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Oracle Net Services configuration successful. The exit code is 0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Oracle Net Services configuration successful. The exit code is 0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:1 Total args:0 Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn invoke INFO: Executing ASMCA Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn invoke INFO: Command /u01/app/12.1.0/grid/bin/asmca -silent -postConfigureASM -oui_internal Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn.handleProcess() entered. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: getting configAssistantParmas. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: checking secretArguments. Sep 19, 2013 4:41:28 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: ... GenericInternalPlugIn: starting read loop. Sep 19, 2013 4:41:34 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: SYS_PASSWORD_PROMPT Sep 19, 2013 4:41:34 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Processing: SYS_PASSWORD_PROMPT for argument tag -sysAsmPassword Sep 19, 2013 4:41:34 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: ASMSNMP_PASSWORD_PROMPT Sep 19, 2013 4:41:34 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Processing: ASMSNMP_PASSWORD_PROMPT for argument tag -asmMonitorPassword Sep 19, 2013 4:41:34 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: End of argument passing to stdin Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:3 Total args:2 Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: PostConfiguration completed successfully Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: PostConfiguration completed successfully Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:3 Total args:2 Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Read: Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess WARNING: Skipping line: Sep 19, 2013 4:41:37 PM oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess INFO: Exceeded the number of arguments passed to stdin. CurrentCount:3 Total args:2 perform - mode finished for action: configure You can see the log file: /u01/app/12.1.0/grid/cfgtoollogs/oui/configActions2013-09-19_04-40-07-PM.log
GI was installed and it was up and running
[[email protected] grid]$ srvctl status asm ASM is running on s2,s1
But how about the database itself and disk group creation (for which device /dev/asm-disk2 was ready)?
To create another ASM disk group, I used syntax that mkdg could understand and mounted the disk group on second node as well
ASMCMD> mkdg '<dg name="data" redundancy="external"><dsk string = "/dev/asm-disk2" /> <a name="compatible.asm" value="12.1" /> </dg>' [[email protected] grid]$ srvctl status diskgroup -diskgroup data Disk Group data is running on s1 [[email protected] grid]$ srvctl start diskgroup -diskgroup data -n s2 [[email protected] grid]$ srvctl status diskgroup -diskgroup data Disk Group data is running on s2,s1
After that, the only steps left were to install the RDBMS and create the database, so I proceeded with the installation of RDBMS creating response file /tmp/db.rsp with following contents (database software was uploaded to the server s1 and unzipped under /home/oracle/install/database)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0 oracle.install.option=INSTALL_DB_SWONLY INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.BACKUPDBA_GROUP=dba oracle.install.db.DGDBA_GROUP=dba oracle.install.db.KMDBA_GROUP=dba oracle.install.db.CLUSTER_NODES=s1,s2 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true oracle.installer.autoupdates.option=SKIP_UPDATES
Silent installation was completed by execution of OUI in silent mode and I executed root.sh script (using the same change OUI_SILENT=false in rootmacro.sh to get output to the same screen) on both nodes successfully
[[email protected] database]$ ./runInstaller -silent -responseFile /tmp/db.rsp -showProgress -ignorePrereq Starting Oracle Universal Installer... Checking Temp space: must be greater than 500 MB. Actual 7310 MB Passed Checking swap space: must be greater than 150 MB. Actual 4083 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-19_09-38-36PM. Please wait ...[[email protected] database]$ You can find the log of this install session at: /u01/app/oraInventory/logs/installActions2013-09-19_09-38-36PM.log Prepare in progress. .................................................. 8% Done. Prepare successful. Copy files in progress. .................................................. 13% Done. .................................................. 18% Done. .................................................. 23% Done. .................................................. 28% Done. .................................................. 33% Done. .................................................. 38% Done. .................................................. 43% Done. .................................................. 48% Done. Copy files successful. Link binaries in progress. Link binaries successful. .................................................. 59% Done. Setup files in progress. Setup files successful. .................................................. 65% Done. Setup Inventory in progress. Setup Inventory successful. .......... Finish Setup in progress. .................................................. 72% Done. Finish Setup successful. Perform remote operations in progress. Perform remote operations successful. .................................................. 79% Done. Saving Cluster Inventory in progress. .................................................. 84% Done. Saving Cluster Inventory successful. The installation of Oracle Database 12c was successful. Please check '/u01/app/oraInventory/logs/silentInstall2013-09-19_09-38-36PM.log' for more details. Update Inventory in progress. Update Inventory successful. .................................................. 95% Done. As a root user, execute the following script(s): 1. /u01/app/oracle/product/12.1.0/dbhome_1/root.sh Execute /u01/app/oracle/product/12.1.0/dbhome_1/root.sh on the following nodes: [s1, s2] .................................................. 100% Done. Successfully Setup Software. /u01/app/oracle/product/12.1.0/dbhome_1/root.sh Performing root user operation for Oracle 12c The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed.
Now it was just a matter of creating the database in silent mode.
Since ASM was created in automatic memory management mode, I decreased memory usage allocating SGA manually changing spfile of ASM.
alter system reset memory_target scope=spfile sid='*'; alter system reset memory_max_target scope=spfile sid='*'; alter system set sga_max_size=256m scope=spfile sid='*'; alter system set sga_target=256m scope=spfile sid='*';
I executed dbca in silent mode and got the database up and running and registered in clusterware
./dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName d -adminManaged \ -sysPassword sys_pwd -systemPassword sys_pwd -emConfiguration NONE -storageType ASM \ -diskGroupName DATA -nodelist s1,s2 -totalMemory 600 Copying database files 1% complete 3% complete 9% complete 15% complete 21% complete 27% complete 30% complete Creating and starting Oracle instance 32% complete 36% complete 40% complete 44% complete 45% complete 48% complete 50% complete Creating cluster database views 52% complete 70% complete Completing Database Creation 73% complete 76% complete 85% complete 94% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/d/d.log" for further details.
That’s how it was done. I definitely see a place for silent installation nowadays and, if you are doing many installations, it is certainly worth performing.
Happy doing silent installations!
5 Comments. Leave new
Andrey this is so seek!!! What about silent install in vbox for Solaris?
Andrey this is so sick!!! What about silent install in vbox for Solaris?
Well, definitely silent installation on Solaris is worth to try. I hope I would be able to do it
Hi Andrey. That’s brilliant! I’ll be stay tuned on it :)
Can you remove my first comment, with grammar mistake?
I came across with your article; once I read, thanking does not cost….so
Thanks for sharing! I was really helpful for me.
Great job dude.
Regards since Mexico ;)