Tag: startup

Automatizando startup e shutdown do Oracle 11g R2 no CentOS 6

TEXTO DE: http://mytracelog.blogspot.com.br/2011/07/automatizando-startup-e-shutdown-do.html

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 24×7 (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:

  1. Listener
  2. Oracle Database
  3. Oracle Enterprise Manager

O shutdown automático finalizará os processos na seguinte ordem:

  1. Oracle Enterprise Manager
  2. Listener
  3. 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 scriptsdbstart e dbshut. O oratab é composto por entradas que seguem o seguinte padrão:

1
$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:

    1. Editar o arquivo /etc/oratab, definindo Y para as instâncias que serão automatizadas:
1
[oracle@mytracelog ~]$ vi /etc/oratab
      Arquivo

/etc/oratab

      :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# 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
    1. Criar o script /etc/init.d/dbora:
1
[root@mytracelog ~]# vi /etc/init.d/dbora
      Script

/etc/init.d/dbora

      :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
# script: dbora
# autor: sakamoto
# site: <a class="vglnk" href="http://mytracelog.blogspot.com" rel="nofollow"><span>http</span><span>://</span><span>mytracelog</span><span>.</span><span>blogspot</span><span>.</span><span>com</span></a>
# 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
    1. Defina a permissão para script /etc/init.d/dbora:
1
[root@mytracelog ~]# chmod 755 /etc/init.d/dbora
    1. Registre o serviço:
1
[root@mytracelog ~]# chkconfig --add dbora

Automatização completa com sucesso! Agora ao iniciar a máquina podemos ver o serviço dbora sendo iniciado:
startupdbora.png

Ao desligar ou reiniciar a máquina também podemos ver o serviço dbora sendo finalizado:
shutdowndbora.png

Caso necessite fazer o startup e shutdown de forma manual, utilize o usuário root.

A sintaxe do script dbora é a seguinte:

1
2
[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.

 

OUTRAS FONTES

https://oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux