Backup e Recovery de Control Files no Oracle

Backup e Recovery de Control Files no Oracle

Backup e Recovery de Control Files no Oracle

 

Aprenda como realizar recovery de control files nesse Laboratório.

 

Neste laboratório vamos trabalhar com dois cenários, aprendendo a como restaurar os arquivos de configuração (Recovery de Control Files) do banco de dados Oracle.

 

  • Cenário 1: Perda de todos os control files, recuperação a partir do autobackup
  • Cenário 2: Perda de todos os control files, recuperação sem backup usando SNAPSHOT CONTROLFILE

O que é um Control File? Um Control File é um pequeno arquivo binário que faz parte de um banco de dados. Ele é usado para acompanhar o status e a estrutura física do banco de dados, sendo atualizado constantemente pelo Oracle durante sua utilização, ficando disponível para escrita apenas quando o banco de dados está aberto, ou seja, OPEN. Caso o arquivo de controle não esteja acessível por alguma razão, o banco de dados não irá funcionar corretamente, podendo trazer problemas ao iniciar a instância.

 

Pré-requisitos para o Lab:

Possuir um servidor Linux com banco de dados Oracle 11g ou 12c. Copiar o script crashmanager.sh para o diretório /home/oracle com as permissões:

 

[sql]
# chmod 775 /home/oracle/crashmanager.sh
# chown oracle:oinstall /home/oracle/crashmanager.sh
[/sql]

 

Definições importantes:

 

Estrutura física

 

Arquivos e outras estruturas que compõem o banco de dados Oracle e protegem de possíveis falhas.

 

Datafiles e Data Blocks

 

Um banco de dados consiste em uma ou mais unidades lógicas chamadas tablespaces. Cada tablespace consiste em um ou mais arquivos de dados chamados datafiles.

 

O banco de dados gerencia o espaço armazenamento nos datafiles em unidades denominadas data blocks. Os data blocks são as menores unidades de armazenamento que o banco de dados pode usar ou alocar. As cópias dos datafiles são uma parte crítica de qualquer backup.

 

Redo Logs

 

Redo logs registra todas as alterações feitas nos datafiles. Cada vez que os dados são alterados no banco de dados, essa alteração é gravada primeiro no registro de redo log online, antes de ser aplicada nos datafiles.

 

Se um backup de um datafile em algum ponto do tempo e um conjunto completo de redo logs a partir de ponto para frente estiverem disponíveis, o banco de dados pode reaplicar as alterações registradas nos redo logs, para reconstruir o conteúdo do datafile em qualquer ponto entre o último backup e o final do último registro do redo log. No entanto isto só é possível se o banco estiver com o modo de archive log habilitado.

 

Sem archive redo logs, suas opções de backup e recuperação são severamente limitadas.

 

Control Files

 

 O arquivo de controle contém o registro das estruturas físicas do banco de dados e seu status. Vários tipos de informações armazenadas no arquivo de controle estão relacionados ao backup e recuperação:

 

  • Informações do banco de dados (resetlogs scn e time stamp)
  • Registros do tablespace e datafile (filenames, datafile checkpoints, read/write status, offline ranges)
  • Informações sobre redo (current online redo log)
  • Registros de log (log sequence numbers, intervalo SCN em cada log)
  • Um registro dos backups anteriores do RMAN
  • Informações sobre blocos corrompidos de datafile

 

Undo Segments

 

 Em geral, quando os dados em um datafile são atualizados, antes as imagens desses dados são escritas no undo segments. Se uma transação for revertida (rolled back), essas informações da undo podem ser usadas para restaurar o conteúdo do arquivo de datafile original.

 

No contexto da recuperação, as informações da undo são usadas para desfazer os efeitos das transações não confirmadas, uma vez que todas as alterações do arquivo de dados dos registros de redo foram aplicadas aos arquivos de datafiles.

 

Você não deve se preocupar com undo segments ou gerenciá-los diretamente como parte do seu backup ou processo de recuperação.

 

Cenário 1: Perda de todos os control files, recuperação a partir do autobackup

 

[sql]

$ rman target /
RMAN> show all;
RMAN> configure controlfile autobackup on; // Sem que for executado algum backup
RMAN> report schema;
RMAN> backup datafile 6; // Use o datafile users
RMAN> quit;

$ sh /home/oracle/crashmanager.sh // Executar crashmanager e selecionar a opção 2.

[/sql]

 

Deixar alert log aberto em um terminal

[sql]

$ tail – f $ORACLE_BASE/diag/rdbms/wint/WINT/trace/alert_WINT.log
$ sqlplus / as sysdba

SQL> select count(*) from all_users; // Executar operação normal
SQL> shutdown abort;
SQL> quit;

$ rman target /

RMAN> startup nomount;
RMAN> restore controfile from autobackup;
RMAN> alter database mount;
RMAN> alter database open; // Controlfile está desatualizado, é necessário atualizar com recover database
RMAN> recover database;
RMAN> alter database open; // Ocorre um erro, será necessário criar uma nova encarnação do banco
RMAN> list incarnation; // Verificando encarnação
RMAN> alter database open resetlogs;
RMAN> list incarnation; // Verificando a nova encarnação
RMAN> backup database; // É recomendado fazer um backup completo
RMAN> quit

