Planejamento Básico

  • Manter espelhamento dos datafiles, quer seja através de hardware, quer seja através de software. Podemos tentar a implementação de mecanismos Raid5 que trazem segurança e performance razoável;
  • Manter o control file multiplexado ou espelhado, em discos diferentes é claro, ou através do raid;
  • Manter ao menos três grupos de redo log file com multiplexação de membros, em discos diferentes, ou também através de raid;
  • Manter o banco de dados rodando em archive log mode, preferencialmente com múltiplos destinos de archiving;
  • Manter um banco de dados em standby automático;
  • Fazer o backup das imagens dos executáveis Oracle;
  • Diariamente realizar backup (Hot ou Cold) completo, podendo em casos de pouca frequência de atualização, chegarmos a uma vez por seman
  • Diariamente realizar backup (Hot ou Cold) completo, podendo em casos de pouca frequência de atualização, chegarmos a uma vez por seman

Multiplexando o Control File

Um Banco de Dados Oracle não funciona sem o arquivo de controle. O arquivo de controle é binário e dentro dele são armazenadas informações como:

  • O nome do banco de dados;
  • O timestamp de criação do banco de dados;
  • Nomes e endereços lógicos dos datafiles;
  • Nome e endereços lógicos dos arquivos de redo log online e offline;
  • Número sequencial lógico dos arquivos de redo log;
  • O checkpoint, indicando o ponto exato no arquivo de redo log, ao qual todas as informações registradas anteriormente a este ponto foram salvas nos datafiles;
  • O SNC (System Change Number) de sincronismo dos datafiles;
  • O SNC (System Change Number) de sincronismo dos datafiles;

Estas informações são constantemente atualizadas e sua integridade é fundamental para o funcionamento do banco de dados.

Para multiplexar o control file devemos proceder da seguinte forma:

  • No Server Manager, conectado como SYSDBA (Internal), verificamos o control file existente e sua localização através da view v$controlfile:

    Multiplexando o Control File
  • Fazer um shutdown no banco de dados;
  • No sistema operacional, copiar o control file original para um segundo local já criado, preferencialmente em outro dispositivo, dando um nome alternativo ao segundo arquivo;
  • Definir a localização e o nome da cópia do control file no parâmetro control_files no Initorcl.ora:

    control_files no Initorcl.ora
  • Reiniciar o banco de dados.

Verificando o Control File

Verificando o Control File

A multiplexação é uma alternativa barata para quem não tem recursos de espelhamento de discos.

Multiplexando os Arquivos de Redo Log

modificações pertencentes às transações confirmadas não seriam atualizadas no datafiles. Daí a importância de mantermos cópias redundantes dos arquivos de redo log.

Para Multiplexar os grupos de redo log devemos proceder da seguinte forma:

  • No Server Maneger, conectado como SYSDBA (Internal), verificamos os grupos de redo log, seus membros e localização através das views v$log e v$logfile:

    Multiplexando os Arquivos de Redo Log
  • Execute o seguinte comando para gerar os novos membros:

    Multiplexando os Arquivos de Redo Log
  • Verifique novamente a v$logfile:

    Multiplexando os Arquivos de Redo Log
  • Para que os novos membros sejam utilizados imediatamente, devemos forçar uma troca de grupo de redo com o comando abaixo:

    Multiplexando os Arquivos de Redo Log

Realizando Backup num BD Oracle

O processo de backup pode ser classificado em duas categorias:

  • Backups físicos, onde os arquivos físicos do banco de dados são copiados para uma mídia qualquer que não a original. Desta forma um backup físico pode ser executado da seguinte forma:

    • Os backups de sistema operacional que podem incluir utilitários de terceiros;
    • Os cold backups que constituem cópias físicas dos arquivos importantes do banco de dados com este fora do ar;
    • Os hot backups que constituem cópias físicas importantes do banco de dados com este rodando;
  • Backups lógicos, os quais utilizam o utilitário Export, gerando um arquivo binário do sistema operacional.

Esses dados podem ser recolocados em um banco de dados qualquer, utilizando-se para isso um utilitário de importação.

Backup de Sistema Operacional

Esta forma de backup é das mais simples de se implementar, entretanto também é a que mais tempo consome e requer que coloquemos o sistema indisponível.

Devemos colocar o banco de dados em modo “single-user”, de modo que somente o administrador tenha acesso ao banco de dados.

Já em modo “single-user”, devemos utilizar o software específico do sistema operacional em uso.

  • No ambiente AIX temos o Smit;
  • No ambiente AIX temos o Smit;
  • No ambiente NT temos o backup manager para fazer uma cópia de todo o disco.

Existe no mercado uma diversidade de produtos que mantém cópias de backups automaticamente, backups incremental, cumulativos, etc...

Cold Backup (Offline)

Da mesma forma que em um backup de sistema operacional, neste tipo de backup também faremos uma cópia física, porém não copiaremos todo o disco. Nesse caso faremos a cópia apenas dos arquivos importantes do banco de dados.

Podemos fazer a cópia destes arquivos utilizando um dos utilitários a seguir.

Sistema Operacional Utilitário
UNIX Cpio, tar, dd, cp
Windows NT Copy
Novel Ncopy
VMS Backup, copy

Os arquivos necessários para fazermos backup são:

  • Database files e control files. Se estivermos trabalhando no modo NOARCHIVELOG, devemos copiar também os arquivos de redo log.
  • É conveniente também mantermos copias seguras dos arquivos de parâmetros (init.ora), tnsnames.ora.

Para fazermos tais copias será necessário definirmos o nome e a localização destes arquivos.

Verificando a localização e o nome dos Database Files
Verificando a localização e o nome dos Database Files
Verificando a localização e o nome dos Control Files
Verificando a localização e o nome dos Control Files

Para executar um cold backup dos arquivos recuperados nas queries acima, o banco de dados deverá ser fechado e desmontado, seguido da cópia dos datafiles e control file, e da reinicialização do banco de dados.

Devemos automatizar este processo de forma a reduzir ao mínimo a interferência humana e conseqüentemente às chances de falhas.

Hot Backup (On-Line)

Assim como os demais backups físicos, esse tipo de backup também é feito a partir da cópia dos arquivos físicos para uma mídia diferente daquela onde estão os arquivos originais.

Da mesma maneira em que o Cold backup, esse mecanismo também requer cópias de arquivos específicos, mas com uma diferença, dessa vez com o banco no ar. Assim devemos tomar algumas medidas importantes para garantir que o mesmo mantenha um ponto de integridade no momento que iniciarmos o backup.

Para fazermos um hot backup certifique-se de que o banco de dados esteja operando em ARCHIVELOG mode, a seguir determine quais os conjuntos de tablespaces serão copiadas. Crie scripts para automatizar o processo evitando assim a possibilidade de erros operacionais.

Nunca copie os arquivos de dados (datafiles) e control files do Oracle com o banco de dados no ar, exceto através do processo de hot backup, caso contrário você irá gerar uma cópia corrompida do seu banco de dados.

Executado um Hot Backup

Para executar um backup on-line (hot), temos ter o privilégio de Alter TableSpace e, a partir do Server Manager ou SQL Plus, emitirmos a seguinte seqüência de comandos:


