Criação de Scripts para executar Cópia a Frio

Uma das antigas formas de se proteger o banco contra falhas é se fazendo o processo de backup. Então, começaremos a proteger nosso banco com a Cópia a Frio(backup banco de dados parado)
Como nos scripts anteriores, listamos o datafile, controfile, e arquivos de redo.
Assim, vamos fazer o script para gerar o script de cópia.
Poderíamos fazer o script diretamente no shell, mas como cada banco de dados contém sua estrutura fisica em um devido local que vai ler as informações físicas e gerar o script de copia, o script de copia será obviamente agendado pelo administrador do primeiro.
Vamos por etapas:
[1] criar scripst que le os dados fisico do banco.
— Arquivo gerabkpfrio.sh —
#!/bin/bash
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
ORACLE_SID=treina
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
PATH=$ORACLE_HOME/bin:$PATH:.:
ORA_NLS10=$ORACLE_HOME/nls/data
NLS_NUMERIC_CHARACTERS=”,.”
ORACLE_TERM=linux
ORACLE_DOC=$ORACLE_HOME/doc
NLS_LANG=”BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1″
NLS_DATE_FORMAT=’DD.MM.YYYY’
export ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH ORACLE_BASE PATH
export ORACLE_TERM NLS_LANG NLS_NUMERIC_CHARACTERS ORACLE_DOC NLS_DATE_FORMAT
sqlplus / as sysdba @/oracle/gerabkpfrio.sql
[2] arquivo do script sql do qual lista a parte fisica concatenando os comandos de cópia do S.O. para uma pasta diferente da pasta do local do banc. Contém somente instruções SQLPLUS.
— Arquivo GERABKPFRIO.SQL —
SET ECHO OFF
SET FEED OFF
SET HEAD OFF
SPOOL /oracle/bkpfrio.sh
SELECT ‘cp ‘ member ‘ /oracle’ member
FROM v$logfile
UNION
SELECT ‘cp ‘ name ‘ /oracle’ name
FROM v$datafile
UNION
SELECT ‘cp ‘ name ‘ /oracle’ name
FROM v$controlfile;
SPOOL OFF
Finalizando a criação, devemos rodar o script
gerabkpfrio.sh direto no terminal para que seja gerado o script /oracle/bkpfrio.sh
— Conteúdo do bkpfrio.sh —
cp /oracle/treina/control01.ctl /oracle/oracle/treina/control01.ctl
cp /oracle/treina/control02.ctl /oracle/oracle/treina/control02.ctl
cp /oracle/treina/control03.ctl /oracle/oracle/treina/control03.ctl
cp /oracle/treina/redo01.log /oracle/oracle/treina/redo01.log
cp /oracle/treina/redo02.log /oracle/oracle/treina/redo02.log
cp /oracle/treina/redo03.log /oracle/oracle/treina/redo03.log
cp /oracle/treina/sysaux01.dbf /oracle/oracle/treina/sysaux01.dbf
cp /oracle/treina/system01.dbf /oracle/oracle/treina/system01.dbf
cp /oracle/treina/undotbs01.dbf /oracle/oracle/treina/undotbs01.dbf
cp /oracle/treina/users01.dbf /oracle/oracle/treina/users01.dbf
(*) O arquivo gerado bkfrio pode ser executado?
Ainda não, existem algumas correções a serem feitas:
[1] A cópia fria de um banco deve ser obviamente feita com o banco parado.
[2] A pasta destino para se copiar o banco não existe

Inicio ao backup com RMAN

Existem algumas formas de se fazer o backup a quente. O backup FULL, ou completo, contempla a parte fisica do banco contendo datafiles, arquivo de controle e os ultimos arquivos de redo log arquivados (archives). Já o backup incompleto, é a cópia de parte do banco, por exemplo, de um ou alguns datafiles.Já o backup incremental é aquele que contempla somente as diferenças que foram geradas desde o último backup. Para isso, se deve marcar um backup como nível zero, para que sejam gerados backups diferenciais.O banco de dados deve ficar em modo de arquivamento dos arquivos de redo log.
Assim, podemos garantir que todas as sentenças sejam armazenadas e podemos reconstruir o banco.Os arquivos de redo, geralmente ficam multiplexados em grupos. A ORACLE recomenda que você tenha sempre mais de um arquivo de redo log por grupo. O padrão é se ter três grupos, cada um contendo um arquivo de redo.O ideal é se ter no mínimo dosi e em discos separados para melhorar performance.
A ORACLE recomenda que todo o backup seja feito via o Recovery Manager.O RMAN, aplicativo presente no binário do ORACLE, pode ter executado se conectando a um banco que vai ser seu repositorio e no banco alvo será o banco que será feita as ações: backup, restore, etc.A principal configuração é o modo de arquivamento. Para se verificar se o seu banco esta está nesse modo devemos exeuctar os comandos abaixo no SQL*Plus: archive log list; select log_mode from v$database; Se o seu banco não estiver em modo de arquivamento devemos então configurar alguns outros parâmetros. A localização padrão de arquivamento e do backup é configurado através do parâmetro db_recovery_file_dest e o tamanho em bytes determinado para a área de backup incluindo archives é o parâmetro db_recovery_file_dest_size.
Então vamos ao SQL*PLUS e verificar a configuração atual destes parâmetros: show parameters db_recover; Este comando mostra os parâmetros e seus valores. Poderíamos também fazer:
SELECT * FROM v$parameter;

Para confiogurá-los, vamos ao SQL*Plus e executar os seguintes comandos:
ALTER SYSTEM SET db_recovery_dest=’/oracle’ SCOPE=spfile;
ALTER SYSTEM SET db_recovery_file_dest_size=6G SCOPE=spfile;

Agora, finalmente, devemos colocar o banco em modo de arquivamento. É necessário parar o banco, depois montá-lo. Efetuar a configuração para o modo de arquivamento, abrir o banco e novamente confirmar se o banco está em arquivamento. Para tal, consulte a v$datafile (log_mode) e o comando ‘archive log list;’. Para colocar em modo de arquivamento, no SQL*Plus:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

IMPORTANTE: O nosso banco foi criado SEM o arquivo SPFILE. antes de iniciar os exercícios, devemos criá-lo. NO SQL*Plus com o banco de dados aberto, digite:
CREATE SPFILE FROM PFILE;
SHUTDOWN IMMEDIATE;
STARTUP; ======================================================================= -====================- Exercícios de Fixação -====================- =======================================================================[1] O que é BACKUP FULL?
[2] Qual a diferença entre backup quente e frio?
[3] Qual a quantidade de grupos e arquivos de redo log existentes no seu banco? Dica: Use V$LOG e V$LOGFILE.
[4] O que é um arquive?
[5] O que é um backup incremental?
[6] Qual o tamanho atual da sua flas recovery area?
[7] Como colocar o banco em modo de arquivamento?
[8] Qual o aplicativo de backup recomendado pela ORACLE?
[9] O que é um catá-log de recuperação?
[10] O que ocorre se o adm de sistemas remover os backups sem usar o RMAN?
[11] Como se aumenta a área atual de backup?
[12] Por que devemos parar o banco para colocá-lo em modo de arquivamento?