BKP ORACLE - Onde informo usuário e senha do banco no script?

1. BKP ORACLE - Onde informo usuário e senha do banco no script?

Vitor
marujaummm

(usa Red Hat)

Enviado em 21/01/2021 - 11:22h

Bom dia Galera,

Estou com um problemão aqui na empresa em uma rotina de backup de BD em oracle que atualmente roda no Red Hat. Não fui eu que montei essa rotina e após uma queda de energia esse backup parou de funcionar no automático. Ele está configurado no cron e essa parte está toda OK . O problema aparece quando eu chamo o script manualmente e aí ele apresenta um erro de usuário/senha. Aparentemente é por isso que não está rodando no cron também.

Olhei bastante o script e não achei o usuário/senha e nem onde ele busca essa informação. Eu tenho o usuário e senha e informo quando rodo manualmente, mas estou tendo que fazer o processo "na mão" todo dia. São duas bases que temos aqui no Oracle e elas estão na mesma máquina do Linux. Alguém pode ajudar?

ERRO:
UDE-01017: operation generated ORACLE error 1017
ORA-01017: senha/nome do usuario invalido; log-on negado

SCRIPT
"#!/bin/bash
#####################################
source "/home/oracle/.bash_profile"
#####################################
export CLIENTE='besouro'
export PROPOSTA=''
export CWRK='/home/oracle/.scripts'
export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
export DOW=$(date +%u)
export DIA_SEMANA='FER-FERIADO'
##
clear screen
export DIAHORA=$(date +%Y%m%d-%H%M%S)
export DOYB=$(date +%j)

