Automatizando o startup e shutdown das bases de dados Oracle 12c

Quando realizamos a instalação do Oracle Database, são instalados os binários e os referidos bancos de dados (dbca). Ror default os bancos não startam nem fazem o shutdown de maneira autônoma, é preciso entrar no SQLPLUS, rodar o comando shutdown quando necessita desligar o servidor ou o comando startup após o religamento ou reboot do servidor para que o banco seja startado e suas tabelas ficarem acessíveis.

O primeiro passo para automatizar esse processo, é acessando o arquivo /etc/oratab no servidor Linux e chegar algumas informações:

[root@localhost /]# vi /etc/oratab

verificar-oratab-linux

Para cada vez que você roda o DBCA e cria um banco de dados, uma nova linha é adicionada nesse arquivo com o nome do banco. No nosso caso o banco em questão é o cdb1. Note que há uma letra N no final da linha, que indica se o banco será startado quando o utilitário dbstart invocá-lo ou se será desligado quando o comando dbshut for utilizado.

Faça a edição dessa linha para Y e saia do editor do VI, deixando o arquivo desse jeito:

verificar-oratab-linux2

Depois de feito isso, basta configurar um serviço na pasta /etc/init.d com o nome dbora com os comandos abaixo:

#vi /etc/init.d/dbora

Copie e cole o comando abaixo, alterado o ORACLE_HOME para o que está setado no bash_profile do usuário oracle:

[code lang=”sql”]
!/bin/sh
chkconfig: 345 99 10
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1

ORACLE=oracle
PATH=${PATH}:$ORACLE_HOME/bin
export ORACLE_HOME PATH

case $1 in
‘start’)
runuser -l $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME &"
touch /var/lock/subsys/dbora
;;
‘stop’)
runuser -l $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/subsys/dbora
;;
*)
echo "usage: $0 {start|stop}"
exit
;;
esac

exit
[/code]

No meu ambiente ficou exatamente dessa maneira:

arquivo-etc-initd-dbora

Veja que no ORACLE_HOME eu coloquei o caminho da instalação do ORACLE em meu servidor, isso pode mudar de instalação pra instalação. Para verificar qual seu ORACLE_HOME, basta logar co mo usuário oracle no terminar e digitar o comando env e listar as variáveis.

Após criar o arquivo acima, basta setar as permissões corretas e definir o dbora como um serviço, conforme scripts abaixo:
[code lang=”sql”]
chmod 750 /etc/init.d/dbora
chkconfig –add dbora
[/code]
verificando-servico-e-permissoes

Verificando pelo chkconfig, podemos chegar a conclusão que o dbora foi incluído como serviço e com as opções: 3, 4 e 5 setadas como ON. isso aconteceu pelo fato de a 2ª linha do arquivo dbora conter essas informações: # chkconfig: 345 99 10 !

Para testar o funcionamento do script basta fazer um reboot no seu servidor de testes e atestar o correto desligamento e startup do banco através dos logs do Oracle.

 

Leonardo Pedroso

Leonardo Pedroso

Profissional de TI experiência em administração de banco de dados: SQL Server 2000 a 2019, Oracle 11g a 19c, PostgreSQL, MySQL, MongoDB, Cassandra. Atua realizando análise de desempenho, DR e HA, implantação, administração de banco de dados em cluster e implementação de projetos de banco de dados NoSQL (MongoDB, Cassandra), bem como automação de processos utilizando Shell script, Powershell (dbatools), e players de Cloud: Azure e Aws.