AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 279813
Accepted
jrdba123
jrdba123
Asked: 2020-11-18 01:54:34 +0800 CST2020-11-18 01:54:34 +0800 CST 2020-11-18 01:54:34 +0800 CST

Oracle 12cR2 - Cenário de Backup de Cópia de Imagem

  • 772

Tipo de backup: cópia de imagem.

Cenário: Eu quero 1 db completo + 6 backups incrementais e manter os últimos 7 dias de backup no armazenamento.

Aqui está o meu roteiro:

RUN {

allocate channel c1 device type disk format '/path/%U';

allocate channel c2 device type disk format '/path/%U';

allocate channel c3 device type disk format '/path/%U';

allocate channel c4 device type disk format '/path/%U';

allocate channel c5 device type disk format '/path/%U';

allocate channel c6 device type disk format '/path/%U';

allocate channel c7 device type disk format '/path/%U';

allocate channel c8 device type disk format '/path/%U';

CROSSCHECK ARCHIVELOG ALL;

CROSSCHECK BACKUP;

CROSSCHECK BACKUPSET;

CROSSCHECK COPY;

DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

DELETE NOPROMPT EXPIRED BACKUP;

DELETE NOPROMPT EXPIRED BACKUPSET;

DELETE NOPROMPT EXPIRED COPY;

BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'my_tag_01' DATABASE;

RECOVER COPY OF DATABASE WITH TAG 'my_tag_01';

DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-3';

BACKUP SPFILE FORMAT '/path/spfile_%T_%U';

BACKUP CURRENT CONTROLFILE FORMAT '/path/cfile_%T_%U';

}

exit

Como posso projetar meu script de acordo com meu cenário?

Muito obrigado.

Atenciosamente,

backup oracle-12c
  • 1 1 respostas
  • 57 Views

