estratégia de backup frio para um modo Noarchivelog Oracle Database 12C

você executa um backup frio gerenciado pelo Usuário copiando arquivos após o desligamento do banco de dados. Esse tipo de backup também é conhecido como backup offline. Seu Oracle database 12c pode estar no modo noarchivelog ou no modo archivelog quando você faz um backup frio.

DBAs tendem a pensar em um backup frio como sendo sinônimo de um backup de um banco de dados no modo noarchivelog. Isso não está correcto. Você pode fazer um backup frio de um banco de dados no modo archivelog, e essa é uma estratégia de backup que muitas lojas empregam. As diferenças entre um backup a frio com o banco de dados no modo noarchivelog e no modo archivelog são detalhadas nas seções a seguir.

Fazendo um Backup a Frio de um Banco de dados de Modo Noarchivelog

Uma razão principal para fazer um backup a frio de um banco de dados Oracle 12C no modo noarchivelog é dar-lhe uma forma de restaurar um banco de dados de volta para um ponto no tempo no passado. Você deve usar esse tipo de backup somente se não precisar recuperar as transações ocorridas após o backup. Esse tipo de estratégia de backup e recuperação só é aceitável se os requisitos da sua empresa permitirem a perda de dados e o tempo de inatividade. Raramente você implementaria esse tipo de solução de backup e recuperação para um banco de dados de negócios de produção.

tendo dito isso, existem algumas boas razões para implementar este tipo de backup. Um uso comum é fazer um backup a frio de um banco de dados de desenvolvimento/teste/treinamento e redefinir periodicamente o banco de dados de volta à linha de base. Isso oferece uma maneira de reiniciar um teste de desempenho ou uma sessão de treinamento com o mesmo instantâneo pontual do banco de dados.

Imagem

Imagem

Dica de usar o Flashback de Banco de dados para definir o banco de dados de volta para um ponto no tempo no passado.

o exemplo nesta seção mostra como fazer um backup de todos os arquivos críticos em seu banco de dados: todos os arquivos de controle, Arquivos de dados, arquivos de dados temporários e arquivos de log de refazer online. Com este tipo de backup, você pode facilmente restaurar seu banco de dados de volta ao ponto no tempo em que o backup foi feito. As principais vantagens dessa abordagem são que ela é conceitualmente simples e fácil de implementar. Aqui estão as etapas necessárias para um backup a frio de um banco de dados no modo noarchivelog:

  1. Determine onde copiar os arquivos de backup e quanto espaço é necessário.
  2. identifique os locais e nomes dos arquivos de banco de dados a serem copiados.
  3. desligue o banco de dados com a cláusula imediata, transacional ou NORMAL.
  4. Copie os arquivos (identificados na Etapa 2) para o local de backup (determinado na Etapa 1).
  5. reinicie seu banco de Dados Oracle 12c.

as seções a seguir elaboram essas etapas.

Passo 1. Determine onde copiar os arquivos de Backup e quanto espaço é necessário

idealmente, o local de backup deve estar em um conjunto de discos separados do local dos arquivos de dados ao vivo. No entanto, em muitas lojas, você pode não ter escolha e pode ser informado quais pontos de montagem devem ser usados pelo banco de dados. Para este exemplo, o local de backup é o diretório / U01 / cbackup / o12c. Para ter uma ideia aproximada de quanto espaço você precisa para armazenar uma cópia dos backups, você pode executar esta consulta:

select sum(sum_bytes)/1024/1024 m_bytesfrom(select sum(bytes) sum_bytes from v$datafileunionselect sum(bytes) sum_bytes from v$tempfileunionselect (sum(bytes) * members) sum_bytes from v$loggroup by members);

você pode verificar quanto espaço em disco operacional está disponível com o comando Linux/Unix df (disk free). Certifique – se de que a quantidade de espaço em disco disponível no sistema operacional seja maior do que a soma retornada da consulta anterior:

$ df -h

Etapa 2. Identifique os locais e nomes dos arquivos de banco de dados para copiar

execute esta consulta para listar os nomes (e caminhos) dos arquivos incluídos em um backup a frio de um banco de dados noarchivelog mode:

select name from v$datafileunionselect name from v$controlfileunionselect name from v$tempfileunionselect member from v$logfile;

fazer backup de registros de refazer on-line (ou não)

