terça-feira, 24 de novembro de 2015

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

O Post abaixo descreve a minha primeira experiencia na instalação do Oracle 12c Grid + RDBMS, a instalação completa esta dividida em duas partes, uma para o Grid/ASM, outra para o RDBMS.

Todas as referencias utilizadas para a instalação são citadas no final do post, foi utilizado um ambiente virtual não produtivo para laboratório.

A configuração do sistema operacional foi realizada de forma manual, atualmente para clientes Oracle Linux a Oracle fornece uma package que valida e configura os requisitos minimos de sistema de operacional para a instalação do GI + RDBMS, essa package não foi utilizada neste post.

Configuração do ambiente

A tabela abaixo representa como os componentes minimos de Hardware e Sistema operacionais foram alocados e configurados para o ambiente que será criado.

ContextoParametroValue
NetworkHostnameol7-121-single
Networkip192.168.1.120
SystemSOOracle Linux 7
SystemOracle Version12.1.0.2
SystemRoot Size16 GB
SystemSwap Size12 GB
SystemPhysical Memory4 GB
System/oracle12 GB
System/grid12 GB
SystemOracle Base Grid/grid/app/grid
SystemOracle Base Oracle/oracle/app/oracle
SystemOracle GI Home/grid/app/12.1.0.2/grid
SystemOracle Home/oracle/app/oracle/product/12.1.0.2/db_1

Pre-requisitos

Um modificação interessante nos documentos da Oracle é que agora ela tem uma pagina destinada exclusiva para o checklist, eu acho interessante fazer a instalação utilizando ela como referencia, para cada cenário é necessário cumprir um não um pre-requisito, portanto não utilizar como fonte unica para sua instalação.


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.

Oracle - Pre-Requisitos - Packages RHEL7

ContextoParametro
Packagebinutils-2.23.52.0.1-12.el7.x86_64
Packagecompat-libcap1-1.10-3.el7.x86_64
Packagegcc-4.8.2-3.el7.x86_64
Packagegcc-c++-4.8.2-3.el7.x86_64
Packageglibc-2.17-36.el7.i686
Packageglibc-2.17-36.el7.x86_64
Packageglibc-devel-2.17-36.el7.i686
Packageglibc-devel-2.17-36.el7.x86_64
Packageksh
Packagelibaio-0.3.109-9.el7.i686
Packagelibaio-0.3.109-9.el7.x86_64
Packagelibaio-devel-0.3.109-9.el7.i686
Packagelibaio-devel-0.3.109-9.el7.x86_64
Packagelibgcc-4.8.2-3.el7.i686
Packagelibgcc-4.8.2-3.el7.x86_64
Packagelibstdc++-4.8.2-3.el7.i686
Packagelibstdc++-4.8.2-3.el7.x86_64
Packagelibstdc++-devel-4.8.2-3.el7.i686
Packagelibstdc++-devel-4.8.2-3.el7.x86_64
PackagelibXi-1.7.2-1.el7.i686
PackagelibXi-1.7.2-1.el7.x86_64
PackagelibXtst-1.2.2-1.el7.i686
PackagelibXtst-1.2.2-1.el7.x86_64
Packagemake-3.82-19.el7.x86_64
Packagesysstat-10.1.5-1.el7.x86_64 

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:

[root@ol7-121-single ~]# groupadd oinstall -g 501
[root@ol7-121-single ~]# groupadd dba -g 502
[root@ol7-121-single ~]# groupadd oper -g 503
[root@ol7-121-single ~]# groupadd backupdba -g 504
[root@ol7-121-single ~]# groupadd dgdba -g 505
[root@ol7-121-single ~]# groupadd kmdba -g 506
[root@ol7-121-single ~]# groupadd asmadmin -g 507
[root@ol7-121-single ~]# groupadd asmdba -g 508
[root@ol7-121-single ~]# 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

[root@ol7-121-single ~]# id oracle
uid=502(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),504(backupdba),505(dgdba),506(kmdba),508(asmdba)

[root@ol7-121-single ~]# id grid
uid=501(grid) gid=501(oinstall) groups=501(oinstall),502(dba),507(asmadmin),508(asmdba),509(asmoper)

[root@ol7-121-single ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ol7-121-single ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ol7-121-single ~]#

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.

[root@ol7-121-single CVU_12.1.0.2.0_grid]# 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
[root@ol7-121-single CVU_12.1.0.2.0_grid]# 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'
[root@ol7-121-single CVU_12.1.0.2.0_grid]#


Instalando Grid Infrastructure

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.















Neste ponto é solicitado que sejam executados os scripts abaixo como root, dessa maneira é feito a configuração necessárias no SO.



Aqui se faz necessário executar o roothas como root, nesse ponto é necessário executar o script exclusivo para StandAlone como informado no shell.



Agora a instalação esta completada.



Criando a Instancia de ASM

A seguir será criada a instancia de ASM, no primeiro diskgroup criado o Oracle irá alocar o spfile para iniciar a instancia de ASM, e irá criar um vinculo entre os recursos, o ASM virá dependente deste diskgroup.

Os diskgroups serão criados com redundancia normal e com 2 failures group, simulando duas controladoras, cada bloco sera escrito 1 vez em discos de controladoras diferentes.

Ao final da instação o Oracle cria dois recursos no Oracle Restart, um para o ASM e outro para os Demais Diskgroups criados, o Oracle Restart fica responsavel de inicia-los a cada boot ou evento de shutdown inesperado.

Para realizar a configuração do ASM e dos Diskgroup foi utilizado o ASMCA, o qual é chamado atraves do prompt e oferece uma interface grafica para o gerenciamento da instancia de ASM.













Parte 2 
Oracle 12c - Instalação - Database + Grid Infrastructure - Parte 2

Referencias