visão geral
O Oracle 19c é um sistema de gerenciamento de banco de dados relacional e o CentOS 7 é um sistema operacional Linux popular. Em alguns casos, é necessário instalar o Oracle 19c no CentOS 7, e a instalação silenciosa por linha de comando é um método de instalação sem interação humana, que pode agilizar a instalação e reduzir a possibilidade de erros. Este método de instalação requer o uso de parâmetros de linha de comando específicos e arquivos de configuração para especificar opções de instalação e informações de configuração. Esse método de instalação é adequado para a situação em que o Oracle 19c precisa ser instalado em vários servidores e a instalação em lote pode ser realizada por meio de scripts automatizados. Resumindo, usar o método de instalação silenciosa da linha de comando pode melhorar a eficiência e a precisão da instalação do Oracle 19c no CentOS 7 e é um método de instalação que vale a pena.
1. Ambiente
1.1. Configurar fonte YUM local
mount -t auto /dev/cdrom /mnt
rm -rf /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/
cat >> /etc/yum.repos.d/CentOS-Media.repo<<EOF
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
yum clean all
yum makecache
1.2. Instalar pacotes dependentes
yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel libXext* unzip
1.3. Criar grupo de usuários
groupadd -g 1001 oinstall
groupadd -g 1002 dba
groupadd -g 1003 oper
groupadd -g 1004 asmdba
groupadd -g 1005 backupdba
groupadd -g 1006 dgdba
groupadd -g 1007 kmdba
groupadd -g 1008 racdba
useradd -u 1001 -m -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle
id oracle
a=1
echo oracle:$a|chpasswd
1.4. Criar diretório de instalação de software e diretório de banco de dados
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
mkdir -p /oracle/oinstall
chown -R oracle:oinstall /oracle
1.5. Preparar outras condições
hostnamectl set-hostname oracle19c
cat >> /etc/hosts <<EOF
17.21.68.132 oracle19c
EOF
cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 6597069766656
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#net.ipv4.conf.eth3.rp_filter = 2
#net.ipv4.conf.eth2.rp_filter = 2
#net.ipv4.conf.eth0.rp_filter = 1
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
cat >>/home/oracle/.bash_profile<<EOF
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/18.0/db
export ORACLE_SID=orcl
export PATH=\$PATH:\$HOME/bin:\$ORACLE_HOME/bin:\$ORA_CRS_HOME/bin:\$ORACLE_BASE/common/oracle/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export ORACLE_PATH=\$ORACLE_BASE/common/oracle/sql:\$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export ORA_NLS10=\$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib
export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=\$ORACLE_HOME/JRE
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/jlib
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
umask=022
EOF
su - oracle
mkdir -p $ORACLE_HOME
exit
1.7, feche o firewall e o selinux
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
setenforce 0
getenforce
1.8. Descompacte o arquivo de banco de dados
cd /oracle/
unzip LINUX.X64_190000_db_home.zip
/u01/app/oracle/product/19.0/db
2. Instale o banco de dados
2.1. Instale o software de banco de dados
cat >/tmp/db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
EOF
[oracle@oracle19c db]$ ./runInstaller -silent -ignorePrereq -responseFile /tmp/db_install.rsp
Iniciando o Assistente de Configuração do Banco de Dados Oracle...
[AVISO] [INS-13014] O ambiente de destino não atende a alguns requisitos opcionais.
CAUSA: Alguns dos pré-requisitos opcionais não foram atendidos. Consulte os logs para obter detalhes. installActions2022-04-04_03-47-48AM.log
AÇÃO: Identifique a lista de verificações de pré-requisito com falha no log: installActions2022-04-04_03-47-48AM.log. Em seguida, no arquivo de log ou no manual de instalação, encontre a configuração apropriada para atender aos pré-requisitos e corrija-a manualmente.
O arquivo de resposta para esta sessão pode ser encontrado em:
/u01/app/oracle/product/18.0/db/install/response/db_2022-04-04_03-47-48AM.rsp
Você pode encontrar o log desta sessão de instalação em:
/tmp/InstallActions2022-04-04_03-47-48AM/installActions2022-04-04_03-47-48AM.log
Como usuário root, execute o(s) seguinte(s) script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/18.0/db/root.sh
Execute /u01/app/oraInventory/orainstRoot.sh nos seguintes nós:
[oráculo19c]
Execute /u01/app/oracle/product/18.0/db/root.sh nos seguintes nós:
[oráculo19c]
Software de instalação bem-sucedido com aviso(s).
Os logs da sessão de instalação foram movidos para:
/u01/app/oraInventory/logs/InstallActions2022-04-04_03-47-48AM
[root@oracle19c ~]# sh /u01/app/oraInventory/orainstRoot.sh
Alterando as permissões de /u01/app/oraInventory.
Adicionando permissões de leitura e gravação para o grupo.
Removendo permissões de leitura, gravação e execução para o mundo.
Alterando o nome do grupo de /u01/app/oraInventory para oinstall.
A execução do script está concluída.
[root@oracle19c ~]# sh /u01/app/oracle/product/18.0/db/root.sh
Verifique /u01/app/oracle/product/18.0/db/install/root_oracle19c_2022-04-04_03-49-19-555893641.log para obter a saída do script raiz
3. Crie e monitore silenciosamente
netca -silent -responsefile /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
[oracle@oracle19c db]$ netca -silent -responsefile /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
Analisando os argumentos da linha de comando:
Parâmetro "silencioso" = verdadeiro
Parâmetro "responsefile" = /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
Concluído a análise dos argumentos da linha de comando.
Configuração do Oracle Net Services:
Configuração do perfil concluída.
Inicialização do Oracle Net Listener:
Executando o controle do ouvinte:
/u01/app/oracle/product/18.0/db/bin/lsnrctl start LISTENER
Controle do ouvinte concluído.
Ouvinte iniciado com sucesso.
Configuração do ouvinte concluída.
Configuração do Oracle Net Services bem-sucedida. O código de saída é 0
4. Crie um banco de dados do tipo pdb
4.1. Preparar arquivo de resposta pdb
mkdir /oradata
chown oracle:oinstall /oradata
touch /oracle/dbca_install.rsp
cat >/oracle/dbca_install.rsp<<EOF
responseFileVersion=/oracle/install/rspfmt_dbca_response_schema_v19.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orclpdb
templateName=/u01/app/oracle/product/19.0/db/assistants/dbca/templates/General_Purpose.dbc
emExpressPort=5500
omsPort=0
characterSet=AL32UTF8
listeners=LISTENER
memoryPercentage=40
automaticMemoryManagement=false
totalMemory=0
datafileDestination =/oradata
EOF
cat /oracle/dbca_install.rsp
4.2, banco de dados de compilação dbca-pdb
dbca -silent -createDatabase -responseFile /oracle/dbca_install.rsp
[modelos oracle@oracle19c]$ dbca -silent -createDatabase -responseFile /oracle/dbca_install.rsp
Digite a senha do usuário SYS:
Digite a senha do usuário do SISTEMA:
Digite a senha do usuário PDBADMIN:
Prepare-se para a operação do banco de dados
8% concluído
Copiando arquivos de banco de dados
31% concluído
Criando e iniciando a instância do Oracle
32% concluído
36% concluído
40% concluído
43% concluído
46% concluído
Concluindo a criação do banco de dados
51% concluído
53% concluído
54% concluído
Criação de bancos de dados conectáveis
58% concluído
77% concluído
Executando ações de pós-configuração
100% completo
Criação do banco de dados concluída. Para obter detalhes, verifique os arquivos de log em:
/u01/app/oracle/cfgtoollogs/dbca/orcl.
Informações do banco de dados:
Nome do banco de dados global:orcl
Identificador do sistema (SID): orcl
Consulte o arquivo de log "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" para obter mais detalhes.
[modelos oracle@oracle19c]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Produção em 4 de abril 04:05:11 2022
Versão 19.3.0.0.0
Direitos autorais (c) 1982, 2018, Oracle. Todos os direitos reservados.
Conectado a:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Produção
Versão 19.3.0.0.0
SQL> mostrar pdbs
CON_ID CON_NAME MODO ABERTO RESTRITO
---------- ------------------------------ ---------- ----------
2 PDB$SEED SOMENTE LEITURA NÃO
3 ORCLPDB LEITURA ESCRITA NÃO
5. Edifício de biblioteca comum - excluindo pdb
5.1. Preparar arquivo de resposta
cat >/oracle/dbca_nopdb.rsp<<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=oab
sid=oab
templateName=/u01/app/oracle/product/18.0/db/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Oracle123
oracleHomeUserPassword=Oracle123
emExpressPort=5500
totalMemory=1500
sysPassword = Oracle123
systemPassword = Oracle123
datafileDestination =/oradata
characterSet =ZHS16GBK
nationalCharacterSet=AL16UTF16
databaseType = OLTP
automaticMemoryManagement = TRUE
EOF
5.2, biblioteca comum de compilação dbca
dbca -silent -createDatabase -responseFile /oracle/dbca_nopdb.rsp
[modelos oracle@oracle19c]$ dbca -silent -createDatabase -responseFile /oracle/dbca_nopdb.rsp
Digite a senha do usuário SYS:
Digite a senha do usuário do SISTEMA:
Prepare-se para a operação do banco de dados
10% concluído
Copiando arquivos de banco de dados
40% concluído
Criando e iniciando a instância do Oracle
42% concluído
46% concluído
50% concluído
54% concluído
60% concluído
Concluindo a criação do banco de dados
66% concluído
69% concluído
70% concluído
Executando ações de pós-configuração
100% completo
Criação do banco de dados concluída. Para obter detalhes, verifique os arquivos de log em:
/u01/app/oracle/cfgtoollogs/dbca/oab.
Informações do banco de dados:
Nome do banco de dados global:oab
Identificador do sistema (SID): oab
Consulte o arquivo de log "/u01/app/oracle/cfgtoollogs/dbca/oab/oab.log" para obter mais detalhes.
[modelos oracle@oracle19c]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Produção em 4 de abril 04:13:51 2022
Versão 19.3.0.0.0
Direitos autorais (c) 1982, 2018, Oracle. Todos os direitos reservados.
Conectado a:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Produção
Versão 19.3.0.0.0
SQL> mostrar pdbs
SQL>