export WORACLE_SID=BESOURO
export WRKDIR="/u01/backup_oracle"
case $DOW in
0) DIA_SEMANA='DOMINGO-FULL'
;;
7) DIA_SEMANA='DOMINGO-FULL'
;;
1) DIA_SEMANA='SEGUNDA'
;;
2) DIA_SEMANA='TERCA'
;;
3) DIA_SEMANA='QUARTA'
;;
4) DIA_SEMANA='QUINTA'
;;
5) DIA_SEMANA='SEXTA'
;;
6) DIA_SEMANA='SABADO'
;;
*) DIA_SEMANA='XXX-UNKNOWN'
;;
esac
clear
##
while [ -f "/tmp/backup_full.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_full.log
exit 1
done
while [ -f "/tmp/backup_dpmp.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_dpmp.log
exit 2
done
while [ -f "/tmp/backup_redo.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_redo.log
exit 3
done


echo "Realizando Backup : $ORACLE_SID" > /tmp/backup_dpmp.log
## exclui backup antigo, caso exista

find "$WRKDIR/" -name "$WORACLE_SID.$DOYB.*" -type f -print -exec rm {} \;
find "$WRKDIR/" -name "$WORACLE_SID.*" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.log" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.dmp" -type f -ctime +5 -print -exec rm {} \;

##
for oUSER in RHMETA LINX
do
export DMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.tar.gz
echo "" > /tmp/$ORACLE_SID.par
if [ $DOW = 0 -o $DOW = 7 ];
then
echo "FULL=Y" >> /tmp/$ORACLE_SID.par
if [ $oUSER = 'RHMETA' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'LINX', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
if [ $oUSER = 'LINX' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'RHMETA', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
else
echo "SCHEMAS=$oUSER" >> /tmp/$ORACLE_SID.par
fi
echo "DUMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.%U.dmp" >> /tmp/$ORACLE_SID.par
echo " LOGFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.00.log" >> /tmp/$ORACLE_SID.par
echo "FILESIZE=8G" >> /tmp/$ORACLE_SID.par
echo "DIRECTORY=DPDUMP_FULL" >> /tmp/$ORACLE_SID.par
echo "CONSISTENT=Y" >> /tmp/$ORACLE_SID.par
echo "JOB_NAME=$ORACLE_SID""_DATA_PUMP_JOB" >> /tmp/$ORACLE_SID.par
echo "EXCLUDE=STATISTICS" >> /tmp/$ORACLE_SID.par
expdp \"/ as sysdba\" parfile=/tmp/$ORACLE_SID.par
status=$?
if [ $status -gt 0 ] ; then
mailx -s "$CLIENTE-$PROPOSTA : $HOSTNAME-$ORACLE_SID-Rotina Dump, FALHOU" $CMAI < $WRKDIR/$ORACLE_SID.$DOYB.$DIAHORA.00.log
else
sleep 2
echo Compactando Dump : $WRKDIR/$DMPFILE
cd $WRKDIR/
tar -cvzf $WRKDIR/$DMPFILE $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp
sleep 2
if [ -f "$WRKDIR/$DMPFILE" ] ; then
rm $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp /tmp/$ORACLE_SID.par
fi
fi
echo
if [ -f "/tmp/backup_dpmp.log" ] ; then
rm /tmp/backup_dpmp.log
fi
done






  


2. Re: BKP ORACLE - Onde informo usuário e senha do banco no script?

wellington joão da Silva
wellingtonjoao

(usa Manjaro Linux)

Enviado em 21/01/2021 - 19:49h

Eu tenho um e mando executar com usuário do proprio oracle com o crontab usando "su oracle -" e depois agendando a tarefa.


marujaummm escreveu:

Bom dia Galera,

Estou com um problemão aqui na empresa em uma rotina de backup de BD em oracle que atualmente roda no Red Hat. Não fui eu que montei essa rotina e após uma queda de energia esse backup parou de funcionar no automático. Ele está configurado no cron e essa parte está toda OK . O problema aparece quando eu chamo o script manualmente e aí ele apresenta um erro de usuário/senha. Aparentemente é por isso que não está rodando no cron também.

Olhei bastante o script e não achei o usuário/senha e nem onde ele busca essa informação. Eu tenho o usuário e senha e informo quando rodo manualmente, mas estou tendo que fazer o processo "na mão" todo dia. São duas bases que temos aqui no Oracle e elas estão na mesma máquina do Linux. Alguém pode ajudar?

ERRO:
UDE-01017: operation generated ORACLE error 1017
ORA-01017: senha/nome do usuario invalido; log-on negado

SCRIPT
"#!/bin/bash
#####################################
source "/home/oracle/.bash_profile"
#####################################
export CLIENTE='besouro'
export PROPOSTA=''
export CWRK='/home/oracle/.scripts'
export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
export DOW=$(date +%u)
export DIA_SEMANA='FER-FERIADO'
##
clear screen
export DIAHORA=$(date +%Y%m%d-%H%M%S)
export DOYB=$(date +%j)

export WORACLE_SID=BESOURO
export WRKDIR="/u01/backup_oracle"
case $DOW in
0) DIA_SEMANA='DOMINGO-FULL'
;;
7) DIA_SEMANA='DOMINGO-FULL'
;;
1) DIA_SEMANA='SEGUNDA'
;;
2) DIA_SEMANA='TERCA'
;;
3) DIA_SEMANA='QUARTA'
;;
4) DIA_SEMANA='QUINTA'
;;
5) DIA_SEMANA='SEXTA'
;;
6) DIA_SEMANA='SABADO'
;;
*) DIA_SEMANA='XXX-UNKNOWN'
;;
esac
clear
##
while [ -f "/tmp/backup_full.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_full.log
exit 1
done
while [ -f "/tmp/backup_dpmp.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_dpmp.log
exit 2
done
while [ -f "/tmp/backup_redo.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_redo.log
exit 3
done


echo "Realizando Backup : $ORACLE_SID" > /tmp/backup_dpmp.log
## exclui backup antigo, caso exista

find "$WRKDIR/" -name "$WORACLE_SID.$DOYB.*" -type f -print -exec rm {} \;
find "$WRKDIR/" -name "$WORACLE_SID.*" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.log" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.dmp" -type f -ctime +5 -print -exec rm {} \;

##
for oUSER in RHMETA LINX
do
export DMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.tar.gz
echo "" > /tmp/$ORACLE_SID.par
if [ $DOW = 0 -o $DOW = 7 ];
then
echo "FULL=Y" >> /tmp/$ORACLE_SID.par
if [ $oUSER = 'RHMETA' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'LINX', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
if [ $oUSER = 'LINX' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'RHMETA', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
else
echo "SCHEMAS=$oUSER" >> /tmp/$ORACLE_SID.par
fi
echo "DUMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.%U.dmp" >> /tmp/$ORACLE_SID.par
echo " LOGFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.00.log" >> /tmp/$ORACLE_SID.par
echo "FILESIZE=8G" >> /tmp/$ORACLE_SID.par
echo "DIRECTORY=DPDUMP_FULL" >> /tmp/$ORACLE_SID.par
echo "CONSISTENT=Y" >> /tmp/$ORACLE_SID.par
echo "JOB_NAME=$ORACLE_SID""_DATA_PUMP_JOB" >> /tmp/$ORACLE_SID.par
echo "EXCLUDE=STATISTICS" >> /tmp/$ORACLE_SID.par
expdp \"/ as sysdba\" parfile=/tmp/$ORACLE_SID.par
status=$?
if [ $status -gt 0 ] ; then
mailx -s "$CLIENTE-$PROPOSTA : $HOSTNAME-$ORACLE_SID-Rotina Dump, FALHOU" $CMAI < $WRKDIR/$ORACLE_SID.$DOYB.$DIAHORA.00.log
else
sleep 2
echo Compactando Dump : $WRKDIR/$DMPFILE
cd $WRKDIR/
tar -cvzf $WRKDIR/$DMPFILE $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp
sleep 2
if [ -f "$WRKDIR/$DMPFILE" ] ; then
rm $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp /tmp/$ORACLE_SID.par
fi
fi
echo
if [ -f "/tmp/backup_dpmp.log" ] ; then
rm /tmp/backup_dpmp.log
fi
done








3. Re: BKP ORACLE - Onde informo usuário e senha do banco no script?

Vitor
marujaummm

(usa Red Hat)

Enviado em 21/01/2021 - 20:38h



O crontab está dessa maneira.

30 13,20 * * * su - oracle -c "/u01/backup_oracle/scripts/backup_logico.sh" 




wellingtonjoao escreveu:

Eu tenho um e mando executar com usuário do proprio oracle com o crontab usando "su oracle -" e depois agendando a tarefa.


marujaummm escreveu:

Bom dia Galera,

Estou com um problemão aqui na empresa em uma rotina de backup de BD em oracle que atualmente roda no Red Hat. Não fui eu que montei essa rotina e após uma queda de energia esse backup parou de funcionar no automático. Ele está configurado no cron e essa parte está toda OK . O problema aparece quando eu chamo o script manualmente e aí ele apresenta um erro de usuário/senha. Aparentemente é por isso que não está rodando no cron também.

Olhei bastante o script e não achei o usuário/senha e nem onde ele busca essa informação. Eu tenho o usuário e senha e informo quando rodo manualmente, mas estou tendo que fazer o processo "na mão" todo dia. São duas bases que temos aqui no Oracle e elas estão na mesma máquina do Linux. Alguém pode ajudar?

ERRO:
UDE-01017: operation generated ORACLE error 1017
ORA-01017: senha/nome do usuario invalido; log-on negado

SCRIPT
"#!/bin/bash
#####################################
source "/home/oracle/.bash_profile"
#####################################
export CLIENTE='besouro'
export PROPOSTA=''
export CWRK='/home/oracle/.scripts'
export NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS'
export DOW=$(date +%u)
export DIA_SEMANA='FER-FERIADO'
##
clear screen
export DIAHORA=$(date +%Y%m%d-%H%M%S)
export DOYB=$(date +%j)

export WORACLE_SID=BESOURO
export WRKDIR="/u01/backup_oracle"
case $DOW in
0) DIA_SEMANA='DOMINGO-FULL'
;;
7) DIA_SEMANA='DOMINGO-FULL'
;;
1) DIA_SEMANA='SEGUNDA'
;;
2) DIA_SEMANA='TERCA'
;;
3) DIA_SEMANA='QUARTA'
;;
4) DIA_SEMANA='QUINTA'
;;
5) DIA_SEMANA='SEXTA'
;;
6) DIA_SEMANA='SABADO'
;;
*) DIA_SEMANA='XXX-UNKNOWN'
;;
esac
clear
##
while [ -f "/tmp/backup_full.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_full.log
exit 1
done
while [ -f "/tmp/backup_dpmp.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_dpmp.log
exit 2
done
while [ -f "/tmp/backup_redo.log" ] ;
do
echo "Rotina de backup executando, aguardando terminar."
cat /tmp/backup_redo.log
exit 3
done


echo "Realizando Backup : $ORACLE_SID" > /tmp/backup_dpmp.log
## exclui backup antigo, caso exista

find "$WRKDIR/" -name "$WORACLE_SID.$DOYB.*" -type f -print -exec rm {} \;
find "$WRKDIR/" -name "$WORACLE_SID.*" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.log" -type f -ctime +5 -print -exec rm {} \;
find "$WRKDIR/" -name "*.dmp" -type f -ctime +5 -print -exec rm {} \;

##
for oUSER in RHMETA LINX
do
export DMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.tar.gz
echo "" > /tmp/$ORACLE_SID.par
if [ $DOW = 0 -o $DOW = 7 ];
then
echo "FULL=Y" >> /tmp/$ORACLE_SID.par
if [ $oUSER = 'RHMETA' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'LINX', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
if [ $oUSER = 'LINX' ];
then
echo "EXCLUDE=SCHEMA:\"IN ( 'RHMETA', 'TREINO' )\"" >> /tmp/$ORACLE_SID.par
fi
else
echo "SCHEMAS=$oUSER" >> /tmp/$ORACLE_SID.par
fi
echo "DUMPFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.%U.dmp" >> /tmp/$ORACLE_SID.par
echo " LOGFILE=$WORACLE_SID.$DOYB.$oUSER.$DIAHORA.$DIA_SEMANA.00.log" >> /tmp/$ORACLE_SID.par
echo "FILESIZE=8G" >> /tmp/$ORACLE_SID.par
echo "DIRECTORY=DPDUMP_FULL" >> /tmp/$ORACLE_SID.par
echo "CONSISTENT=Y" >> /tmp/$ORACLE_SID.par
echo "JOB_NAME=$ORACLE_SID""_DATA_PUMP_JOB" >> /tmp/$ORACLE_SID.par
echo "EXCLUDE=STATISTICS" >> /tmp/$ORACLE_SID.par
expdp \"/ as sysdba\" parfile=/tmp/$ORACLE_SID.par
status=$?
if [ $status -gt 0 ] ; then
mailx -s "$CLIENTE-$PROPOSTA : $HOSTNAME-$ORACLE_SID-Rotina Dump, FALHOU" $CMAI < $WRKDIR/$ORACLE_SID.$DOYB.$DIAHORA.00.log
else
sleep 2
echo Compactando Dump : $WRKDIR/$DMPFILE
cd $WRKDIR/
tar -cvzf $WRKDIR/$DMPFILE $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp
sleep 2
if [ -f "$WRKDIR/$DMPFILE" ] ; then
rm $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.log $WRKDIR/$WORACLE_SID.$DOYB.$oUSER.$DIAHORA*.dmp /tmp/$ORACLE_SID.par
fi
fi
echo
if [ -f "/tmp/backup_dpmp.log" ] ; then
rm /tmp/backup_dpmp.log
fi
done










4. Re: BKP ORACLE - Onde informo usuário e senha do banco no script?

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 21/01/2021 - 23:35h

Acho q assim roda
30 13,20 * * * oracle /u01/backup_oracle
sudo -u oracle /u01/backup_oracle para rodar o script tal como está no entrada postada
Verifique se o cron está em execução
systemctl status crond


5. Re: BKP ORACLE - Onde informo usuário e senha do banco no script?

Vitor
marujaummm

(usa Red Hat)

Enviado em 22/01/2021 - 15:01h


Coloquei assim:

30 13,20 * * * su -u oracle -c "/u01/backup_oracle/scripts/backup_logico.sh" 


Vai rodar? Ou tem que ser:


30 13,20 * * * sudo -u oracle -c "/u01/backup_oracle/scripts/backup_logico.sh" 



leandropscardua escreveu:

Acho q assim roda
30 13,20 * * * oracle /u01/backup_oracle
sudo -u oracle /u01/backup_oracle para rodar o script tal como está no entrada postada
Verifique se o cron está em execução
systemctl status crond





6. Re: BKP ORACLE - Onde informo usuário e senha do banco no script?

Vitor
marujaummm

(usa Red Hat)

Enviado em 27/01/2021 - 08:54h


Testei das duas formas abaixo e não funcionou. Não sei mais oq fazer.


marujaummm escreveu:

Coloquei assim:

30 13,20 * * * su -u oracle -c "/u01/backup_oracle/scripts/backup_logico.sh" 


Vai rodar? Ou tem que ser:

30 13,20 * * * sudo -u oracle -c "/u01/backup_oracle/scripts/backup_logico.sh" 











Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts