Neste post iremos realizar a instalação do Oracle Database 19c (19.3.0.0.0) juntamente com a aplicação do Release Update (RU) JUL2020 (19.8.0.0.0) em um servidor com Red Hat Enterprise Linux release 8.2 (Ootpa).
Esses passos também servem, basicamente, para o Oracle Linux 8, com exceção da parte envolvendo subscrição.
Foi instalada a versão minimal do Red Hat 8.
1) Para facilitar todo o processo, iremos desabilizar o Firewall e o SELinux do Redhat, mas esse ponto fica a critério de cada organização.
1 2 3 |
systemctl stop firewalld systemctl disable firewalld setenforce 0 |
OBS.: O comando setenforce 0 desabilita o SELinux em tempo de execução. Para que a desabilitação seja persistida após restart, altere o arquivo /etc/selinux/config deixando SELINUX=disabled
2) Com a subscrição devidamente ativa no servidor, habilite o repositório Code Ready Builder
1 |
subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms |
3) Instalando pacotes de pré-requisitos
1 |
dnf install bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libgcc libnsl librdmacm-devel libstdc++ libstdc++-devel libX11 libXau libxcb libXi libXrender libXrender-devel libXtst make net-tools nfs-utils python3 python3-configshell python3-rtslib python3-six smartmontools sysstat targetcli unzip xorg-x11-apps chrony tmux xorg-x11-server-utils glibc.i686 glibc-devel.i686 libstdc++-devel.i686 libaio-devel.i686 libXext.i686 libXtst.i686 zlib-devel.i686 -y |
4) Instalando pacote Oracle Database Pre Install 19c
1 |
dnf install https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm -y |
5) Criação dos diretórios necessários para instalação e armazenamento do Oracle Database 19c
1 2 3 4 5 6 7 |
mkdir -pv /u01/app/oracle mkdir -pv /u01/app/oraInventory mkdir /u01/app/oracle/cfgtoollogs mkdir -pv /u01/app/oracle/product/19.0.0/db_1 mkdir -pv /u02/oradata chown -R oracle:oinstall /u01 /u02 chmod -R 775 /u01 /u02 |
OBS.:Nesse servidor foram criadas duas partições: /u01 e /u02, que serão utilizadas, respectivamente, para armazenamento dos binários do Oracle e armazenamento dos arquivos de dados do database.
É possível utilizar também o Oracle Automatic Storage Management (ASM), não será o caso no nosso servidor.
6) Configuração de variáveis no usuário Oracle
Como utilizamos o pacote de Pre Install Oracle 19c, o usuário Oracle e os grupos necessários são criados automaticamente no servidor.
Dito isso, iremos configurar as variáveis de ambiente no bash do usuário oracle. Adicione o conteúdo a seguir no arquivo .bash_profile localizado no home do usuário Oracle, normalmente /home/oracle/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#Oracle Settings export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=srvoem13c.empresa.com export ORACLE_UNQNAME=oemcdb export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1 export ORA_INVENTORY=/u01/app/oraInventory export ORACLE_SID=oemcdb export PDB_NAME=oempdb export DATA_DIR=/u02/oradata export PATH=/usr/sbin:/usr/local/bin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib |
Como estamos utilizando o Oracle Database 19c, realizamos a criação de um CDB com um PDB.
Faça as substituições conforme os dados desejados nas variáveis ORACLE_HOSTNAME, ORACLE_UNQNAME, ORACLE_SID e PDB_NAME.
Após realizar este passo, deslogue do usuário oracle e logue novamente para reconhecer as novas variáveis.
7) Com os binários do Oracle 19c (19.3) devidamente baixados, iremos realizar a descompactação no ORACLE HOME.
Caso não saiba como efetuar o download, visualize nosso post sobre o tema.
Download de Base Releases e Patches Oracle (MOS))
1 2 |
cd $ORACLE_HOME unzip -oq /tmp/LINUX.X64_193000_db_home.zip |
8) Apesar do Oracle 19c já ser certificado para o Red Hat 8, é necessário realizar um workaround (arranjo técnico) indicado pela própria Oracle, antes de realizar a instalação do Oracle Database.
1 2 |
export CV_ASSUME_DISTID=OEL7.8 echo never > /sys/kernel/mm/transparent_hugepage/enabled |
Caso faça o procedimento e mesmo assim retorne erro no instalador, edite o arquivo $ORACLE_HOME/cv/admin alterando o valor de CV_ASSUME_DISTID para OEL7.8 (CV_ASSUME_DISTID=OEL7.8).
9) Instalação Oracle Database 19c em modo silencioso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
cd $ORACLE_HOME ./runInstaller -ignorePrereq -waitforcompletion -silent \ -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \ oracle.install.option=INSTALL_DB_SWONLY \ ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=${ORA_INVENTORY} \ SELECTED_LANGUAGES=en,en_GB \ ORACLE_HOME=${ORACLE_HOME} \ ORACLE_BASE=${ORACLE_BASE} \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSBACKUPDBA_GROUP=dba \ oracle.install.db.OSDGDBA_GROUP=dba \ oracle.install.db.OSKMDBA_GROUP=dba \ oracle.install.db.OSRACDBA_GROUP=dba \ SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \ DECLINE_SECURITY_UPDATES=true |
Como já definimos as variáveis no passo 7, o comando acima já irá conhecer todos os caminhos necessários.
10) Iniciando o Oracle Listener
1 |
lsnrctl start |
11) Criação do banco (DBCA) em modo silencioso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -sysPassword SENHA \ -systemPassword SENHA \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName ${PDB_NAME} \ -pdbAdminPassword SENHA \ -databaseType MULTIPURPOSE \ -memoryMgmtType auto_sga \ -totalMemory 2000 \ -storageType FS \ -datafileDestination "${DATA_DIR}" \ -redoLogFileSize 50 \ -emConfiguration NONE \ -ignorePreReqs |
Novamente, como já definimos as variáveis no passo 7, o comando acima já irá conhecer todos os caminhos necessários.
Altere apenas SENHA pela senha desejada para os usuários.
12) Para que o ambiente fique certificado pela Oracle, é necessário estar pelo menos com a versão 19.4, no nosso caso, iremos utilizar a última disponível na criação deste post 19.8.
Primeiro, realize a atualização do utilitário OPatch, veja como fazer:
Atualizando o Oracle OPatch
Com o patch 31281355 baixado, iremos realizar a instalação:
OBS.: Baixe o banco de dados e listener no ambiente antes de executar.
1 2 3 4 5 6 7 |
cd /tmp unzip p31281355_190000_Linux-x86-64.zip cd 31281355 #Checando pre reqs $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ #atualizando ambiente: $ORACLE_HOME/OPatch/opatch apply |
13) Propositalmente, criamos a instância (CDB e PDB) antes da aplicação do patch, agora se faz necessário aplicar o datapatch para que a instância já criada “reconheça” o patch aplicado.
OBS.: Suba a instância e abra o PDB.
1 |
$ORACLE_HOME/OPatch/datapatch -verbose |
14)Podemos conferir se tudo correu bem com a consulta abaixo no CDB:
1 2 3 4 5 6 7 8 9 10 |
SQL> col STATUS for a15 SQL> col ACTION_TIME for a35 SQL> col DESCRIPTION for a60 SQL> select patch_id, patch_uid, patch_type, action, status, action_time, description from dba_registry_sqlpatch; PATCH_ID PATCH_UID PATCH_TYPE ACTION STATUS ACTION_TIME DESCRIPTION ---------- ---------- ---------- --------------- --------------- ----------------------------------- ------------------------------------------------------------ 31281355 23688465 RU APPLY SUCCESS 22-JUL-20 08.53.15.825070 AM Database Release Update : 19.8.0.0.200714 (31281355) SQL> |
É isso, pessoal!
Oracle Database 19c (19.8) devidamente instalado e com uma instância (CDB + PDB) criados no Red Hat 8.
Em continuação a este post, estarei realizando a instalação do Oracle Enterprise Manager Cloud Control 13c Release 4 (13.4.0.0.0) utilizando esse PDB ciado como repositório.
Referências: