sexta-feira, 31 de janeiro de 2020

Oracle 19c - Instalação - Database + Grid Infrastructure - Parte 1

Neste esta dividido em duas partes, a primeira vamos configurar o servidor e instalar o Oracle Restart, ou Grid Infrastructure. Na segunda parte iremos então instalar o database sí, não vi muitas mudanças no processo de instalação entre o 12.2 e o 19, porém uma coisinha ou outra acaba mudando

Configuração do ambiente

A seguir tenho a configuração minima da maquina virtual que irá receber a instalação da base de dados.

ContextoParametroValue
NetworkHostname1z0-083-srv
Networkip192.168.1.19
SystemSOOracle Linux 7.5
SystemOracle Version19c
SystemRoot Size30 GB
SystemSwap Size8 GB
SystemPhysical Memory8 GB
SystemOracle Mount Point /u01
SystemOracle Mount Point Size50 GB
SystemOracle Base Grid/u01/app/grid
SystemOracle Base Oracle/u01/app/oracle
SystemOracle GI Home/u01/app/oracle/product/19.0.0/grid
SystemOracle Home/u01/app/oracle/product/19.0.0/rdbms

OS Packages

Abaixo temos as packages que são requiridas para a instalação do produto, essas packages podem ser instaladas atraves de um repositório local ou externo, podemos utilizar tanto o comando yum quanto o rpm para realizar a instalação, esta relação foi pode ser encontrada na documentação da Oracle abaixo.

Oracle OS Packages

yum install bc
yum install binutils
yum install compat-libcap1
yum install compat-libstdc++
yum install elfutils-libelf
yum install elfutils-libelf-devel
yum install fontconfig-devel
yum install glibc
yum install glibc-devel
yum install ksh
yum install libaio
yum install libaio-devel
yum install libdtrace-ctf-devel
yum install libXrender
yum install libXrender-devel
yum install libX11
yum install libXau
yum install libXi
yum install libXtst
yum install libgcc
yum install libstdc++
yum install libstdc++-devel
yum install libxcb
yum install make
yum install net-tools (for Oracle RAC and Oracle Clusterware)
yum install nfs-utils (for Oracle ACFS)
yum install python (for Oracle ACFS Remote)
yum install python-configshell (for Oracle ACFS Remote)
yum install python-rtslib (for Oracle ACFS Remote)
yum install python-six (for Oracle ACFS Remote)
yum install targetcli (for Oracle ACFS Remote)
yum install smartmontools
yum install sysstat

Grupos do Sistema Operacional

A seguir temos todos os grupos que podem ser criados no sistema operacional para atender os produtos da Oracle. Na versão 12c a Oracle estendeu a feature de Role Separation para Extended Role Separation, criando 3 novos grupos e 3 novos nives de privilegios, são eles sysbackup, sysdb e syskm.


ContextoParametroValuePrivilegio
SecurityOracle Iventory Groupoinstall (GID 501)NA
SecurityDatabase Adm Group (OSDBA)dba (GID 502)sysdba
SecurityDatabase Oper Group (OSOPER)oper (GID 503)sysoper
SecurityDatabase Bkp Group (OSBACKUPDBA)backupdba (GID 504)sysbackup
SecurityDatabase Dataguard Group (OSDGDBA)dgdba (GID 505)sysdg
SecurityEncryption key management (OSKMDBA)kmdba (GID 506)syskm
SecurityGrid Adm Groupasmadmin (507)sysasm
SecurityGrid DBA Groupasmdba (508)sysdba
SecurityGrid Oper Groupasmoper (509)sysoper


No linux os grupos podem ser criados da seguinte forma:

groupadd oinstall -g 501
groupadd dba -g 502
groupadd oper -g 503
groupadd backupdba -g 504
groupadd dgdba -g 505
groupadd kmdba -g 506
groupadd asmadmin -g 507
groupadd asmdba -g 508
groupadd asmoper -g 509

Usuarios de Sistema Operacional

Abaixo temos os usuários que podem ser criados, utilizarei o Oracle e Grid para a minha instalação, assim utlizando apenas o Role Separation, deixando os demais grupos para serem testados após a instalação e o ambiente preparado para o Extended Role Separation.

ContextoParametroValue
SecurityGrid ownergrid (501)
SecurityGrid owner groups-g oinstall -G asmadmin,asmdba,asmoper,dba grid
SecurityDatabase owneroracle (502)
SecurityDatabase owner groups-g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba oracle
No linux os usuários foram criados conforme abaixo:

useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 502 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba oracle

OS User Resource Limit

A seguir  temos os valores de resource limit recomendados pela Oracle

ContextoParametroValue
Resource Limitnproc Soft Limitgrid/oracle soft nproc 2047
Resource Limitnproc Hard Limitgrid/oracle hard nproc 16384
Resource Limitnofile Soft Limitgrid/oracle soft nofile 1024
Resource Limitnofile Hard Limitgrid/oracle hard nofile 65536
Resource Limitstack Soft Limitgrid/oracle soft stack 10240 KB
Resource Limitstack Hard Limitgrid/oracle hard stack 32768 KB

Adicionar as linhas a seguir no final do arquivo /etc/security/limits.conf.

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

Kernel Parameters

Editar o /etc/sysctl.conf e incluir as linhas abaixo:

ContextoParametro
Kernelfs.file-max = 6815744
Kernelkernel.sem = 250 32000 100 128
Kernelkernel.shmmni = 4096
Kernelkernel.shmall = 1073741824
Kernelkernel.shmmax = 4398046511104
Kernelnet.core.rmem_default = 262144
Kernelnet.core.rmem_max = 4194304
Kernelnet.core.wmem_default = 262144
Kernelnet.core.wmem_max = 1048576
Kernelfs.aio-max-nr = 1048576
Kernelnet.ipv4.ip_local_port_range = 9000 65500

[root@ol7-121-single ~]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

Demais Configurações

SELinux

Alterar o Oracle SELinux para permissive, editar o arquivo /etc/selinux/config e alterar para SELINUX=permissive

Firewall

Desabilitar o firewall, como demostrado abaixo

# systemctl stop firewalld
# systemctl disable firewalld

Instalar o cvuqdisk

Depois de criados os usuarios e grupos do sistema operacional, instalar o pacote cvuqdisk, esse é utilizado para validar discos compartilhados durante a instalação do Oracle, essa pacote se encontra nos binários do pacote da instalação do grid/rdbms na pasta rpm.


[root@ol7-121-single grid]# cd rpm/
[root@ol7-121-single rpm]# pwd
/oracle/grid/rpm
[root@ol7-121-single rpm]# rpm -Uvh cvuqdisk-1.0.9-1.rpm
warning: Failed to open SELinux handle.
Preparing...                          ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.9-1                 ################################# [100%]
[root@ol7-121-single rpm]#


Desabilitando o Daemon avahi.

Este Daemon é utilizado pelo Linux para busca de devices na rede, para facilitar a comunicação com outros usuarios e dispositivos, porém impacta diretamente no Grid e é um pre-requisito que seja desabilitado.

service avahi-daemon stop
Redirecting to /bin/systemctl stop  avahi-daemon.service
Warning: Stopping avahi-daemon.service, but it can still be activated by:
  avahi-daemon.socket
chkconfig avahi-daemon off
Note: Forwarding request to 'systemctl disable avahi-daemon.service'.
rm '/etc/systemd/system/multi-user.target.wants/avahi-daemon.service'
rm '/etc/systemd/system/sockets.target.wants/avahi-daemon.socket'
rm '/etc/systemd/system/dbus-org.freedesktop.Avahi.service'


Pre-Configuração Automática


A maioria dos passos acima podem ser feitas de forma automatica utilizando o pacote de preconfiguração RPM da Oracle, caso sejá inscrito no suporte de Linux da Oracle. Esse pacote realizará a instalação de pacotes RPMs básicos, fará o ajuste de parametros de kernel e usuários, para isso baste instalar como root:

yum install oracle-database-preinstall-19c

Validando com ORACHK

Executar também o orachk, pode ser obtido dentro do ultimo binário do SW do Grid / Database, ou também pode ser baixado através do da nota abaixo, agora o TFA e o orachk fazem parte de um framework chamado Autonomous Health Framework, o qual também possui o TFA e o Oratop, entre outros.

O Orachk irá realizar pequenas validações, como pacotes, usuários, grupos e kernel, podendo assim evitar maior problemas durante a instalação de fato.

 MOS: Autonomous Health Framework (AHF) - Including TFA and ORAchk/EXAChk (Doc ID 2550798.1)

Executar:

./orachk -profile preinstall

Instalando Grid Infrastructure

A partir do 12.2 a Oracle disponibiliza uma imagem pronta dos binários, basta somente extrair o ZIP para o local desejado e rodar o setup, não há necessidade da instalação dos binários como era feito anteriormente.

As telas abaixo mostram a instalação do GridInfrastructur para um Servidor StandAlone com a opção de instalação de binário apenas, o ASM iremos criar separadamente.











Ao termino será solicitado que seja executado dois scripts como root, a diferença agora entre o Oracle 19c e as demais releases é que para configurar de fato o Oracle Clusterware ou o Oracle Restart, fazemos através de do gridSetup e não mais através de script como era feito antes, podendo então ser feito através de interface gráfica.

[root@1z0-083-srv oraInventory]# ./orainstRoot.sh
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh

To configure Grid Infrastructure for a Cluster or Grid Infrastructure for a Stand-Alone Server execute the following command as grid user:
/u01/app/oracle/product/19.0.0/grid/gridSetup.sh
This command launches the Grid Infrastructure Setup Wizard. The wizard also supports silent operation, and the parameters can be passed through the response file that is available in the installation media.

Configurando o Oracle Restart

Vamos então agora de fato configurar o Oracle Restart, para isso chamamos o  gridSetup novamente, durante esse processo temos a opção de instalar e configura o asmfilter, vamos selecionar para que seja utilizado o ASMFilter dentro da nossa nova instalação.














[root@1z0-083-srv grid]# ./root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/oracle/product/19.0.0/grid

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.
Using configuration parameter file: /u01/app/oracle/product/19.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/1z0-083-srv/crsconfig/roothas_2020-01-31_02-41-00PM.log
2020/01/31 14:41:08 CLSRSC-363: User ignored prerequisites during installation
LOCAL ADD MODE 
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE 
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node 1z0-083-srv successfully pinned.
2020/01/31 14:46:41 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'

1z0-083-srv     2020/01/31 14:53:43     /u01/app/grid/crsdata/1z0-083-srv/olr/backup_20200131_145343.olr     724960844     
2020/01/31 14:55:49 CLSRSC-327: Successfully configured Oracle Restart for a standalone server

Nenhum comentário: