Instalar o Oracle 11G via Linha de comando (silent mode)

Após efetuar uma migração em um ambiente complicado, me surgiu a necessidade de instalar um oracle 11G sem o “X” instalado.

Como eu nunca havia instalado deste modo começou as pesquisas. E diante disso resolvi publicar o conhecimento obtido.

Quando descompactamos os binarios do oracle entramos em uma pasta “database” que nela rodamos o ./runInstall e pronto tela gráfica e agora é só ir clicando onde pensar ser conveniente.

Era de meu conhecimento que eu poderia efetuar a instalação via linha de comando com a opção “- silent”

Mas convenhamos é complicado lembrar de cabeça todos os pontos necessários para a instalação, então a oracle contem a opção “- responseFile”, onde você pode definir via arquivos quais configurações usar.

Na pasta “/database/response”, existe um arquivo chamado “db_install.rsp”

Neste arquivo existem todas as configurações necessárias para você instalar o seu oracle.
Vamos verificar as opções deste arquivo.

 [root@fuscabala ~]# cat /orainstall/database/response/db_install.rsp |grep '='
 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
 oracle.install.option=
 ORACLE_HOSTNAME=
 UNIX_GROUP_NAME=
 INVENTORY_LOCATION=
 SELECTED_LANGUAGES=
 ORACLE_HOME=
 ORACLE_BASE=
 oracle.install.db.InstallEdition=
 oracle.install.db.isCustomInstall=false
 oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
 oracle.install.db.DBA_GROUP=
 oracle.install.db.OPER_GROUP=
 oracle.install.db.CLUSTER_NODES=
 oracle.install.db.config.starterdb.type=
 oracle.install.db.config.starterdb.globalDBName=
 oracle.install.db.config.starterdb.SID=
 oracle.install.db.config.starterdb.characterSet=AL32UTF8
 oracle.install.db.config.starterdb.memoryOption=true
 oracle.install.db.config.starterdb.memoryLimit=
 oracle.install.db.config.starterdb.installExampleSchemas=false
 oracle.install.db.config.starterdb.enableSecuritySettings=true
 oracle.install.db.config.starterdb.password.ALL=
 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.dbcontrol.enableEmailNotification=false
 oracle.install.db.config.starterdb.dbcontrol.emailAddress=
 oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
 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=
 oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
 oracle.install.db.config.asm.diskGroup=
 oracle.install.db.config.asm.ASMSNMPPassword=
 MYORACLESUPPORT_USERNAME=
 MYORACLESUPPORT_PASSWORD=
 SECURITY_UPDATES_VIA_MYORACLESUPPORT=
 DECLINE_SECURITY_UPDATES=
 PROXY_HOST=
 PROXY_PORT=
 PROXY_USER=
 PROXY_PWD=

Se você lembrar das telas de instalação do Oracle observará que as perguntas iram ficar exatamente na ordem em que são questionadas pelo instalador.
Creio que não preciso comentar todos as linhas deste arquivo, mas comentarei as que são necessárias para instalar o software.
Vamos criar um novo arquivo apenas com as opções que necessitamos.
Como vamos apenas instalar o software, vale atentarmos para a linha “oracle.install.option=”

#——————————————————————————
# Specify the installation option.
# It can be one of the following:
# 1. INSTALL_DB_SWONLY
# 2. INSTALL_DB_AND_CONFIG
# 3. UPGRADE_DB
#——————————————————————————-
oracle.install.option=

Como vamos apenas instalar o software de banco de dados vamos utilizar a opção “INSTALL_DB_SWONLY” ou simplesmente 1.
oracle.install.option=INSTALL_DB_SWONLY
ou
oracle.install.option=1

A partir disso temos de nos preocuparmos com muitas poucas linhas.

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=fuscabala.coopwork.local
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory/
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/dbhome_1
ORACLE_BASE=/u01/app/oracle
#——————————————————————————
# Specify the installation edition of the component.
#
# The value should contain only one of these choices.
# EE : Enterprise Edition
# SE : Standard Edition
# SEONE : Standard Edition One
# PE : Personal Edition (WINDOWS ONLY)
#——————————————————————————
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

PS: Criar o arquivo /etc/oraInst.loc antes de iniciar a instalação conforme:
http://docs.oracle.com/cd/E11882_01/install.112/e24321/pre_install.htm#BABCHEDD

inventory_loc=/u01/app/oraInventory
inst_group=oinstall

Via GUI o instalador o cria este arquivo, já o mesmo é necessário ser criado antes da instalação caso for instalado via silent mode.

Vamos ao processo.

 [oracle@fuscabala echo "inventory_loc=/u01/app/oraInventory" > /etc/oraInst.loc
 [oracle@fuscabala echo "inst_group=oinstall" >> /etc/oraInst.loc

[oracle@fuscabala echo "oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0" > /orainstall/database/install.rsp
 [oracle@fuscabala echo "oracle.install.option=INSTALL_DB_SWONLY" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "ORACLE_HOSTNAME=fuscabala.coopwork.local" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "UNIX_GROUP_NAME=oinstall" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "INVENTORY_LOCATION=/u01/app/oraInventory/" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "SELECTED_LANGUAGES=en" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "ORACLE_HOME=/u01/app/oracle/product/dbhome_1" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "ORACLE_BASE=/u01/app/oracle" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "oracle.install.db.InstallEdition=EE" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "oracle.install.db.isCustomInstall=false" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "oracle.install.db.DBA_GROUP=dba" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "oracle.install.db.OPER_GROUP=dba" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "MYORACLESUPPORT_USERNAME=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "MYORACLESUPPORT_PASSWORD=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "SECURITY_UPDATES_VIA_MYORACLESUPPORT=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "DECLINE_SECURITY_UPDATES=true" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "PROXY_HOST=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "PROXY_PORT=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "PROXY_USER=" >> /orainstall/database/install.rsp
 [oracle@fuscabala echo "PROXY_PWD=" >> /orainstall/database/install.rsp

[oracle@fuscabala database]$ ./runInstaller -silent -responseFile /orainstall/database/install.rsp
 Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB. Actual 9336 MB Passed
 Checking swap space: must be greater than 150 MB. Actual 4062 MB Passed
 Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-09-11_09-05-27AM. Please wait ...
 [oracle@fuscabala database]$

[oracle@fuscabala database]$ The following configuration scripts need to be executed as the "root" user.
 #!/bin/sh
 #Root scripts to run

/u01/app/oracle/product/dbhome_1/root.sh
 To execute the configuration scripts:
 1. Open a terminal window
 2. Log in as "root"
 3. Run the scripts
 4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

Software instalado. Agora vamos instalar o Banco 🙂 Mas no proximo Post!
Referencias:
http://docs.oracle.com/cd/E11882_01/install.112/e24321/app_nonint.htm#BABFEECI

%name Instalar o Oracle 11G via Linha de comando (silent mode)

Autor: Leandro Lana

Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G e 12C.

Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server e DB2.

Contato: leandro.lana@migrati.com.br

Fone: (47) 9191-6052 / (47) 3328 0996

Certificações:

OCA 10G.

OCP 10G.

OCE Linux.

OCE RAC/Cluster.

MCP SQL-Server 2008.

MCITP SQL-Server 2008.

DB2 Fundamentals.