sexta-feira, 7 de novembro de 2008

Efetuar backup de DB2 via Agent / OnLine

Pré-reqs:

a-) Política do tipo "DB2" criada
b-) Política do tipo "Standard" criada, com um Schedule do tipo "User Archive"
c-) Instalação do agente do DB2 no cliente desejado

1-) Vá até o $INSTHOME e crie o um arquivo db2.conf. Este arquivo deve ser world-readable e deve conter o seguinte:

# Backup da Base# Substitua pelo nome do db
DATABASE mydbOBJECTTYPE DATABASE
# Substitua pelo nome da politica criada no NBU (ATENÇÃO!!! - O tipo da politica DEVE SER "DB2") POLICY mypolicy # Substitua pelo nome do schedule criado SCHEDULE Default-Application-Backup ENDOPER

# Backup dos archives# Substitua pelo nome do db
DATABASE mydbOBJECTTYPE ARCHIVE
# Substitua pelo nome da politica criada no NBU (ATENÇÃO!!! - O tipo da politica DEVE SER "Standard") POLICY myarchpolicy # ATENÇÃO !!! - Substitua pelo nome do schedule "User Archive" criado SCHEDULE User #ARCFUNC SAVE # Utilze sempre a opcao copy para o backup dos archives ARCFUNC COPY # O ARCDIR e O RETDIR sao diretorios temporarios para onde são copiados os # archives antes do backup ARCDIR /mytempdir/ RETDIR /mytempdir/ ENDOPER
2-) Crie um link do programa user-exit, localizado no diretório /usr/openv/netbackup/bin, para o diretório correspondente no db2:
Ex:
ln -s /usr/openv/netbackup/bin/db2uext2.64 /db2/myinst/
3-) Peça para o dba db2 habilitar o user-exit na base de dados. (Esse procedimento envolve o shutdown da base).
4-) Configure o script de backup e o inclua o path completo dele na política criada no passo a-).
Exemplo:
#!/bin/sh
#bcpyrght
#***************************************************************************
#* $VRTScprght: Copyright 1993 - 2003 VERITAS Software Corporation, All Rights Reserved $ *
#***************************************************************************
#ecpyrght

echo "DB2_CLIENT = $DB2_CLIENT"
echo "DB2_SERVER = $DB2_SERVER"
echo "DB2_POLICY = $DB2_POLICY"
echo "DB2_SCHED = $DB2_SCHED"
echo "DB2_FULL = $DB2_FULL" # Is 1 if Full backup scheduled
echo "DB2_CINC = $DB2_CINC" # Is 1 if Cumulative incremental scheduled
echo "DB2_INCR = $DB2_INCR" # Is 1 if Differential incremental scheduled

#
# Mude o MY_LIB de acordo com o seu host:
# Solaris or Linux 32-bit = nbdb2.so
# Solaris 64-bit = nbdb2.so64
# AIX or HPUX 32-bit = nbdb2.sl
# AIX or HPUX 64-bit = nbdb2.sl64
#

MY_LIB=/usr/openv/netbackup/bin/nbdb2.sl64

#
# Mude a variavel MY_DB2 de ascordo com o nome da instancia.
#

MY_DB2=myinst

if [ "$DB2_FULL" = "1" ] ; then
MY_SCHED=""
elif [ "$DB2_CINC" = "1" ] ; then
MY_SCHED="INCREMENTAL"
elif [ "$DB2_INCR" = "1" ] ; then
MY_SCHED="INCREMENTAL DELTA"
else
MY_SCHED=""
fi
CMD_LINE="db2 BACKUP DATABASE $MY_DB2 online LOAD $MY_LIB OPEN 4 SESSIONS BUFFER 1024"

#
# Altere o MY_USER para o usuário usado pelo db2 #
MY_USER=mydb2user
echo "Executing: $CMD_LINE"
su - $MY_USER -c "$CMD_LINE"
RETURN_STATUS=$?
# Return 0 for success, non-zero for errors
exit $RETURN_STATUS

5-) Altere o crontab do root na maquina cliente e insira a linha para o backup periodico dos archives, utilizando a politica e schedule criados no passo b-)
Ex:
0 6 * * * /usr/openv/netbackup/bin/bparchive -p myarchpolicy -s User /db2/B01/log_archive/B01/NODE0000/* 2>/dev/null
ATENÇÃO: Observe o asterisco no final do path do diretório de logs, ele garante que somente os logs becapeados serão deletados após o backup.

segunda-feira, 3 de novembro de 2008

Upgrade do Client Oracle - de 4.5 para 5.1 - Sistemas Unix

1-) Verificar se o client é compatível com a versão NetBackup 5.1, caso contrário, não faça o upgrade.
2-) Desabilitar temporariamente todas as políticas da máquina que será alvo do upgrade.
3-) Verificar se não há nenhum backup ou restore em execução. Em caso positivo, cancelar todos os jobs do cliente em questão ou aguardar o término das atividades para realizar o upgrade.
4-) Executar o seguinte comando no Master Server:
cd /usr/openv/netbackup/bin
bpplclients -allunique -noheader grep -i > /tmp/nomeserver.upgrade
5-) IMPORTANTE : Parar TODAS as instancias de banco de dados na máquina que sofrerá upgrade.
6-) Executar o seguinte comando para fazer o upgrade do client:
updatedb_clients Oracle -ClientList /tmp/nomeserver.upgrade
7-) Responda "y" a pergunta:
The upgrade will likely take 1 to 3 minutes.Do you want to upgrade clients now? [y,n] (y) y
9-) A seguinte mensagem aparecerá:
Updating client "nnnnnnnn" with database agent Oracle -- Solaris hardware running Solaris8
"nnnnnnnnn": update complete
File /tmp/update_dbclients.01-23-1612.12339 contains the update trace.
The update trace can be found in /tmp/update_dbclients.01-23-1506.3938.
10-) Verificar o arquivo gerado no diretório tmp, no qual está detalhado todo o processo de upgrade.
11-) Na máquina client, acessar como usuário "oracle" e executar o seguinte script: /usr/openv/netbackup/bin/oracle_link
"nnnnnnnn"-ordesenv-14:47:06>./oracle_linkMon Jan 23 15:20:33 BRST 2006All Oracle instances should be shutdown before running this script.
Please log into the Unix system as the Oracle owner for running this script
Do you want to continue? (y/n) [n] y
LIBOBK_PATH: /usr/openv/netbackup/binO_HOME: /desenv/oracle/product/920O_VERSION: 9.2.0.5.0 linking Oracle v9.2.0.5.0 for Solaris 2.8
Moving libobk.so to libobk.so.backln -s /usr/openv/netbackup/bin/libobk.so.1 /desenv/oracle/product/920/lib/libobk.so
Done
Please check the trace file located in /tmp/make_trace.27308to make sure the linking process was successful
11-) Subir todas as instâncias da máquina.
10-) Reativar as políticas desabilitadas no passo 2.