você precisa fazer backup dos registros de refazer on-line? Não; você nunca precisa fazer backup dos logs de refazer online como parte de qualquer tipo de backup. Então, por que os DBAs fazem backup dos logs de refazer online como parte de um backup a frio? Uma razão é que torna o processo de restauração para o cenário do modo noarchivelog um pouco mais fácil. Os registros de refazer on-line são necessários para abrir o banco de dados de maneira normal.

Se você fazer backup de todos os arquivos (incluindo o online redo logs) e, em seguida, para obter o seu banco de dados Oracle 12C volta para o estado em que estava no momento do backup, restaurar todos os arquivos (inclusive on-line redo logs) e iniciar o backup de seu banco de dados.

Passo 3. Desligue o Banco de dados

Conectar ao seu banco de dados como a função SYS (ou como SYSDBA-usuário com privilégios), e encerrar o seu banco de dados, usando de IMEDIATO, TRANSACIONAL, ou NORMAL. Em quase todas as situações, usando de IMEDIATO é o método preferencial. Este modo desconecta os usuários, reverte transações incompletas e desliga o banco de dados:

$ sqlplus / as sysdbaSQL> shutdown immediate;

Etapa 4. Crie cópias de Backup dos arquivos

para cada arquivo identificado na Etapa 2, use um utilitário do sistema operacional para copiar os arquivos para um diretório de backup (identificado na Etapa 1). Neste exemplo simples, todos os arquivos de dados, arquivos de controle, Arquivos de banco de dados temporários e registros de refazer online estão no mesmo diretório. Em ambientes de produção, você provavelmente terá arquivos espalhados em vários diretórios diferentes. Este exemplo usa o comando Linux / Unix cp para copiar os arquivos de banco de dados de/U01 /dbfile/o12c para o diretório/u01 / cbackup / o12c:

