Pular para o conteúdo
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #104215
    mpvargas
    Participante

      Caros 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?

      #104217
      Ricardo Portilho Proni
      Participante

        A 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.

        #104221
        mpvargas
        Participante

          Portilho, 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?

          #104224
          Victor Armbrust
          Mestre

            mpvargas

            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/bash

            Procedimento - 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=oracle

            data=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 0

            fi

            echo "*****************************************************************" >> $LOG
            echo "Fase 1 - Successfully Completed date " >> $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
            fi

            echo "*****************************************************************" >> $LOG
            echo "Fase 2 - Successfully Completed date " >> $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
            fi

            echo "*****************************************************************" >> $LOG
            echo "Fase 3 - Successfully Completed date " >> $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
            fi

            echo "*****************************************************************" >> $LOG
            echo "Fase 4 - Successfully Completed date " >> $LOG
            echo "*****************************************************************" >> $LOG
            echo " " >> $LOG
            exit

            Abs
            Victor

            #104298
            mpvargas
            Participante

              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?

              #104299
              Victor Armbrust
              Mestre

                O 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???rs

                Como 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]

                #104301
                marlontk
                Participante

                  Bom 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.

                  #104354
                  kirrasc
                  Participante

                    Senhores 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 rotina

                    echo “##########################################################################################” >>$wArqLog
                    echo “############# Iniciando atualizacao standbyDB – $(date) #############”>>$wArqLog
                    echo “##########################################################################################” >>$wArqLog

                    chamada 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 dias

                    echo “########################################################################################### ###”>>$wArqLog
                    echo “################################## Fim da Atualizacao ##################################### ###”>>$wArqLog
                    echo “########################################################################################### ###”>>$wArqLog
                    echo ” “>> $wArqLog[/color]

                    Essa eram minhas colocações, espero que sejam úteis.
                    Att,

                    Rodrigo Martins

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.