1 respostas

  • Voted
  1. Best Answer
    miracle173
    2020-11-18T07:25:12+08:002020-11-18T07:25:12+08:00

    Suponho que você queira algo assim :

    CORRE
    {
      RECUPERAR CÓPIA DO BANCO DE DADOS
        COM TAG 'incr_update'
        ATÉ A HORA 'SYSDATE - 7';
      CÓPIA DE SEGURANÇA
        NÍVEL INCREMENTAL 1
        PARA RECUPERAR CÓPIA COM A TAG 'incr_update'
        BASE DE DADOS;
    }
    

    A primeira execução leva um backup de nível 0 (mesmo que a instrução de backup tenha level 1) Todos os backups a seguir são level 1backups que contêm apenas as diferenças em relação aos backups anteriores. A instrução de recuperação recupera até SYSDATE-7, ou seja, até uma semana atrás. Após excluir todos os backups desnecessários, você terá os seguintes backups em disco:

    • um backup de nível 0 de 7 dias atrás
    • o backup diário de nível 1 dos últimos 6 dias, incluindo o backup de hoje
    • os backups de log de arquivo dos últimos sete dias

    Eu nunca tentei essa estratégia, mas acho que uma janela de recuperação de 7 dias é a política apropriada.

    Para arquivos de controle, o seguinte pode ser encontrado no Guia do Usuário de Backup e Recuperação de Banco de Dados

    Fazendo backup de arquivos de controle com RMAN

    Você pode fazer backup do arquivo de controle quando o banco de dados estiver montado ou aberto.

    ...

    Se o comando CONFIGURE CONTROLFILE AUTOBACKUP estiver definido como ON (por padrão, OFF), o RMAN fará backup automaticamente do arquivo de controle e do arquivo de parâmetros do servidor após cada backup e após as alterações estruturais do banco de dados. O backup automático do arquivo de controle contém metadados sobre o backup anterior, o que é crucial para a recuperação de desastres .

    Se o recurso de backup automático não estiver definido, você deverá fazer backup manualmente do arquivo de controle de uma das seguintes maneiras:

    • Execute BACKUP CURRENT CONTROLFILE.
    • Inclua um backup do arquivo de controle em qualquer backup usando a opção INCLUDE CURRENT CONTROLFILE do comando BACKUP.
    • Faça backup do arquivo de dados 1, pois o RMAN inclui automaticamente o arquivo de controle e o arquivo de parâmetro do servidor nos backups do arquivo de dados 1.

    Fazemos um backup de todo o banco de dados que contém um backup do arquivo de dados 1, para que também contenha um backup de um arquivo de controle. Mas eu recomendo habilitar o backup automático do arquivo de controle também.

    CONFIGURAR CONTROLFILE AUTOBACKUP ON;
    

    ou

    CONFIGURAR CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE disk TO '/path/autobackup/%U';
    

    Você quer ser capaz de recuperar todos os pontos no tempo nos últimos 7 dias, então você deve configurar

    CONFIGURAR POLÍTICA DE RETENÇÃO PARA JANELA DE RECUPERAÇÃO DE 7 DIAS;
    

    Essa política de exclusão também inclui os backups do log de arquivamento.

    Você também pode configurar a política de exclusão do log de arquivo:

    CONFIGURAR POLÍTICA DE EXCLUSÃO DE ARCHIVELOG PARA FAZER BACKUP 1 VEZES PARA DEVICE TYPE disco;
    

    Essa política de exclusão está relacionada aos destinos de arquivamento oog, não aos backups de log de arquivamento. Normalmente, o arquivamento é feito no "recovery_file_dest".

    A política de exclusão de log arquivado se aplica a todos os destinos de arquivamento de log, incluindo a área de recuperação rápida. A política não se aplica a arquivos de redo log arquivados em conjuntos de backup.

    Somente os arquivos de redo log arquivados na área de recuperação rápida são excluídos automaticamente pelo banco de dados. Você pode executar os comandos BACKUP ... DELETE INPUT, DELETE ARCHIVELOG ou DELETE OBSOLETE para excluir logs manualmente dos destinos de arquivamento de logs, incluindo a área de recuperação. Se FORCE não for especificado nos comandos de exclusão, esses comandos de exclusão obedecerão à política de exclusão de log arquivado. Se FORCE for especificado, os comandos de exclusão ignorarão a política de exclusão de log arquivado.

    Então, finalmente, você tem os seguintes scripts:

    Um script de configuração que você precisa executar uma vez:

    CONFIGURAR CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE disk TO '/path/autobackup/%U';
    CONFIGURAR POLÍTICA DE RETENÇÃO PARA JANELA DE RECUPERAÇÃO DE 7 DIAS;
    CONFIGURAR POLÍTICA DE EXCLUSÃO DE ARCHIVELOG PARA FAZER BACKUP 1 VEZES PARA DEVICE TYPE disco;
    

    um script para o backup diário:

    CORRE {
    alocar canal c1 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c2 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c3 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c4 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c5 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c6 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c7 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c8 tipo de dispositivo formato de disco '/path/%U';
    RECUPERAR CÓPIA DO BANCO DE DADOS
      COM TAG 'incr_update'
      ATÉ A HORA 'SYSDATE - 7';
    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 1
      PARA RECUPERAR CÓPIA COM A TAG 'incr_update'
    BASE DE DADOS;    
    BACKUP ARCHIVELOG ALL DELETE INPUT;
    APAGAR OBSOLETO;
    }
    

    e o script a seguir para o backup frequente dos logs do arquivo morto . Talvez você queira usar menos canais para os logs de arquivo.

    CORRE {
    alocar canal c1 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c2 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c3 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c4 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c5 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c6 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c7 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c8 tipo de dispositivo formato de disco '/path/%U';
    BACKUP ARCHIVELOG ALL DELETE INPUT;
    }
    

    Se você não deseja a recuperação após cada backup, de outra forma é a seguinte estratégia usando backups incrementais

    Uma vez por semana, execute o seguinte script para obter um backup de nível 0

    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 0
      BASE DE DADOS;
    

    Em dias alternados, faça um backup de nível 1

    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 1
      BASE DE DADOS;
    

    ou você pode fazer um

    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 0 ACUMULATIVO
      BASE DE DADOS;
    

    Novamente, você deve especificar uma janela de recuperação por 7 dias e fazer backups de log de arquivo com frequência.

    Você evita a recuperação da cópia do banco de dados após cada backup, mas agora você precisa de mais espaço para seu backup porque agora você sempre tem dois backups completos em seu espaço de backup. Além disso, o número de backups de nível 1 é superior a 6.

    Suponha que sua política de retenção seja de 7 dias e você faça seu backup de nível 0 sempre no mesmo dia e no mesmo horário (é assim que normalmente se faz), por exemplo, você inicia seu backup sempre no domingo às 12:00. Agora temos domingo, dia 29 , 12:00 . Já temos dois backups de nível 0 em disco, um iniciado no dia 22 às 12:00 e um iniciado no dia 15 às 12:00 . Se você deseja restaurar o banco de dados agora para o momento 22 , 12:00 , isso deve ser possível, pois sua política de retenção é de 7 dias. Mas para esta restauração você precisa do backup do dia 15 dia pois o backup não foi finalizado (ou mesmo não iniciado) no dia 22 às 12:00. Então, se você emitir um comando 'DELETE OBSOLETE' no dia 29, 12:00, isso não excluirá o backup de nível 0 iniciado em 15 th , 12:00. E se você iniciar um backup de nível 0 agora, terá três backups de nível 0 em disco. Se você quiser evitar isso para economizar espaço, pode pensar em usar uma janela de recuperação de 6 dias em vez de 7 dias. Então você pode emitir uma DELETE OBSOLETEdeclaração no dia 29 , 12:00, antes de iniciar o backup e o backup feito no dia 15 será removido .

    Então, finalmente, você terá esses scripts:

    Um script de configuração que você precisa executar uma vez:

    CONFIGURAR CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE disk TO '/path/autobackup/%U';
    CONFIGURAR POLÍTICA DE RETENÇÃO PARA JANELA DE RECUPERAÇÃO DE 6 DIAS;
    CONFIGURAR POLÍTICA DE EXCLUSÃO DE ARCHIVELOG PARA FAZER BACKUP 1 VEZES PARA DEVICE TYPE disco;
    

    Um script para o backup semanal de nível 0

    CORRE {
    alocar canal c1 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c2 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c3 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c4 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c5 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c6 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c7 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c8 tipo de dispositivo formato de disco '/path/%U';
    APAGAR OBSOLETO;
    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 0
    DATABASE PLUS ARCHIVELOG DELETE INPUT;    
    }
    

    um script diário (exceto para o dia em que o nível 0 é executado) para os backups de nível 1:

    CORRE {
    alocar canal c1 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c2 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c3 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c4 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c5 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c6 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c7 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c8 tipo de dispositivo formato de disco '/path/%U';
    APAGAR OBSOLETO;
    CÓPIA DE SEGURANÇA
      NÍVEL INCREMENTAL 1
    DATABASE PLUS ARCHIVELOG DELETE INPUT;    
    }
    

    e script para os backups de log de arquivo

    CORRE {
    alocar canal c1 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c2 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c3 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c4 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c5 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c6 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c7 tipo de dispositivo formato de disco '/path/%U';
    alocar canal c8 tipo de dispositivo formato de disco '/path/%U';
    BACKUP ARCHIVELOG ALL DELETE INPUT;
    }
    
    • 1

relate perguntas

  • Prós e contras das estratégias de backup do SQL Server e seus cenários de uso apropriados

  • Max_allowed_packet alterado e ainda recebendo o erro 'Pacote muito grande'

  • Agendador de tarefas para SQL Server Express

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve