Automatizar processos manuais e repetitivos é uma forma de maximizar o tempo, tudo que é manual e repetitivo tem uma grande chance de erro humano. Neste artigo será apresentado como automatizar o startup e o shutdown do banco de dados Oracle 11g R2 x86_64 instalado no CentOS 5.6 x86_64. A automatização será feita através de um script bash que tornará todo o processo simples, seguro, além de não necessitar de nenhuma intervenção humana.
A automatização do processo é muito útil em ambientes 24x7 (24 horas por dia e 7 dias por semana). Implementar o startup automático pode evitar que você tenha que ir até a empresa de madrugada para iniciar o banco devido um pico de energia, neste caso, continue dormindo, pois ao reiniciar a máquina, o banco estará de pé novamente. Descanse bem, pois logo de manhã talvez você precise fazer um recovery, ou se tiver sorte, o próprio Oracle vai se recuperar da queda.
O startup automático iniciará os processos na seguinte ordem:
O processo de automatização é relativamente simples, na própria instalação do Oracle é disponibilizado scripts para startup e shutdown, são eles: $ORACLE_HOME/bin/dbstart e $ORACLE_HOME/bin/dbshut. Esses dois scripts trabalham junto com o arquivo /etc/oratab.
O arquivo oratab é responsável por definir quais instâncias serão inicializadas e finalizadas pelos scripts dbstart e dbshut. O oratab é composto por entradas que seguem o seguinte padrão:
A identificação da instância é representada no primeiro campo, o segundo campo é o diretório home do banco e o terceiro defini se será (Y) ou não (N) utilizado nos scripts dbstart e dbshut.
Para automatizar o processo siga os passos:
Ao desligar ou reiniciar a máquina também podemos ver o serviço dbora sendo finalizado:
Caso necessite fazer o startup e shutdown de forma manual, utilize o usuário root.
A sintaxe do script dbora é a seguinte:
Para finalizar, algumas considerações sobre o script /etc/init.d/dbora. Como podemos ver, o script dbora é basicamente uma chamada para os outros dois scripts $ORACLE_HOME/bin/dbstart e $ORACLE_HOME/bin/dbshut com mais alguns recursos. Foi implementado o startup e shutdown do Oracle Enterprise Manager. O script dbora possui três opções: start, stop e restart. O restart nada mais é que a chamada do stop seguido do start.
A automatização do processo é muito útil em ambientes 24x7 (24 horas por dia e 7 dias por semana). Implementar o startup automático pode evitar que você tenha que ir até a empresa de madrugada para iniciar o banco devido um pico de energia, neste caso, continue dormindo, pois ao reiniciar a máquina, o banco estará de pé novamente. Descanse bem, pois logo de manhã talvez você precise fazer um recovery, ou se tiver sorte, o próprio Oracle vai se recuperar da queda.
O startup automático iniciará os processos na seguinte ordem:
- Listener
- Oracle Database
- Oracle Enterprise Manager
- Oracle Enterprise Manager
- Listener
- Oracle Database
O processo de automatização é relativamente simples, na própria instalação do Oracle é disponibilizado scripts para startup e shutdown, são eles: $ORACLE_HOME/bin/dbstart e $ORACLE_HOME/bin/dbshut. Esses dois scripts trabalham junto com o arquivo /etc/oratab.
O arquivo oratab é responsável por definir quais instâncias serão inicializadas e finalizadas pelos scripts dbstart e dbshut. O oratab é composto por entradas que seguem o seguinte padrão:
$ORACLE_SID:$ORACLE_HOME:<N|Y>
A identificação da instância é representada no primeiro campo, o segundo campo é o diretório home do banco e o terceiro defini se será (Y) ou não (N) utilizado nos scripts dbstart e dbshut.
Para automatizar o processo siga os passos:
- Editar o arquivo /etc/oratab, definindo Y para as instâncias que serão automatizadas:
- Criar o script /etc/init.d/dbora:
- Defina a permissão para script /etc/init.d/dbora:
- Registre o serviço:
[oracle@mytracelog ~]$ vi /etc/oratab
# # This file is used by ORACLE utilities. It is created by root.sh # and updated by the Database Configuration Assistant when creating # a database. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third filed indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # mytracelog:/u01/app/oracle/product/11.2.0/db_1:Y
[root@mytracelog ~]# vi /etc/init.d/dbora
#!/bin/bash # script: dbora # autor: sakamoto # site: http://mytracelog.blogspot.com # data: 2011-07-31 # versao: 1.0 # alvo: oracle 11g R2 x86_64 & centos 5.6 x86_64 # chkconfig: 35 99 10 # description: startup/shutdown listener, oracle database and enterprise manager ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 ORA_OWNER=oracle start(){ echo "Starting..." su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" touch /var/lock/subsys/dbora } stop(){ echo "Stopping..." su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" rm -f /var/lock/subsys/dbora } restart(){ stop start } usage(){ echo "usage: $0 {start|stop|restart}" } if [ `id -u` -ne 0 ] then echo "Este script deve ser executado como root" exit fi case $1 in 'start') start;; 'stop') stop;; 'restart') restart;; *) usage;; esac
[root@mytracelog ~]# chmod 755 /etc/init.d/dbora
[root@mytracelog ~]# chkconfig --add dbora
Ao desligar ou reiniciar a máquina também podemos ver o serviço dbora sendo finalizado:
Caso necessite fazer o startup e shutdown de forma manual, utilize o usuário root.
A sintaxe do script dbora é a seguinte:
[root@mytracelog ~]# /etc/init.d/dbora usage: /etc/init.d/dbora {start|stop|restart}
Para finalizar, algumas considerações sobre o script /etc/init.d/dbora. Como podemos ver, o script dbora é basicamente uma chamada para os outros dois scripts $ORACLE_HOME/bin/dbstart e $ORACLE_HOME/bin/dbshut com mais alguns recursos. Foi implementado o startup e shutdown do Oracle Enterprise Manager. O script dbora possui três opções: start, stop e restart. O restart nada mais é que a chamada do stop seguido do start.
Gostou do artigo? Ajude a divulgá-lo clicando no botão +1
Olá amigo. Parabéns belo blog.
ResponderExcluirEste script serve para a versão 10.2 instalada no CentOS 5.6?
Olá Leo!
ResponderExcluirObrigado pela visita!
Respondendo a pergunta, o script pode ser utilizado perfeitamente para a versão 10.2. Edite a variável ORA_HOME (linha 11) de acordo com a sua instalação.
Assine o nosso feed para acompanhar as novidades.
Att,
Sakamoto
MyTraceLog - Registro de um DBA
http://mytracelog.blogspot.com
Obrigado pela resposta amigo Sakamoto.
ResponderExcluirCom certeza seu blog já está entre minhas leituras diárias.
Parabéns e sucesso.
Muito legal.. parabéns...
ResponderExcluirencontrei no link abaixo o procedimento para automatizar startup shutdown do Banco de dados Oracle em ambiente Windows no Link abaixo.
http://solucoes4us.blogspot.com.br/2012/03/configurar-banco-de-dados-oracle-para.html
Ola Marlon,
ResponderExcluirO startup/shutdown automático no Windows que eu conhecido era através dos serviços do Windows, bacana a dica.
Obrigado pela visita!
MyTraceLog - Registro de um DBA
http://mytracelog.blogspot.com
Excelente post.. Está de parabéns..
ResponderExcluirÓtimo Post,
ResponderExcluirFiz aqui e funcionou certinho, já estava a tempos com essa pendência.
abraço
no meu caso no CentOS7 64 não encontra esses dois scripts...
ResponderExcluir-bash: /u01/app/oracle/product/11.2.0/xe/bin/dbstart: Arquivo ou diretório não encontrado
-bash: /u01/app/oracle/product/11.2.0/xe/bin/emctl: Arquivo ou diretório não encontrado
Olá Rafael,
ResponderExcluirO procedimento mostrado neste artigo é para Oracle Database 11g R2, pelo que percebi você está com o Oracle Database 11g XE. Nele é um pouco diferente, procure o arquivo /etc/init.d/oracle-xe e continue o artigo apartir do passo 3 em diante, adapte o que for necessário.
Att,
Mytracelog - Registro de um DBA
http://mytracelog.blogspot.com
opa acabei encontrando o problema, o CentOS7 não instala o pacote necessário para o script startdb.sh, o xsetroot, basta instalar e o BD já inicia no boot normalmente, mas graças a esse post que consegui descobrir isso
ResponderExcluir