alter tablespace begin backup;
/* Proceda a cópia dos datafiles correspondentes à tablespace em backup
alter tablespace end backup;

Onde:

  • Begin backup: Significa que o backup on-line está pronto para ser iniciado.
  • End backup: Marca o termino do backup on-line.

Estratégia Básica para Hot Backup

Para manter um backup do banco de dados sempre atualizado, devemos manter um sincronismo das cópias de datafiles, juntamente com os redo logs.

Diferentemente da estratégia utilizada no backup offline, deve-se ter uma estratégia de backup a ser utilizada. O processo de sincronismo entre os datafiles copiados com os redo arquivados deve seguir o seguinte esquema:

t0 Geração de base de dados (carga inicial dos dados)
arch1, arch2, …archn
t1 Inicio do 1º backup on-line (inconsistente) na TBS1 – fazer backup dos archives anteriores e associá-los a carga inicial do banco de dados.
archn+1, archn+2, … archn+n
t2 Fim do 1º backup on-line (inconsistente) na TBS1 – fazer backup dos archives entre o inicio e o fim do backup on-line e associá-los a este conjunto copiado.

Estratégia simplificada de um hot Backup:

  • Executar o comando “archive log list” para identificar o número do arquivo de redo log corrente, antes do inicio do hot backup;
  • Disparar o inicio do backup nas tablespaces;
  • Fazer as cópias dos datafiles específicos;
  • Finalizar o processo de backup nas tablespace;
  • Executar o comando “archive log list” para identificar o número do arquivo de redo log corrente, após o término do hot backup;
  • Forçar o arquivamento do último arquivo de redo log com o comando “alter system switch logfile”;
  • Fazer a cópia de todos os redos arquivados identificados, do primeiro ao último;
  • Fazer o backup do control file com o comando “alter database backup control file to”.

Backup do Control File

Os arquivos de controle são muito importantes para um bom funcionamento de um banco de dados, agora será apresentado como deve-se proceder para manter cópias de backup dos arquivos de contro

Trabalhando com o banco de dados em modo NOARCHIVELOG

Nesse modo de operação, só faz sentido fazer backup dos arquivos de controle com o banco de dados em offline, juntamente com todo os procedimentos de Cold Backup Full.

Trabalhando com o banco de dados em modo ARCHIVELOG

Fazendo o backup de controle no modo ARCHIVELOG, deve-se fazer backup do arquivo de controle com o banco de dados online. Para esse tipo de procedimento, existem duas alternativas de backup que são : lógico e físico.

Backup Lógico

O backup lógico implica na geração de um script que recria o arquivo de controle. Este script é gerado a partir do comando abaixo e reside no diretório apontado pelo parâmetro SER_DUMP_DEST.

Backup Lógico

O script gerado é um arquivo de nome tipo ORA.trc onde DIP é o número do processo do SO que gerou o arquivo. Deve-se renomear esse arquivo para algo semelhante a .sql e editá-lo de forma a eliminar o header até encontrar o comando “STARTUP NOMOUNT...”. Arquivo Gerado:


Dump file C:\ORAWIN95\RDBMS80\trace\ORA10039.TRC
    Tue Jul 22 20:07:54 2004
    ORACLE V8.0.3.0.0 - Production vsnsta=0
    vsnsql=c vsnxtr=3
    Windows 95 V4.10, OS V192.0, CPU type 586
    Personal Oracle8 Release 8.0.3.0.0 - Production
    With the Partitioning option
    PL/SQL Release 8.0.3.0.0 - Production
    Windows 95 V4.10, OS V192.0, CPU type 586
    Instance name: orcl
    Redo thread mounted by this instance: 1
    Oracle process number: 13
    pid: fff72737
    Tue Jul 22 20:07:54 2004
    Tue Jul 22 20:07:54 2004
    *** SESSION ID:(10.14) 2004.06.03.20.07.54.950
    # The following commands will create a new control file and use it
    # to open the database.
    # Data used by the recovery manager will be lost. Additional logs may
    # be required for media recovery of offline data files. Use this
    # only if the current version of all online logs are available.
    STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "ORACLE" NORESETLOGS          NOARCHIVELOG
             MAXLOGFILES 32
             MAXLOGMEMBERS 2
             MAXDATAFILES 32
             MAXINSTANCES 16
             MAXLOGHISTORY 1630
    LOGFILE
         GROUP 1 (
             'C:\ORAWIN95\DATABASE\LOG2ORCL.ORA',
             'D:\ORAWIN95\DATABASE\LOG20RCL.ORA'
         ) SIZE 200K,
         GROUP 2 (
             'C:\ORAWIN95\DATABASE\LOG1ORCL.ORA',
             'D:\ORAWIN95\DATABASE\LOG10RLC.ORA'
         ) SIZE 200K
    DATAFILE
             'C:\ORAWIN95\DATABASE\SYS1ORCL.ORA',
             'C:\ORAWIN95\DATABASE\USR1ORCL.ORA',
             'C:\ORAWIN95\DATABASE\RBS1ORCL.ORA',
             'C:\ORAWIN95\DATABASE\TMP1ORCL.ORA';
    # Recovery is required if any of the datafiles are restored backups,
    # or if the last shutdown was not normal or immediate.
    RECOVER DATABASE
    # Database can now be opened normally.
    ALTER DATABASE OPEN;
    

Backup Físico

Consiste em aplicar um comando que gera o arquivo de controle de réplica. Binário e com nome e diretório por nós especificado.

Backup Físico

Este último modo nem sempre é o mais adequado, pois o procedimento de recuperação pode nos induzir a erros, porém é uma boa alternativa manter os dois tipos de backup para eventuais perdas.

Utilizando o Utilitário The Backup Manager do Oracle

Pode-se utilizar diversos tipos de utilitários para se fazer backup no Oracle, abaixo é apresentado o funcionamento do utilitário padrão do Oracle.

Backup Manager (NOARCHIVELOG mode) caixa de diálogo

Backup Manager (NOARCHIVELOG mode) caixa de diálogo

Use o Backup Manager para fazer backup do seu banco de dados Oracle8. O Backup Manager tem três modos, dependendo do estado do banco de dados.

  • Database Status: Indica o estado do banco de dados.
  • Backup Type: Indica que o tipo de Backup possível é offline e de banco de dados cheio.
  • Tape: Indica que será utilizado fitas como mecanismo de backup. (Windows NT, suporta fita de 4mm. O Windows 95, não suporta backup de fita).
  • Device: Indica o dispositivo de fita que armazenará o auxilio.
  • Disk, Directory, and Browse Backup: O arquivo é armazenado no diretório especificado no campo de Diretório. O Oracle recomenda que se especifique o caminho completo. Utilize o botão Browse para selecionar onde deve-se armazenar o arquivo de backup, ou para aceitar o diretório default do Oracle.
  • O botão Backup inicia o procedimento de backup.