Oracle Auto Start: como garantir que o banco e o listener iniciem automaticamente após reboot
“Evite downtime desnecessário — automatize o que pode (e deve) ser automático.”
Quantas vezes o servidor reiniciou e o banco não subiu automaticamente? Neste guia você aprende a configurar o Oracle Auto Start para que o Oracle Database e o listener iniciem sozinhos após reinicializações — tanto em ambientes de teste quanto de produção.
/etc/init.d/ e no $ORACLE_HOME; evite rodar como root quando não for necessário.
Pré-requisitos rápidos
- Acesso ao usuário
oracle(dono do ORACLE_HOME) e aoroot(para criar serviços/links). - Conhecer seu
ORACLE_HOMEeORACLE_SID. - Saber se sua distro usa SysV init (rc.d/init.d) ou systemd (
systemctl).
1) Descobrindo variáveis do ambiente
Como usuário oracle:
echo $ORACLE_HOME
echo $ORACLE_SID
whoami
Anote os valores. Nos exemplos abaixo usarei /app/oracle/product/19c e WINTESTE como placeholders — substitua pelo que você usa.
2) Configurando o /etc/oratab
Como root, edite o arquivo:
nano /etc/oratab
Inclua (ou ajuste) a linha da sua instância:
<SEU_ORACLE_SID>:<SEU_ORACLE_HOME>:Y
Exemplo:
WINTESTE:/app/oracle/product/19c:Y
3) Script de inicialização (SysV init)
Se sua distro usa SysV (diretórios /etc/rc*.d e /etc/init.d), crie o script dbora:
cd /etc/init.d/
nano dbora
Cole o conteúdo abaixo (note os placeholders):
#! /bin/sh
# Descrição: Auto start/stop do Oracle Database + listener
# Ajuste as variáveis abaixo para o seu ambiente.
ORA_HOME=/app/oracle/product/19c
ORA_OWNER=oracle
case "$1" in
'start')
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" &
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" &
touch /var/lock/subsys/dbora
;;
'stop')
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" &
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" &
rm -f /var/lock/subsys/dbora
;;
esac
exit 0
Permissões e grupo:
chgrp dba /etc/init.d/dbora
chmod 750 /etc/init.d/dbora
ls -l /etc/init.d/dbora # deve aparecer -rwxr-x---
Registrando no boot (links simbólicos)
Desligamento (runlevel 0):
cd /etc/rc.d/rc0.d
ln -s /etc/init.d/dbora K01dbora
Inicialização (runlevel 3):
cd /etc/rc.d/rc3.d
ln -s /etc/init.d/dbora S99dbora
Verificando o runlevel atual:
who -r
Se o nível for 5, crie também o link em /etc/rc.d/rc5.d:
cd /etc/rc.d/rc5.d
ln -s /etc/init.d/dbora S99dbora
4) Alternativa moderna: systemd
Em distribuições recentes (Oracle Linux 7/8, RHEL/CentOS 7+) use systemd. Crie a unidade de serviço:
nano /etc/systemd/system/dbora.service
Conteúdo sugerido:
[Unit]
Description=Oracle Database auto start/stop (dbstart/dbshut + listener)
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment=ORACLE_HOME=/app/oracle/product/19c
ExecStart=/bin/bash -lc "$ORACLE_HOME/bin/lsnrctl start; $ORACLE_HOME/bin/dbstart $ORACLE_HOME"
ExecStop=/bin/bash -lc "$ORACLE_HOME/bin/dbshut $ORACLE_HOME; $ORACLE_HOME/bin/lsnrctl stop"
[Install]
WantedBy=multi-user.target
Habilite e verifique:
systemctl daemon-reload
systemctl enable dbora.service
systemctl start dbora.service
systemctl status dbora.service
oracle-listener.service e oracle-db.service) e use After=oracle-listener.service no serviço do banco.
5) Testando o startup automático
Reinicie o sistema e valide:
reboot
Depois do boot, como oracle:
ps -ef | grep pmon
lsnrctl status
Saída esperada (exemplo):
oracle 2267 1 0 22:10 ? 00:00:00 ora_pmon_<SEU_ORACLE_SID>
...
LSNRCTL for Linux: Version ...
Service "..." has 1 instance(s).
Instance "WINTESTE", status READY, has 1 handler(s) for this service...
“Automatizar é garantir disponibilidade até nos momentos em que ninguém está olhando.”
Referências
- Oracle Database Admin Guide — Automating Startup and Shutdown (versões 19c+)
- Melhores práticas de serviços no Linux (SysV vs. systemd)
Conclusão
Com a configuração acima, você evita downtime após reinicializações e padroniza o processo de startup/shutdown do Oracle e do listener. E você, já usa Auto Start em produção? Comente o que mudou na sua rotina ou que melhorias adotou por aí.
💬 Deixe seu comentário
Compartilhe sua experiência ou dúvida sobre o Oracle Auto Start.
Publicado por Hiordan Freire · DBA & Founder do The Committer · Outubro de 2025
Nenhum comentário ainda — seja o primeiro! 🚀