Easy Oracle Log-Shipping

1

Estou procurando uma maneira decente de manter um banco de dados Oracle secundário atualizado sem exportar e importar o banco de dados a cada vez. Existem 3 usuários na instância que eu gostaria essencialmente de 'log ship' se é o que é chamado no Oracle!

Alguém pode sugerir alguma coisa?

O banco de dados está bem abaixo do GB e estamos rodando 10g expressos (embora eu tenha pensado em usar o padrão 10g, já que temos uma licença extra).

Felicidades

Chris

    
por ItsAMystery 24.03.2010 / 13:18

3 respostas

1

Veja o que eu faço:

Meu banco de dados principal tem o envio de log de transação ativado. Os logs são gravados em / db / archive.

A cada hora, uma tarefa cron é executada como o usuário oracle. Este cronjob faz o seguinte:

move o conteúdo de / db / archive / para / db_archive / YYYYMMDD / (usando o seguinte script (que eu não escrevi e, portanto, não me responsabilizo pela fealdade))

 #!/bin/bash
 # args: <src> <dest> <date>

 datechunk=$3
 echo "Processing $datechunk"

 check='ls $1 | wc -l'

 if [ $check -le 2 ]; then
     exit 0
 fi

 let check2=check-2
 echo "Processing $check2 files"
 ls -vA $1 | head -n $check2 > $2/dirlist.$datechunk

 for line in 'cat $2/dirlist.$datechunk'
 do
    cp $1/$line $2/$datechunk
    if [ -s $2/$datechunk/$line ]; then
        rm $1/$line
    fi
 done

rsyncs o conteúdo de / db_archive / YYYYMMDD / para / db_archive / YYYYMMDD no servidor secundário.

Isso cuida de colocar os arquivos lá.

No servidor secundário, / db / archive é um link simbólico para / db_archive / YYYYMMDD. "recover standby database" lê automaticamente a partir de / db / archive /, então qualquer script usado para recuperar seu banco de dados deve ser capaz de manipular os erros gerados no final de um dia, para que eles possam mudar o symlink para o novo dia.

Isso ajuda, ou você precisa de mais informações?

    
por 24.03.2010 / 15:09
0

Não sei quais são as diferenças entre 10g e 10g expressos, mas 10g oferecem replicação semelhante à usada pelo LDAP, que eles chamaram de ' Replicação do Streams '.

Eu também vi abordagens usadas onde você configura links de banco de dados remotos de volta para o mestre e uma visão materializada para copiar os dados para uma tabela local em cada réplica. (obviamente, isso tem implicações de segurança e só pode copiar tabelas que as réplicas conhecem antecipadamente).

    
por 24.03.2010 / 16:55
0

Você pode conferir o link DBVisit . É um sistema para automatizar o envio e a aplicação de logs refazer do Oracle. Suporta XE, bem como as edições Standard e Enterprise mais caras.

Eu não usei o produto, apenas descobri que era uma opção se você precisasse evitar custos do Enterprise Edition e não se sentisse à vontade para rolar seus próprios scripts.

    
por 24.03.2010 / 21:58

Tags