- Este tópico contém 7 respostas, 5 vozes e foi atualizado pela última vez 13 anos, 6 meses atrás por
kirrasc.
-
AutorPosts
-
6 de agosto de 2012 às 7:31 pm #104215
mpvargas
ParticipanteCaros amigos,
já criei um tópico semelhante mas fiquei com algumas dúvidas…
gostaria de criar um banco de dados standby, na verdade preciso de um banco que se der algum problema na produção eu possa colocá-lo no ar o mais rápido possível…
já criei o banco standby através do rman…
como faço pra manter atualizado?
devo copiar os archivelogs e redos para esse novo servidor?6 de agosto de 2012 às 8:23 pm #104217Ricardo Portilho Proni
ParticipanteA forma manual é ficar copiando ARCHIVEs e executando RECOVER no servidor replicado.
A forma automática é configurar o servidor replicado como um Data Guard Physical Standby, mas para isto é necessário a licença Enterprise.6 de agosto de 2012 às 9:57 pm #104221mpvargas
ParticipantePortilho, obrigado pela ajuda…
No caso da forma manual, essa opção de copiar os archives e executar o recover pode ser feita por script? E após a aplicação dos novos archives, os archives mais antigos, que no caso ja foram aplicados no recover anterior, podem ser apagados?
Com relação ao Data Guard, nó temos o Enterprise aqui na empresa, mas eu fiquei na dúvida com relação a utilização do Data Guard… Tem algum custo? Pela tabela da Oracle parece que é cobrado por Core, tipo o RAC. Procede isso?7 de agosto de 2012 às 7:38 am #104224Victor Armbrust
Mestrempvargas
Sim cara. Tem custo adicional sim. É um recurso do EE licenciado a parte.
Se liga nesse script para atualização manual, usa de “template” pra vc ai… (Esse está escrito em Shell Script usando Bash). Você pode ir alterando ele conforme sua necessidade.
Para aplicar no servidor standby, você pode executar de tempos em tempos o recover database no RMAN, ou ainda montar um outro script com diversos controles.
#!/bin/bashProcedimento - Envio Archives Site DR .
Data: 09-07-2008
Por: Victor Armbrust
Tivit Terc. de Tecnologia e Servicos S.A.
#
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_SID=pback1
export ORACLE_BASE=/u/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH:/usr/bin:/usr/ccs/bin:/usr/local/bin:/bin/ksh
export ORACLE_OWNER=oracledata=
date +%d%m%y%H
LOG=$ORACLE_HOME/scripts/logs/send_archive_dr_$data.log
DH=date +%Y%m%d-%H%M
export BKPDIR=/u01/archives###############################################################
Fase 1 - Gerar Backup Archive e Identificar Backup Piece.
###############################################################
echo "*****************************************************************" >> $LOG
echo "Fase 1 - Gerar Backup Archive e Identificar Backup Piece.date" >> $LOG
echo "*****************************************************************" >> $LOG$ORACLE_HOME/bin/rman target / nocatalog msglog ${LOG} append <> $LOG
echo "****Problema Fase 1 - Gerar Backup Archives - returcode $RETVAL" >> $LOG
echo " " >> $LOG
exit 0fi
echo "*****************************************************************" >> $LOG
echo "Fase 1 - Successfully Completeddate" >> $LOG
echo "*****************************************************************" >> $LOG
echo " " >> $LOG########################################
Fase 2 - Compactar Backup Archive.
########################################
echo "*****************************************************************" >> $LOG
echo "Fase 2 - Compactar Backup Archive.date" >> $LOG
echo "*****************************************************************" >> $LOG
/usr/bin/gzip /u01/archives/bkp_* >> $LOG
RETVAL=$?
if test "$RETVAL" != "0"
then
echo " " >> $LOG
echo "****Problema Fase 2 - Compactar Archives (BackOffice)" >> $LOG
echo " " >> $LOG
exit 0
fiecho "*****************************************************************" >> $LOG
echo "Fase 2 - Successfully Completeddate" >> $LOG
echo "*****************************************************************" >> $LOG
echo " " >> $LOG###########################################################################
Fase 3 - Transferir Backup e Identificacao Backup Piece para Site DR.
###########################################################################
echo "*****************************************************************" >> $LOG
echo "Fase 3 - Transferir Backup e Identificacao Backup Piece para Site DR.date" >> $LOG
echo "*****************************************************************" >> $LOG
/usr/bin/sudo /bin/su - svc-transfer-arch -c "scp /u01/archives/*.gz 172.18.51.109:/u01/archives/."
RETVAL=$?
if test "$RETVAL" != "0"
then
echo " " >> $LOG
echo "****Problema Fase 3 - Transferencia Backup para Site DR (BackOffice)" >> $LOG
echo " " >> $LOG
exit 0
fiecho "*****************************************************************" >> $LOG
echo "Fase 3 - Successfully Completeddate" >> $LOG
echo "*****************************************************************" >> $LOG
echo " " >> $LOG#######################################################################
Fase 4 - Move Backup e Identificacao Backup Piece para Historico.
#######################################################################
echo "*****************************************************************" >> $LOG
echo "Fase 4 - Move Backup e Identificacao Backup Piece para Historico.date" >> $LOG
echo "*****************************************************************" >> $LOG/bin/mv /u01/archives/*.gz /u01/archives/history
RETVAL=$?
if test "$RETVAL" != "0"
then
echo " " >> $LOG
echo "****Problema Fase 4 - Move Backup para Historico (BackOffice)" >> $LOG
echo " " >> $LOG
exit 0
fiecho "*****************************************************************" >> $LOG
echo "Fase 4 - Successfully Completeddate" >> $LOG
echo "*****************************************************************" >> $LOG
echo " " >> $LOG
exitAbs
Victor20 de agosto de 2012 às 6:35 pm #104298mpvargas
ParticipanteVictor,
obrigado pela ajuda…
Seguindo o que o Portilho falou, basta copiar os archives e executar o Recover…sem usar o seu script, fazendo tudo manual…
no caso, eu faço o restore do rman, faço o recover e não finalizo com o ALTER DATABASE
aí no dia seguinte
eu apago os archives antigos e faço o recover novamente
e vou fazendo sempre assim… É assim que funciona?a minha dúvida é: como vou saber se está tudo OK?
se eu precisar realmente do recover completo, será que vou precisar dos redos tb?20 de agosto de 2012 às 6:51 pm #104299Victor Armbrust
MestreO script que te passei é para vc usar para manter a copia de Archives de um lado para o outro. Assim você vai manter a aplicação de archives.
Sim, pode ser um backup manual e restore do outro lado, e ai ? Você vai ficar fazendo o recover na “unha” a cada 1min, ou 10min ou 1hora ou 5 horas? Entendeu o porquê do script???rsComo vai saber se está tudo ok? Select na v$archived_log… ai vc vai acompanhando os dois bancos…
Redos são criados na abertura do Banco, (OPEN RESETLOGS) certo? então, quando você abrir esse seu banco standby, ai sim vc se preocupará com isso.
abs
Victor[quote=”mpvargas”:1f661xr9]Victor,
obrigado pela ajuda…
Seguindo o que o Portilho falou, basta copiar os archives e executar o Recover…sem usar o seu script, fazendo tudo manual…
no caso, eu faço o restore do rman, faço o recover e não finalizo com o ALTER DATABASE
aí no dia seguinte
eu apago os archives antigos e faço o recover novamente
e vou fazendo sempre assim… É assim que funciona?a minha dúvida é: como vou saber se está tudo OK?
se eu precisar realmente do recover completo, será que vou precisar dos redos tb?[/quote]21 de agosto de 2012 às 3:35 pm #104301marlontk
ParticipanteBom dia a todos,
Aproveitando o assunto….
Eu tenho um servidor rodando uma instancia 11G e outra 10G na mesma maquina de produção visando criar um “standby” eu todo dia na parte da manha eu copio(crontab) todo o backuset + archives,autobackup gerados pelo rman das duas bases e restauro em uma maquina virtual e durante o dia a cada 30 minutos efetuo recover.Este meu procedimento ambora não criado com o standby controlfile e demais opções a principio esta funcionando porque abro o banco em read only e verifico os dados e eles estão sincronizados com o banco de produção.
Minha pergunta é fora a necessidade de copiar todo o backupset+archives+autobackup todo dia(coisa que se tiver os archives bastaria aplica-los) qual seria a desvantagem deste ambiente?
No caso da aplicação dos archives se caso seja feita alguma alteração na estrutura de datafiles, tablespaces será replicado para a base de backup?
MInhas licenças são Standart Edition One das duas instancias.
4 de setembro de 2012 às 6:11 pm #104354kirrasc
ParticipanteSenhores aqui vai minha primeira contribuição, tenho feito da seguinte maneira:
1 – No banco de produção estou salvando os archives em ambas as máquinas via mapeamento NFS da máquina standby;
2 – Na máquina standby, subi o banco em modo mount;
3 – Ainda na máquina standy, agendei na cron o script abaixo para rodar de hora em hora.[color=#00BF00]#!/bin/bash
##############################################################################
copiaArchivelog
##############################################################################
function copiaArchivelog(){
# Copia os archives do diretorio de origem para o diretorio de destino
echo “************** Iniciando a Copia dos Archivelogs **************”>>$wArqLog
cp -puv $wDirArqOrig/* $wDirArqDest/>>$wArqLog
chown oracle:dba $wDirArqDest/*
echo “***************** fim da Copia dos Archivelogs *****************”>>$wArqLog
}##############################################################################
recoverDB
##############################################################################
function recoverDB(){
# Recupera a base de dados
echo “********* Iniciando a recuperacao da base de dados… *********”>>$wArqLog
su – oracle -c ”
export ORACLE_SID=$wStandySID
sqlplus<>$wArqLog
echo “********* Fim da recuperacao da base *********”>>$wArqLog
}##############################################################################
excluiArq
##############################################################################
function excluiArq(){
echo “********* Exlcuindo archivelogs com mais de 9 dias.. *********”>>$wArqLog
# Exclui arquives com mais de 9 dias
find $wDirArqDest/* -mtime +9 -exec rm {} ;>>$wArqLog
echo “********* Fim da exclusao dos arqchivelogs *********”>>$wArqLog
}##############################################################################
main
##############################################################################
Variaveis Globais
wDirArqOrig=/u02/backup/arch_orcl # Direteorio de origem dos archivelogs
wDirArqDest=/u02/app/oracle/oradata/orcl/archive # Diretorio de destino dos archivelogs
wStandySID=orcl # SID da base standby
wArqLog=/u01/app/oracle/admin/orcl/backup/standbyDB.log # Arquivo de log da rotinaecho “##########################################################################################” >>$wArqLog
echo “############# Iniciando atualizacao standbyDB – $(date) #############”>>$wArqLog
echo “##########################################################################################” >>$wArqLogchamada das funcoes
copiaArchivelog # Copia os archives para o diretorio de archives da base standby
recoverDB # Recupera a base a partir dos archives copiados
excluiArq # Exclui , da base standby, com mais de 9 diasecho “########################################################################################### ###”>>$wArqLog
echo “################################## Fim da Atualizacao ##################################### ###”>>$wArqLog
echo “########################################################################################### ###”>>$wArqLog
echo ” “>> $wArqLog[/color]Essa eram minhas colocações, espero que sejam úteis.
Att,Rodrigo Martins
-
AutorPosts
- Você deve fazer login para responder a este tópico.