$ cp /u01/dbfile/O12C/*.* /u01/cbackup/O12C

Etapa 5. Reinicie O Banco de dados

Depois que todos os arquivos são copiados, você pode iniciar o backup de seu banco de dados:

$ sqlplus / as sysdbaSQL> startup;

a Restauração de um Backup a Frio no Modo Noarchivelog Online Redo Logs

O exemplo a seguir explica como restaurar de um backup a frio de um banco de dados no modo noarchivelog. Se você incluiu os registros de refazer on-line como parte do backup a frio, poderá incluí-los ao restaurar os arquivos. Aqui estão as etapas envolvidas neste procedimento:

  1. desligue a instância.
  2. Copie os arquivos de dados, os registros de refazer on-line, os arquivos temporários e os arquivos de controle do backup para os locais de arquivos de dados do banco de dados ao vivo.
  3. inicie seu banco de dados.

estas etapas são detalhadas nas seções a seguir.

Passo 1. Desligue a instância

desligue a instância, se ela estiver em execução. Nesse cenário, não importa como você desliga o Oracle database 12c, porque você está restaurando de volta a um ponto no tempo (sem recuperação de transações). Todos os arquivos nos locais do diretório do banco de dados ao vivo são sobrescritos quando os arquivos de backup são copiados de volta. Se sua instância estiver em execução, você poderá abortá-la abruptamente. Como um usuário privilegiado pelo SYSDBA, faça o seguinte:

$ sqlplus / as sysdbaSQL> shutdown abort;

Etapa 2. Copie os arquivos de volta do Backup

esta etapa faz o inverso do backup: você está copiando arquivos do local de backup para os locais de arquivos do banco de dados ao vivo. Neste exemplo, todos os arquivos de backup estão localizados no diretório /u01/cbackup/O12C diretório e todos os arquivos estão sendo copiados para o /u01/dbfile/O12C diretório:

$ cp /u01/cbackup/O12C/*.* /u01/dbfile/O12C

Passo 3. Inicie o banco de dados

conecte-se ao banco de dados como SYS (ou um usuário com privilégios SYSDBA) e inicie o banco de dados:

$ sqlplus / as sysdbaSQL> startup;

depois de concluir essas etapas, você deve ter uma cópia exata do seu banco de dados como era quando fez o backup a frio. É como se você definisse seu banco de dados de volta ao ponto no tempo em que fez o backup.

restaurando um Backup frio no modo Noarchivelog sem registros de refazer on-line

como mencionado anteriormente, você nunca precisa dos logs de refazer on-line ao restaurar de um backup frio. Se você fez um backup frio do seu banco de dados no modo noarchivelog e não incluiu os logs de refazer online como parte do backup, as etapas para restaurar são quase idênticas às etapas na seção anterior. A principal diferença é que a última etapa requer que você abra seu banco de dados, usando a cláusula open RESETLOGS. Aqui estão os passos:

  1. desligue a instância.
  2. Copie os arquivos de controle e os arquivos de dados do backup.
  3. Inicie o banco de dados no modo de montagem.
  4. abra o banco de dados com a cláusula open RESETLOGS.

Passo 1. Desligue a instância

desligue a instância, se ela estiver em execução. Nesse cenário, não importa como você desliga o Oracle database 12c, porque você está restaurando de volta a um ponto no tempo. Todos os arquivos nos locais do diretório do banco de dados ao vivo são sobrescritos quando os backups são copiados. Se sua instância estiver em execução, você poderá abortá-la abruptamente. Como um usuário privilegiado pelo SYSDBA, faça o seguinte:

$ sqlplus / as sysdbaSQL> shutdown abort;

Etapa 2. Copie os arquivos de volta do Backup

Copie os arquivos de controle e os arquivos de dados do local de backup para os locais de arquivos de dados ao vivo:

$ cp <backup directory>/*.* <live database file directory>

Etapa 3. Inicie o banco de dados no modo de montagem

conecte-se ao banco de dados como SYS ou um usuário com privilégios SYSDBA e inicie o banco de dados no modo de montagem:

$ sqlplus / as sysdbaSQL> startup mount

Etapa 4. Abra o banco de dados com a cláusula open RESETLOGS

abra seu banco de dados para uso com a cláusula open RESETLOGS:

SQL> alter database open resetlogs;

se você vir a mensagem alterada do banco de dados, o comando foi bem-sucedido. No entanto, você poderá ver esse erro:

ORA-01139: RESETLOGS option only valid after an incomplete database recovery

neste caso, emita o seguinte comando:

SQL> recover database until cancel;

Você deve ver esta mensagem:

Media recovery complete.

Agora, tentar abrir o banco de dados com o OPEN RESETLOGS cláusula:

SQL> alter database open resetlogs;

esta declaração instrui a Oracle a recriar os logs de refazer online. A Oracle usa informações no arquivo de controle para o posicionamento, nome e tamanho dos logs de refazer. Se houver arquivos de log de refazer online antigos nesses locais, eles serão substituídos.

se você estiver monitorando seu alerta.log ao longo deste processo, você pode ver ORA-00312 e ORA-00313. Isso significa que a Oracle não consegue encontrar os arquivos de log de refazer on-line; tudo bem, porque esses arquivos não estão fisicamente disponíveis até serem recriados pelo comando Open RESETLOGS.

Scripting um Backup frio e restaurar

é instrucional para ver como fazer o script de um backup frio. A ideia básica é consultar dinamicamente o dicionário de dados para determinar os locais e nomes dos arquivos a serem copiados. Isso é preferível a codificar os locais do diretório e os nomes dos arquivos em um script. A geração dinâmica de um script é menos propensa a erros e surpresas (por exemplo, a adição de novos arquivos de dados a um banco de dados, mas não a um script de backup antigo e codificado).

Imagem

Imagem

Note que Os scripts nesta seção não são destinadas a ser de produção-força de backup e recuperação de scripts. Em vez disso, eles ilustram os conceitos básicos de script de um backup frio e posterior restauração.

o primeiro script nesta seção faz um backup frio de um banco de dados. Antes de usar o script de backup a frio, você precisa modificar essas variáveis no script para corresponder ao seu ambiente de banco de dados:

  • ORACLE_SID
  • ORACLE_HOME
  • cbdir

a variável cbdir especifica o nome do local do Diretório de backup. O script cria um arquivo chamado coldback.sql, que é executado a partir do SQL * Plus para iniciar um backup a frio do banco de dados:

#!/bin/bashORACLE_SID=O12CORACLE_HOME=/u01/app/oracle/product/12.1.0.1/db_1PATH=$PATH:$ORACLE_HOME/bin#sqlplus -s <<EOF/ as sysdbaset head off pages0 lines 132 verify off feed off trimsp ondefine cbdir=/u01/cbackup/O12Cspo coldback.sqlselect 'shutdown immediate;' from dual;select '!cp ' || name || ' ' || '&&cbdir' from v$datafile;select '!cp ' || name || ' ' || '&&cbdir' from v$tempfile;select '!cp ' || member || ' ' || '&&cbdir' from v$logfile;select '!cp ' || name || ' ' || '&&cbdir' from v$controlfile;select 'startup;' from dual;spo off;@@coldback.sqlEOFexit 0

este arquivo gera comandos que devem ser executados a partir de um script SQL*Plus para fazer um backup a frio de um banco de Dados Oracle. Você coloca um ponto de exclamação (!) na frente do comando Unix cp para instruir o SQL * Plus a hospedar o sistema operacional para executar o comando cp. Você também coloque uma barra invertida (\) na frente de cada um sinal de dólar ($) ao fazer referência a v$ dicionário de dados pontos de vista; isto é requerido em Linux/Unix, shell script. O \ escapa o $ e diz ao script shell para não tratar o $ como um caractere especial (o $ normalmente significa uma variável shell).

depois de executar este script, aqui está uma amostra dos comandos de cópia gravados no coldback.SQL script:

shutdown immediate;!cp /u01/dbfile/O12C/system01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/sysaux01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/undotbs01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/users01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/tools01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/temp01.dbf /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo02a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo02b.rdo /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo01a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo01b.rdo /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo03a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo03b.rdo /u01/cbackup/O12C!cp /u01/dbfile/O12C/control01.ctl /u01/cbackup/O12C!cp /u01/dbfile/O12C/control02.ctl /u01/cbackup/O12Cstartup;

Enquanto você faz um frio de cópia de segurança, você também deve gerar um script que fornece os comandos para copiar arquivos de dados, arquivos temporários, arquivos de log e arquivos de controle de volta para seus locais originais. Você pode usar este script para restaurar a partir do backup frio. O próximo script nesta seção cria dinamicamente um coldrest.script sql que copia arquivos do local de backup para os locais de arquivos de dados originais. Você precisa modificar este script da mesma maneira que modificou o script de backup a frio (ou seja, alterar as variáveis ORACLE_SID, ORACLE_HOME e cbdir para corresponder ao seu ambiente):

#!/bin/bashORACLE_SID=O12CORACLE_HOME=/u01/app/oracle/product/12.1.0.1/db_1PATH=$PATH:$ORACLE_HOME/bin#sqlplus -s <<EOF/ as sysdbaset head off pages0 lines 132 verify off feed off trimsp ondefine cbdir=/u01/cbackup/O12Cdefine dbname=$ORACLE_SIDspo coldrest.sqlselect 'shutdown abort;' from dual;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$datafile;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$tempfile;select '!cp ' || '&&cbdir/' || substr(member, instr(member,'/',-1,1)+1) || ' ' || member from v$logfile;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$controlfile;select 'startup;' from dual;spo off;EOFexit 0

este script cria um script, chamado coldrest.sql, que gera os comandos de cópia para restaurar seus arquivos de dados, arquivos temporários, arquivos de log e arquivos de controle de volta para seus locais originais. Depois de executar este script de shell, aqui está um trecho do código no coldrest.arquivo sql:

shutdown abort;!cp /u01/cbackup/O12C/system01.dbf /u01/dbfile/O12C/system01.dbf!cp /u01/cbackup/O12C/sysaux01.dbf /u01/dbfile/O12C/sysaux01.dbf!cp /u01/cbackup/O12C/undotbs01.dbf /u01/dbfile/O12C/undotbs01.dbf!cp /u01/cbackup/O12C/users01.dbf /u01/dbfile/O12C/users01.dbf!cp /u01/cbackup/O12C/tools01.dbf /u01/dbfile/O12C/tools01.dbf...!cp /u01/cbackup/O12C/redo03b.rdo /u02/oraredo/O12C/redo03b.rdo!cp /u01/cbackup/O12C/control01.ctl /u01/dbfile/O12C/control01.ctl!cp /u01/cbackup/O12C/control02.ctl /u01/dbfile/O12C/control02.ctlstartup;

Se você precisar restaurar de um backup a frio usando este script, faça logon no SQL*Plus como SYS, e execute o script:

$ sqlplus / as sysdbaSQL> @coldrest.sql

Вас заинтересует / Intresting para você:

Gerenciamento de Banco de dados Oracle 12C O...

Gerenciando o Oracle Database 12c O… 4931 visualizações Андрей Волков Sáb, 29 fev 2020, 10:18:11

implementando um Stra de backup quente...

implementando um Stra de backup quente… 6414 visualizações Андрей Волков Sáb, 29 fev 2020, 10:16:34

tipo de tabela Oracle 12c correspondente...

tipo de tabela Oracle 12c correspondente… 1786 visualizações Ded Sáb, 18 Ago 2018, 16:59:35

parando o banco de Dados Oracle 1...

parando o banco de Dados Oracle 1… 976 visualizações Андрей Волков Sáb, 29 fev 2020, 10:19:28

Deixe uma resposta

O seu endereço de email não será publicado.