This post is also available in:
Série: Oracle RAC 12.2 – Instalação Completa no VMware Workstation
📌 Sobre esta série: Este guia cobre Oracle RAC 12c, que está fora de suporte. O objetivo é documentar aprendizado e revisar conceitos – não recomendar a versão para produção. Entenda o contexto completo na introdução da série →
📋 Esta série — Oracle RAC 12.2 no VMware Workstation:
⚙️ Pré-requisito: Post 1 concluído – VMware configurado e Openfiler com os LUNs iSCSI prontos.
Criar a VM orclrac1
Criar a VM no VMware
File → New Virtual Machine → Custom (advanced) → Next
→ Hardware compatibility: selecione a versão do seu VMware Workstation → Next
→ I will install the operating system later → Next
→ Guest OS: Linux | Oracle Linux 64-bit → Next
→ Name: orclrac1
→ Location: /vms01/oracle/orclrac1/
→ Processors: 2 sockets × 2 cores → Next
→ Memory: 8192 MB → Next
→ Network: Custom → /dev/vmnet0 (pública) → Next
→ I/O Controller: LSI Logic → Next
→ Disk: SCSI | 60 GB | Single file → Next
→ FinishAjustar Hardware
Com a VM criada e desligada, ajuste em Settings:
| Item | Configuração |
|---|---|
| Memory | 8192 MB + marcar Reserve all guest memory |
| Processors | 2 × 2 cores + marcar Virtualize VT-x/AMD-V |
| Network Adapter | Custom → /dev/vmnet0 (pública) |
| Network Adapter 2 (adicionar) | Custom → /dev/vmnet1 (interconnect) |
| Network Adapter 3 (adicionar) | Custom → /dev/vmnet2 (iSCSI) |
| Hard Disk 2 (adicionar) | 100 GB – SCSI 0:1 – para /u01 |
Para adicionar NICs e disco: Add → Network Adapter / Add → Hard Disk.
Editar orclrac1.vmx
Antes de ligar a VM, adicione as entradas de controle de tempo e UUID ao arquivo .vmx. Verifique primeiro para evitar duplicatas:
grep "EnableUUID\|time.synchronize" /vms01/oracle/orclrac1/orclrac1.vmxSe não existirem, adicione:
cat >> /vms01/oracle/orclrac1/orclrac1.vmx << 'EOF'
time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"
time.synchronize.tools.startup = "FALSE"
disk.EnableUUID = "TRUE"
EOF⚠️ Sync de tempo desabilitado é obrigatório para o RAC. O VMware Tools sincronizando o relógio de forma independente pode causar divergência entre os nós e levar o Clusterware a despejar um nó do cluster.
⚠️ Variáveis duplicadas no
.vmximpedem a VM de iniciar. Sempre verifique antes de adicionar.
Instalar o Oracle Linux 7.6
Monte o ISO OracleLinux-R7-U6-Server-x86_64-dvd.iso e ligue a VM. O instalador exibe um Installation Summary com as seguintes seções a configurar:
| Tela | Configuração |
|---|---|
| Date & Time | Selecione sua região e cidade. Network Time: OFF |
| Keyboard | English (US) – padrão já selecionado |
| Language Support | English (United States) – padrão já selecionado |
| Installation Source | Local media – não mexer |
| Software Selection | Minimal Install |
| Installation Destination | Selecionar apenas sda (60 GB) – sdb deve ficar desmarcado. Partitioning: Automatically configure |
| Kdump | Desmarcar Enable kdump |
| Network & Host Name | Não configurar rede – apenas definir hostname: orclrac1.oracle.local → Apply |
| Security Policy | Apply security policy: OFF |
| Root Password | Senha forte |
| User Creation | Não criar usuário |
Clique Begin Installation. Aguarde concluir e reinicie.
Ativar Rede Temporária via nmtui
💡 Por que fazer isso agora? A instalação foi concluída sem configurar rede para simplificar o processo. O
nmtuiativa a interface temporariamente via DHCP – apenas para conseguir acesso SSH ao servidor. A partir daí todos os comandos são executados remotamente, sem precisar digitar nada no console da VM.
No console do orclrac1, execute:
nmtuiNavegue em: Edit a connection → ens33 → marcar Automatically connect → OK
Em seguida: Activate a connection → selecionar ens33 → Activate → Back → Quit
Pegue o IP atribuído pelo DHCP:
ip addr show ens33Anote o IP e acesse via SSH do host:
ssh root@<ip-do-dhcp>Configurar Oracle Linux no orclrac1
A partir daqui todos os comandos são executados via SSH.
Corrigir Nomes das Interfaces e Configurar IPs
Passo 1 – Aplicar correção no GRUB:
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 /' \
/etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfgPasso 2 – Remover arquivos de interface antigos e criar os novos:
rm -f /etc/sysconfig/network-scripts/ifcfg-ens33 \
/etc/sysconfig/network-scripts/ifcfg-ens34 \
/etc/sysconfig/network-scripts/ifcfg-ens35
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.15.170
NETMASK=255.255.255.0
GATEWAY=192.168.15.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV6INIT=no
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-eth1 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=10.10.10.1
NETMASK=255.255.255.0
DEFROUTE=no
IPV6INIT=no
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-eth2 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth2
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.20.1
NETMASK=255.255.255.0
DEFROUTE=no
IPV6INIT=no
EOFPasso 3 – Reiniciar:
rebootApós reiniciar, acesse via SSH pelo IP fixo e valide:
ssh root@192.168.15.170
ip addr show eth0 # 192.168.15.170
ip addr show eth1 # 10.10.10.1
ip addr show eth2 # 192.168.20.1Montar Disco /u01
lsblkInicie o fdisk no disco /dev/sdb:
fdisk /dev/sdbQuando o prompt aparecer, execute na sequência:
| Tecla | Ação |
|---|---|
n | Nova partição |
p | Tipo primária |
1 | Número da partição |
| Enter | Aceitar primeiro setor (padrão) |
| Enter | Aceitar último setor (padrão – usa todo o disco) |
w | Gravar e sair |
mkfs.xfs /dev/sdb1
mkdir -p /u01
blkid /dev/sdb1 # anote o UUID
echo "UUID=<uuid> /u01 xfs defaults 0 0" >> /etc/fstab
mount -a
df -h /u01Configurar Hostname e /etc/hosts
hostnamectl set-hostname orclrac1.oracle.localcat >> /etc/hosts << 'EOF'
192.168.15.170 orclrac1 orclrac1.oracle.local
192.168.15.171 orclrac2 orclrac2.oracle.local
192.168.15.180 orclrac1-vip orclrac1-vip.oracle.local
192.168.15.181 orclrac2-vip orclrac2-vip.oracle.local
10.10.10.1 orclrac1-priv orclrac1-priv.oracle.local
10.10.10.2 orclrac2-priv orclrac2-priv.oracle.local
192.168.15.190 orclrac-scan orclrac-scan.oracle.local
192.168.15.191 orclrac-scan orclrac-scan.oracle.local
192.168.15.192 orclrac-scan orclrac-scan.oracle.local
192.168.20.10 openfiler openfiler.oracle.local
EOFInstalar Pacotes de Pré-Requisito
yum install -y oracle-database-server-12cR2-preinstall
yum install -y open-vm-tools iscsi-initiator-utils chronyParâmetros de Kernel
grep "shmmax" /etc/sysctl.confSe não estiver configurado pelo preinstall:
cat >> /etc/sysctl.conf << 'EOF'
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
vm.nr_hugepages = 2048
EOF
sysctl -pLimites de Shell
cat >> /etc/security/limits.conf << 'EOF'
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
EOFCriar Grupos ASM e Ajustar Usuário oracle
O preinstall já cria o usuário oracle com os grupos básicos. Aqui criamos apenas os grupos ASM:
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
usermod -a -G asmadmin,asmoper,asmdba oracle
echo "oracle:Welcome1" | chpasswd
id oracleEstrutura de Diretórios Oracle
mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
mkdir -p /u01/stage
chown -R oracle:oinstall /u01
chmod -R 775 /u01Variáveis de Ambiente
cat >> /home/oracle/.bash_profile << 'EOF'
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/12.2.0/grid
export ORACLE_SID=+ASM1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS'
umask 022
alias grid_env='export ORACLE_HOME=/u01/app/12.2.0/grid; export ORACLE_SID=+ASM1; export PATH=$ORACLE_HOME/bin:$PATH; echo "Grid Home: $ORACLE_HOME"'
alias db_env='export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1; export ORACLE_SID=ORCL1; export PATH=$ORACLE_HOME/bin:$PATH; echo "DB Home: $ORACLE_HOME"'
EOFDesabilitar Firewall e SELinux
systemctl disable firewalld
systemctl stop firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/configConfigurar Chrony
systemctl enable chronyd
systemctl start chronyd
chronyc trackingReiniciar e Validar
rebootsestatus # permissive
df -h /u01 # ~100 GB
ip addr show eth0 # 192.168.15.170
hostname # orclrac1.oracle.local
id oracle # confirmar grupos ASM
chronyc tracking # sincronizadoClonar orclrac1 → orclrac2
⚠️ O orclrac1 deve estar completamente desligado antes de clonar.
Botão direito em orclrac1 → Manage → Clone
→ Full clone
→ Name: orclrac2
→ Location: /vms01/oracle/orclrac2/
→ FinishRegenerar MACs do orclrac2
Settings → Network Adapter → Advanced → Generate
Settings → Network Adapter 2 → Advanced → Generate
Settings → Network Adapter 3 → Advanced → GenerateAjustar orclrac2 – Hostname, IPs e SIDs
Ligue o orclrac2 e execute como root:
hostnamectl set-hostname orclrac2.oracle.local
sed -i 's/192.168.15.170/192.168.15.171/' \
/etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/10.10.10.1/10.10.10.2/' \
/etc/sysconfig/network-scripts/ifcfg-eth1
sed -i 's/192.168.20.1/192.168.20.2/' \
/etc/sysconfig/network-scripts/ifcfg-eth2
systemctl restart network
ip addr show eth0 # 192.168.15.171
ip addr show eth1 # 10.10.10.2
ip addr show eth2 # 192.168.20.2
hostname # orclrac2.oracle.localAjustar SIDs:
sed -i 's/ORACLE_SID=+ASM1/ORACLE_SID=+ASM2/' /home/oracle/.bash_profile
sed -i 's/ORACLE_SID=ORCL1/ORACLE_SID=ORCL2/' /home/oracle/.bash_profileConfigurar iSCSI Initiator – orclrac1
systemctl enable iscsid && systemctl start iscsid
echo "InitiatorName=iqn.2024-01.local.oracle:orclrac1" \
> /etc/iscsi/initiatorname.iscsi
ping -c 3 192.168.20.10
iscsiadm -m discovery -t sendtargets -p 192.168.20.10O discovery pode retornar dois targets – rede iSCSI (
192.168.20.10) e rede de gerência (192.168.15.175). Conecte apenas pelo IP iSCSI.
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.20.10 --login
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.20.10 --op update \
-n node.startup -v automatic
systemctl restart iscsid iscsiVerificar quantos discos aparecem:
ls -la /dev/disk/by-path/ | grep iscsiSe aparecerem 6 discos – está correto, siga em frente. Se aparecerem 12, desconecte o target da rede de gerência:
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.15.175 --logout
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.15.175 --op deleteVerifique novamente. Saída esperada com 6 discos:
ip-192.168.20.10:3260-iscsi-...-lun-0 -> ../../sdc
ip-192.168.20.10:3260-iscsi-...-lun-1 -> ../../sdd
ip-192.168.20.10:3260-iscsi-...-lun-2 -> ../../sde
ip-192.168.20.10:3260-iscsi-...-lun-3 -> ../../sdf
ip-192.168.20.10:3260-iscsi-...-lun-4 -> ../../sdg
ip-192.168.20.10:3260-iscsi-...-lun-5 -> ../../sdhConfigurar iSCSI Initiator – orclrac2
systemctl enable iscsid && systemctl start iscsid
echo "InitiatorName=iqn.2024-01.local.oracle:orclrac2" \
> /etc/iscsi/initiatorname.iscsi
iscsiadm -m discovery -t sendtargets -p 192.168.20.10
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.20.10 --login
iscsiadm -m node \
-T iqn.2006-01.com.openfiler:rac-storage \
-p 192.168.20.10 --op update \
-n node.startup -v automatic
systemctl restart iscsid iscsiVerificar quantos discos aparecem:
ls -la /dev/disk/by-path/ | grep iscsiSe aparecerem 12 discos em vez de 6, execute o mesmo procedimento de logout da rede de gerência feito no orclrac1.
Validar Ambiente Completo
Conectividade de Rede
Do orclrac1:
ping -c 3 192.168.15.171 # orclrac2 público
ping -c 3 10.10.10.2 # orclrac2 interconnect
ping -c 3 192.168.20.10 # openfilerDo orclrac2:
ping -c 3 192.168.15.170 # orclrac1 público
ping -c 3 10.10.10.1 # orclrac1 interconnect
ping -c 3 192.168.20.10 # openfilerLatência do Interconnect
Execute em cada nó separadamente:
ping -c 50 10.10.10.2 | tail -2
ping -c 50 10.10.10.1 | tail -2Resultado esperado – avg abaixo de 1ms é obrigatório para o Cache Fusion funcionar corretamente:
rtt min/avg/max/mdev = 0.121/0.198/0.312/0.045 msSSH Equivalência
Execute como oracle em ambos os nós:
No orclrac1:
su - oracle
ssh-keygen -t rsa -N ''
ssh-copy-id oracle@orclrac1
ssh-copy-id oracle@orclrac2No orclrac2:
su - oracle
ssh-keygen -t rsa -N ''
ssh-copy-id oracle@orclrac1
ssh-copy-id oracle@orclrac2Validar em ambos os nós:
ssh orclrac1 date && ssh orclrac2 date
ssh orclrac1-priv date && ssh orclrac2-priv dateNo primeiro acesso via hostname
-privo SSH pede confirmação da chave – digiteyes.
⚠️ Importante: A validação deve ser feita nos dois nós e nas duas direções. O OUI do Grid executa scripts remotamente em ambas as direções durante a instalação – qualquer falha interrompe o instalador imediatamente.
Próxima Parte
No Post 3 vamos instalar o Grid Infrastructure 12.2 com todas as 19 telas do OUI documentadas e os erros mais comuns que aparecem durante a instalação.
