Série de artigos sobre Instalação do Oracle RAC:
Instalação do Oracle RAC 10g Release 2 – Parte 1: Pré-requisitos
Instalação do Oracle RAC 10g Release 2 – Parte 2: Criação da VM
Instalação do Oracle RAC 10g Release 2 – Parte 3: Instalação do Linux
Instalação do Oracle RAC 10g Release 2 – Parte 4: Configuração do Linux
Instalação do Oracle RAC 10g Release 2 – Parte 5: Clonagem da VM
Instalação do Oracle RAC 10g Release 2 – Parte 6: Pré-instalação do RAC
Instalação do Oracle RAC 10g Release 2 – Parte 7: Instalação do Oracle Clusterware
Instalação do Oracle RAC 10g Release 2 – Parte 8: Instalação do Patchset 10.2.0.4 no Clusterware
Instalação do Oracle RAC 10g Release 2 – Parte 9: Instalação do Oracle Database
Instalação do Oracle RAC 10g Release 2 – Parte 10: Instalação do Patchset 10.2.0.4 no Oracle Database
Instalação do Oracle RAC 10g Release 2 – Parte 11: Criação do Listener no Cluster
Instalação do Oracle RAC 10g Release 2 – Parte 12: Criação do ASM no Cluster
Instalação do Oracle RAC 10g Release 2 – Parte 13: Criação do Banco de Dados no Cluster
Instalação do Oracle RAC 10g Release 2 – Parte 14: Criação do Serviço para Load Balance e Failover
—
Conforme prometido, série de artigos para adição de um nó ao cluster:
Adição/Remoção de Nó – Parte 1: Pré-requisitos de software
Adição/Remoção de Nó – Parte 2: Criação da 3ª Máquina Virtual
Adição/Remoção de Nó – Parte 3: Instalação do Linux
Olá pessoal!
Vimos no último artigo como instalar o Linux no servidor mvrac3.
Pois bem, agora precisamos configurar o nosso sistema operacional para atender os pré-requisitos necessários para instalar o software Oracle de banco de dados e clusterização.
Os pré-requisitos são citados na Documentação Oficial:
- Database Installation Guide for Linux x86;
- Database Oracle Clusterware and Oracle Real Application Clusters Installation Guide for Linux.
No entanto, quando o software de banco de dados 10g Release 2 foi lançado, ainda não estava disponível no mercado o Red Hat Enterprise Linux 5. Por esse motivo, nos documentos acima, essa versão de sistema operacional não é citada. Somente é possível encontrar esses pré-requisitos no Metalink (Oracle Support). Para acesso ao Metalink, é necessário ter um contrato de suporte junto à Oracle (CSI). No Metalink, é possível encontrar notas de suporte atualizadas para as versões de banco ainda suportadas pela Oracle.
A Nota 419646.1 cita os pré-requisitos necessários para instalar o Oracle 10g Release 2 no Red Hat Enterprise Linux 5 32bit.
Vamos lá, para os pacotes de sistema operacional (os RPM’s), a lista dos pré-requisitos é a seguinte:
- binutils-2.17.50.0.6-2.el5;
- compat-libstdc++-33-3.2.3-61;
- elfutils-libelf-0.125-3.el5;
- elfutils-libelf-devel-0.125;
- gcc-4.1.1-52;
- gcc-c++-4.1.1-52;
- glibc-2.5-12;
- glibc-common-2.5-12;
- glibc-devel-2.5-12;
- glibc-headers-2.5-12;
- libaio-0.3.106;
- libaio-devel-0.3.106;
- libgcc-4.1.1-52;
- libstdc++-4.1.1 ;
- libstdc++-devel-4.1.1-52.e15;
- make-3.81-1.1;
- sysstat-7.0.0;
- unixODBC-2.2.11;
- unixODBC-devel-2.2.11.
Para pesquisar se temos os pacotes, uma das melhores maneiras é utilizando a seguinte sintaxe, com o binário rpm com o usuário root:
rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" | grep package_name
Como exemplo, vou pesquisar o pacote binutils:
rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" | grep binutils
A saída do comando será:
binutils-2.17.50.0.6.9.el5 (i386)
De acordo com a lista acima, e com a instalação do sistema operacional realizada, os únicos pacotes que ainda precisamos instalar são os seguintes:
elfutils-libelf-devel-0.125; libaio-devel-0.3.106; unixODBC-2.2.11; unixODBC-devel-2.2.11.
Para instalar esses pacotes, primeiramente devemos apontar na Console da VMWare que essa máquina virtual utilizará a imagem ISO do Linux:
Após isso, deveremos montar o DVD no sistema operacional, acessar o DVD e instalar os pacotes restantes:
[root@mvrac3 ~]# mount /dev/hdc /media mount: block device /dev/hdc is write-protected, mounting read-only [root@mvrac3 ~]# cd /media/Server/ [root@mvrac3 Server]# rpm -ivh elfutils-libelf-devel* warning: elfutils-libelf-devel-0.137-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ############################### [100%] 1:elfutils-libelf-devel-s############################### [ 50%] 2:elfutils-libelf-devel ############################### [100%] [root@mvrac3 Server]# rpm -ivh libaio-devel* warning: libaio-devel-0.3.106-3.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ############################### [100%] 1:libaio-devel ############################### [100%] [root@mvrac3 Server]# rpm -ivh unixODBC* warning: unixODBC-2.2.11-7.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ############################### [100%] 1:unixODBC ############################### [ 33%] 2:unixODBC-devel ############################### [ 67%] 3:unixODBC-kde ############################### [100%]
Pronto! Uma parte dos pré-requisitos foi concluída!
O próximo passo serão os parâmetros de kernel.
Os seguintes parâmetros precisam ser adicionados ao arquivo de configuração /etc/sysctl.conf
kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144
Após colocar esses parâmetros no arquivo acima especificado, para efetivar os parâmetros no sistema operacional, o seguinte comando deverá ser executado como root:
sysctl -p
Agora, faremos a criação dos grupos e usuário no sistema operacional. Para o ambiente com Oracle RAC, a Oracle solicita que todos os usuários e grupos envolvidos na instalação do software Oracle, possuam os mesmos ID’s em todas as máquinas. Por isso, os grupos oinstall, dba e o usuário oracle serão criados da seguinte forma:
groupadd -g 1521 oinstall groupadd -g 1522 dba useradd -g oinstall -G dba -u 1521 oracle
A senha do usuário oracle deverá ser definida:
[root@mvrac3 Server]# passwd oracle Changing password for user oracle. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully
Com os grupos e usuário criados, agora os diretórios deverão ser criados:
mkdir -p /u01/app/oracle/oraInventory mkdir -p /u01/app/oracle/product/10.2.0/crs mkdir -p /u01/app/oracle/product/10.2.0/db_1 chown -R oracle:oinstall /u01
Num ambiente corporativo, é recomendado instalar um Oracle Home para o ASM separadamente do Oracle Home do banco de dados. Como estamos num ambiente virtualizado, utilizarei o ASM e o banco de dados no mesmo Oracle Home.
Agora, o arquivo /etc/security/limits.conf deverá ser editado e as seguintes linhas deverão ser adicionadas:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
O próximo arquivo a ser editado é o /etc/pam.d/login:
session required pam_limits.so
O próximo arquivo a ser editado é o /etc/profile:
if [ $USER = "oracle" ]; then ulimit -u 16384 ulimit -n 65536 fi
O módulo hangcheck-timer deverá ser carregado no kernel. Além disso, ele deverá ser carregado automaticamente quando o servidor for iniciado novamente. Num próximo artigo eu definirei em detalhes sobre o que é o hangcheck-timer. Editar o arquivo /etc/rc.d/rc.local e inserir a seguinte linha no final arquivo:
/sbin/insmod /lib/modules/2.6.18-128.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1
Após isso, executar o arquivo e verificar se o módulo foi carregado:
[root@mvrac3 ~]# /etc/rc.d/rc.local [root@mvrac3 ~]# lsmod |grep hangcheck hangcheck_timer 8025 0
Outro ponto importante num ambiente clusterizado, é o horário dos servidores. Como os servidores vão “hospedar” o mesmo banco de dados, é importante que o horário desses servidores estejam sincronizados. Por este motivo, é recomendado utilizar um servidor NTP (Network Time Protocol). Muitas empresas têm servidores NTP internamente, na sua própria rede, e na grande maioria das vezes, esses servidores NTP apontam para um servidor NTP externo, muito preciso, brasileiro, que é o servidor da Rede Nacional de Ensino e Pesquisa (RNP).
Se a empresa não tiver um servidor NTP interno, e os servidores de banco de dados conseguirem acessar a Internet, basta colocar a seguinte informação na crontab do usuário root no servidor de banco de dados:
* * * * * /usr/sbin/ntpdate ntp.cais.rnp.br >/dev/null 2>/dev/null
Com isso, o servidor sempre terá a hora sincronizada.
Para garantir que o serviço está OK, ou seja, que o servidor de banco de dados consegue utilizar o binário ntpdate para acessar o servidor da RNP, basta executar o seguinte comando como root:
[root@mvrac3 ~]# ntpdate ntp.cais.rnp.br 11 Sep 00:06:46 ntpdate[23646]: step time server 200.144.121.33 offset 90541.348582 sec
O próximo passo é configurar o arquivo /etc/hosts do servidor. Nesse arquivo, teremos a configuração de todos os servidores que farão parte do cluster (os servidores criados anteriormente, mvrac1 e mvrac2 e o novo servidor mvrac3):
# ======================================== # Arquivo /etc/hosts configurado para utilizacao do Oracle RAC # Configurado por Marcus Vinicius # 11/09/2012 # ======================================== # Localhost 127.0.0.1 localhost.localdomain localhost # Oracle RAC 10g # ----------------- # Rede Publica 172.23.10.11 mvrac1.viniciusdba.com.br mvrac1 172.23.10.12 mvrac2.viniciusdba.com.br mvrac2 172.23.10.13 mvrac3.viniciusdba.com.br mvrac3 # InterConnect - Conexao Privada 10.0.0.11 mvrac1-priv.viniciusdba.com.br mvrac1-priv 10.0.0.12 mvrac2-priv.viniciusdba.com.br mvrac2-priv 10.0.0.13 mvrac3-priv.viniciusdba.com.br mvrac3-priv # Virtual IP's 172.23.10.21 mvrac1-vip.viniciusdba.com.br mvrac1-vip 172.23.10.22 mvrac2-vip.viniciusdba.com.br mvrac2-vip 172.23.10.23 mvrac3-vip.viniciusdba.com.br mvrac3-vip
Atenção:
O arquivo /etc/hosts acima deverá estar igual nos três servidores. Isso significa que você deve sobrescrever o arquivo /etc/hosts existente no servidor mvrac1 e mvrac2 com o conteúdo exibido acima.
Por enquanto, para finalizarmos os pré-requisitos, falta instalarmos e configurarmos a ASMLib. Eu explicarei o porquê de utilizarmos essa LIB num artigo posterior.
Para baixarmos a ASMLib, precisamos acessar o seguinte link:
Oracle ASMLib Page / Downloads / Red Hat Enterprise Linux 5 AS*.
Deveremos encontrar a seção na página que trata da arquitetura 32bit:
Intel IA32 (x86) Architecture
Após encontrarmos, os dois primeiros arquivos deverão ser baixados:
Após baixar esses dois arquivos, procurar a versão correta da Lib para o Kernel utilizado no sistema operacional: 2.6.18-128.el5. Pode ser que você encontre variações como 2.6.18-128.1.1.el5 e assim por diante. Ignore essas versões, encontre a versão exata do Kernel:
Baixar os três arquivos, transferí-los via SCP/FTP para o servidor e instalá-los, com o usuário root:
[root@mvrac3 ~]# rpm -ivh oracleasm* warning: oracleasm-2.6.18-128.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ############################### [100%] 1:oracleasm-support ############################### [ 33%] 2:oracleasm-2.6.18-128.el############################### [ 67%] 3:oracleasmlib ############################### [100%]
Após instalar os pacotes, deveremos configurar a ASMLib no sistema operacional:
[root@mvrac3 ~]# /etc/init.d/oracleasm configure Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ]
Pronto! A primeira fase de pré-requisitos foi concluída! Falta agora particionar os discos e criar a equivalência de usuários entre os servidores que farão parte do cluster.
Como estamos num ambiente virtualizado, podemos agora baixar esse servidor, para clonar esse servidor para a nova máquina virtual (mvrac2).
Baixar o servidor:
shutdown -h now
No próximo artigo veremos como clonar esse servidor para criar a nova máquina virtual.
Abraços!
Vinicius
Related posts
Disclaimer
Minhas postagens refletem minhas próprias opiniões e não representam necessariamente as opiniões do meu empregador, a Accenture.