Automação de inicialização do banco de dados Oracle 11g no Fedora 15

3

Eu instalei com sucesso o Oracle 11g em um sistema Fedora 15 usando isto

Não tenho certeza se esse é o comportamento pretendido ou se cometi uma falha ao instalar o banco de dados.

De qualquer forma, cada um eu reinicio a máquina que preciso:

  • Use su para alterar o usuário atual para o usuário oracle .
  • Use sqplus para inicializar o banco de dados.

Assim:

(oracle@machine)$ sqplus / as sysdba
SQL> startup
SQL> (Ctrl+D)
  • Depois, preciso iniciar o ouvinte usando lsnrctl .

Mais uma vez:

(oracle@machine)$ lsnrctl start 
  • E agora o Enterprise Manager também deve ser iniciado.

Pelo menos:

(oracle@machine)$ emctl start dbconsole

Eu peguei essas instruções do aqui .

Me desculpe se isso é muito obvio, eu geralmente tenho um DBA ou um administrador de sistema para configurar um ambiente para mim, mas estou fazendo isso em casa, onde não tenho ajuda (talvez eu esteja me tornando um mimado desenvolvedor:)).

Gostaria de saber se é possível automatizar isso no Fedora 15 usando um script de shell. Depois de automatizar, eu gostaria de ligar isso no sistema init, então ele é executado toda vez que eu inicio a máquina.

    
por Vitor Py 14.07.2011 / 23:13

2 respostas

4

Encontrei uma resposta em isto

  • Edite /etc/oratab e altere o último N no arquivo de configuração para um Y .

Assim:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N

Para isso:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
  • Crie o script /etc/init.d/dbora .

Deve ter este conteúdo:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
        echo "Oracle startup: cannot start"
        exit
fi

case "$1" in

'start')

# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
;;

'stop')

# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
;;

esac
  • Em seguida, altere a permissão do script.

Assim:

chmod 750 /etc/init.d/dbora
  • Adicione ao chkconfig

Assim:

chkconfig --level 345 dbora on

Teste-o com /etc/init.d/dbora start e /etc/init.d/dbora stop . Certifique-se de ter o caminho correto no script dbora .

    
por 18.07.2011 / 03:50
1

Acho que lsnrctl start já está incluído no script dbstart .

    
por 20.01.2012 / 06:35