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:
- 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:
- Reiniciar o banco de dados.
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:
-
Execute o seguinte comando para gerar os novos membros:
-
Verifique novamente a v$logfile:
-
Para que os novos membros sejam utilizados imediatamente, devemos forçar uma troca de grupo de redo com o comando abaixo:
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.
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.
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.
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
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.