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?