
Sou DBA SQL Server e recentemente fui responsável por um ambiente Oracle. (11g)
Agora faço backups cronometrados dos meus logs de transações no SQL Server e depois os migro para um servidor diferente. Eu gostaria de fazer isso com o Oracle também.
Os redo logs da Oracle parecem ser baseados no tamanho antes de serem alterados e permitem que o servidor os arquive.
Alguém pode fornecer algumas dicas/melhores práticas sobre como conseguir isso.
Eu também apreciaria qualquer conselho sobre o dimensionamento dos redo logs e como lidar com as mudanças nos padrões de uso durante o dia.
Esqueci de dizer que isso está em um servidor Redhat 5 Enterprise
Responder1
A primeira sugestão é nunca mexer neles manualmente, a menos que você realmente saiba o que está fazendo.
O que você deseja fazer é ler rman
a ferramenta Oracle para realizar backups (incluindo backups de redo log). Eu recomendo fortemente pesquisar isso minuciosamente para ter certeza de que você entende completamente como os vários aspectos dos backups Oracle funcionam antes de realizar qualquer ação.
Agora, geralmente os logs de redo/archive do Oracle devem permanecer onde foram gravados até que você tenha executado um backup. O backup geralmente será configurado para incluir os logs de arquivo necessários junto com o backup do banco de dados.
Quanto ao tamanho dos redo logs, ele será baseado diretamente no volume de transações de alteração do banco de dados. Quanto mais alterações, maior será o volume do log. Isso será altamente individual para seus aplicativos e uso, por isso recomendo que você comece a registrar estatísticas sobre ele (volume de transações, tamanho do log de transações, tamanho do banco de dados, etc., todos com carimbos de data e hora). Depois de obter dados de algumas semanas, você pode começar a correlacionar a atividade com os registros e destilá-los em algumas estimativas válidas.
Editar: acho que entendi parcialmente mal a pergunta original. Acho que você está pedindo uma maneira de basicamente verificar seus redo logs agora mesmo, quando você executa um backup, para que você seja totalmente consistente com seu backup até o momento em que emitiu o início do backup.
E o rman cuidará de todo esse trabalho sujo para você. De alguma documentação do rman:
Ao fazer um backup de redo logs arquivados que inclua o log mais recente (ou seja, um comando BACKUP ... ARCHIVELOG é executado sem a opção UNTIL ou SEQUENCE), se o banco de dados estiver aberto, antes de iniciar o backup, o RMAN será desligado do grupo de redo logs online atual e todos os redo logs online que ainda não foram arquivados, até e incluindo o grupo de redo logs que estava atual quando o comando foi emitido. Isso garante que o backup contenha todos os refazeres gerados antes do início do comando.
Outro pouco que fornece um pouco mais de detalhes:
Você pode adicionar redo logs arquivados a um backup de outros arquivos usando a cláusula BACKUP ... PLUS ARCHIVELOG. Adicionar BACKUP ... PLUS ARCHIVELOG faz com que o RMAN faça o seguinte:
- Executa o comando ALTER SYSTEM ARCHIVE LOG CURRENT.
- Executa BACKUP ARCHIVELOG ALL. Observe que se a otimização de backup estiver habilitada, o RMAN ignorará os logs dos quais já foi feito backup no dispositivo especificado.
- Faz backup do restante dos arquivos especificados no comando BACKUP.
- Executa o comando ALTER SYSTEM ARCHIVE LOG CURRENT.
- Faz backup de todos os logs arquivados restantes gerados durante o backup.
Isso garante que os backups dos arquivos de dados feitos durante o comando sejam recuperáveis para um estado consistente.
A documentação do rman deve fornecer mais detalhes para você. Eu forneceria o URL de onde retirei (documentos on-line do Oracle rman), mas o URL já mudou desde quando o marquei, então não confio nele para permanecer por aqui. No entanto, pesquisar no Google por documentos do rman deve ser capaz de encontrá-lo.
Editar: Mais uma coisa que gostaria de acrescentar. . . você mencionou algo sobre dimensionamento. O Oracle 11g oferece suporte a redo logs compactados. Eu não os usei, mas sei que isso os suporta. Além disso, o Oracle 10g e 11g suportam backups compactados. Se você ainda não estiver fazendo backups compactados,você deveria estar. A redução de tamanho é enorme e, além disso, obtivemos um aumento significativo de desempenho nas execuções de backup, quando habilitamos backups compactados.
Responder2
Os redo logs da Oracle parecem ser baseados no tamanho antes de serem alterados e permitem que o servidor os arquive.
Observe o parâmetro archive_lag_target para Oracle 9i e superior.
Responder3
É uma troca. Ouvi dizer que grandes arquivos de log são mais eficientes, mas não os usamos porque A) quanto maior a perda de um arquivo, maior será a perda de seus dados e B) nossa largura de banda é uma porcaria
Isso nos leva a colocar arquivos em spool por algumas horas e depois transferir e executar atualizações nas várias máquinas em espera. Na verdade, ainda estamos usando o Oracle8i e, como o banco de dados foi projetado há muito tempo por alguém que não era DBA, ainda preciso criar manualmente novos arquivos de dados e arquivos de controle. /suspirar
Responder4
Já faz um tempo que não perguntei isso, mas recentemente encontrei a resposta. A partir do Oracle 10G R2 em diante, existe um parâmetro que garantirá que uma troca de log não ocorra além do tempo especificado.
Se você alterar o sistema, configure archive_lag_target=900;
isso garantirá que a troca ocorra a cada 15 minutos, independentemente da quantidade de log usada.