[/sql]

 

Cenário 2: Perda de todos os control files, recuperação sem backup usando SNAPSHOT CONTROLFILE

 

[sql]

$ rman target /

RMAN> show all; // Snapshot é realizado sempre que é iniciado o backup
RMAN> list backup of controlfile
RMAN> quit;

$ rm -rf /u01/app/oracle/fast_recovery_area/autobackup
$ sh /home/oracle/crashmanager.sh // Executar crashmanager e selecionar a opção 2.

[/sql]

 

Deixar alert log aberto em um terminal

 

[sql]

$ tail – f $ORACLE_BASE/diag/rdbms/wint/WINT/trace/alert_WINT.log
$ sqlplus / as sysdba

SQL> select count(*) from all_users; // Executar operação normal
SQL> shutdown abort;
SQL> quit;

$ cd $ORACLE_HOME/dbs
$ ls -l // Encontre o arquivo snapcf_WINT.f

// Podemos verificar os diretórios dos control files abrindo o arquivo spfileWINT.ora

$ strings spfileWINT.ora
$ cp snapcf_WINT.f  /u01/oradata/WINT/controle/control01.ctl
$ cp snapcf_WINT.f /u01/oradata/WINT/espelhocontrole/control02.ctl

$ rman target /

RMAN> startup mount;
RMAN> recover database;
RMAN> alter database open resetlogs; // Será necessário criar uma nova encarnação do banco
RMAN> list incarnation; // Verificando a nova encarnação
RMAN> backup database; // É recomendado fazer um backup completo
RMAN> quit;

[/sql]

 

 

Referências Bibliográficas:

http://docs.oracle.com/cd/B19306_01/backup.102/b14192/intro002.htm

https://docs.oracle.com/cd/B19306_01/backup.102/b14192/recov004.htm

https://sourceforge.net/projects/crashmanager/files/crashmanager/

https://www.youtube.com/watch?v=seRGtJ5nka8&t

https://www.youtube.com/watch?v=kPmGIFpXARM

COMENTÁRIOS

Política de Privacidade e Termos de Uso de Dados - Dataunique Tecnologia da Informação LTDA

A Dataunique Tecnologia da Informação LTDA, empresa devidamente registrada sob o CNPJ 15.179.495/0001-35, compromete-se a proteger a privacidade e segurança dos dados pessoais de seus usuários. Esta política descreve como coletamos, usamos, compartilhamos e protegemos as informações pessoais fornecidas por você.

1. Informações Coletadas

1.1. A Dataunique coleta informações fornecidas voluntariamente por você, como nome, endereço, e-mail, número de telefone, entre outras, durante o cadastro ou utilização de nossos serviços.

1.2. Dados de acesso e utilização de nossos serviços, como endereço IP, tipo de navegador, páginas visitadas e tempo de permanência, podem ser automaticamente registrados para melhorar a qualidade dos serviços oferecidos.

2. Uso de Informações

2.1. As informações coletadas são utilizadas para fornecer, manter, proteger e melhorar nossos serviços, bem como para desenvolver novos serviços.

2.2. Podemos utilizar seus dados para personalizar conteúdos, oferecer suporte ao cliente, enviar atualizações, newsletters e informações sobre novos produtos ou serviços.

3. Compartilhamento de Informações

3.1. A Dataunique não compartilha informações pessoais com terceiros, exceto quando necessário para cumprir obrigações legais, proteger nossos direitos ou em situações autorizadas por você.

4. Segurança de Dados

4.1. Utilizamos medidas de segurança adequadas para proteger suas informações contra acessos não autorizados, alterações, divulgação ou destruição não autorizada.

5. Cookies e Tecnologias Semelhantes

5.1. Utilizamos cookies e tecnologias semelhantes para melhorar a experiência do usuário, analisar o tráfego e personalizar conteúdos.

6. Seus Direitos

6.1. Você tem o direito de acessar, corrigir ou excluir suas informações pessoais. Para exercer esses direitos ou esclarecer dúvidas, entre em contato com nosso Encarregado de Proteção de Dados (DPO) através do e-mail [email protected].

7. Alterações na Política de Privacidade

7.1. Reservamo-nos o direito de alterar esta política a qualquer momento, e as alterações serão comunicadas por meio de nossos canais de comunicação.

Ao utilizar nossos serviços, você concorda com os termos desta Política de Privacidade. Recomendamos a leitura regular desta política para se manter informado sobre como tratamos seus dados pessoais.

Dados de Contato:

  • Endereço: Rua T30, 2515, Quadra 99 Lote 11/14, Sala 1404 e 1405, Edif Walk Bueno Business Edif e Lifestyle, SET BUENO, Goiânia – GO, 74215-060.
  • Telefone: (62) 99906-0584
  • Fax/Mensageiro Online: (62) 3223-2257
  • E-mail: [email protected]

Data de vigência: [Data de atualização da política]

Atenciosamente,

Dataunique Tecnologia da Informação LTDA