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 targetcli com os LUNs iSCSI prontos no vpslab.
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) |
| 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, verifique e adicione as entradas de controle de tempo:
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.9
Monte o ISO e ligue a VM. O instalador exibe um Installation Summary com as seguintes seções:
| 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.
No console do orclrac1:
nmtuiNavegue em: Edit a connection → ens33 → marcar Automatically connect → OK
Em seguida: Activate a connection → ens33 → Activate → Back → Quit
ip addr show ens33Acesse 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 antigos e criar os novos:
rm -f /etc/sysconfig/network-scripts/ifcfg-ens33 \
/etc/sysconfig/network-scripts/ifcfg-ens34
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
EOFPasso 3- Reiniciar:
rebootApós reiniciar, acesse via SSH pelo IP fixo e valide:
ssh [email protected]
ip addr show eth0 # 192.168.15.170
ip addr show eth1 # 10.10.10.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.15.3 vpslab vpslab.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
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 Swap
O Oracle recomenda swap de pelo menos 8 GB para VMs com 8 GB de RAM. Execute nos dois nós para evitar Warning nos checks do OUI:
dd if=/dev/zero of=/swapfile bs=1M count=8192
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
free -hConfigurar Chrony
Adicione servidores NTP externos antes de habilitar o serviço. O OUI do Grid e do Database validam sincronismo com fonte externa- sem isso os checks de NTP falham durante a instalação:
cat >> /etc/chrony.conf << 'EOF'
server 216.239.35.0 iburst
server 216.239.35.4 iburst
EOF
systemctl enable chronyd
systemctl restart chronyd
sleep 15
chronyc sourcesConfirme que pelo menos uma fonte tem * na primeira coluna antes de prosseguir:
^* 216.239.35.0 1 6 377 ...Reiniciar 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 sources # confirmar *Clonar 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
systemctl restart network
ip addr show eth0 # 192.168.15.171
ip addr show eth1 # 10.10.10.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.15.3
iscsiadm -m discovery -t sendtargets -p 192.168.15.3iscsiadm -m node \
-T iqn.2024-01.com.vpslab:rac-storage \
-p 192.168.15.3 --login
iscsiadm -m node \
-T iqn.2024-01.com.vpslab:rac-storage \
-p 192.168.15.3 --op update \
-n node.startup -v automatic
systemctl restart iscsid iscsiVerificar quantos discos aparecem:
ls -la /dev/disk/by-path/ | grep iscsiSaída esperada com 6 discos:
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-0 -> ../../sdc
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-1 -> ../../sdh
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-2 -> ../../sdg
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-3 -> ../../sdf
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-4 -> ../../sde
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-5 -> ../../sddConfigurar 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.15.3
iscsiadm -m node \
-T iqn.2024-01.com.vpslab:rac-storage \
-p 192.168.15.3 --login
iscsiadm -m node \
-T iqn.2024-01.com.vpslab:rac-storage \
-p 192.168.15.3 --op update \
-n node.startup -v automatic
systemctl restart iscsid iscsi
ls -la /dev/disk/by-path/ | grep iscsiValidar 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.15.3 # vpslab iSCSIDo 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.15.3 # vpslab iSCSILatência do Interconnect
ping -c 50 10.10.10.2 | tail -2
ping -c 50 10.10.10.1 | tail -2avg abaixo de 1ms é obrigatório para o Cache Fusion funcionar corretamente.
SSH Equivalência
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 date⚠️ 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- 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.
