Para efetuar backups online (hot backup), isto é, fazer backup do banco de dados com ele UP, não havendo necessidade de parar o banco para fazer (cold backup). Você precisa ativar o modo archivelog, desta maneira, os redo logs online são arquivados, criando arquivos de log de todas as transações do banco de dados.
O Oracle grava nos arquivos de redo log online de maneira cíclica: após preencher o primeiro arquivo de log, ele começa a gravar no segundo, até que ele esteja cheio, e em seguida, começa a gravar no terceiro. uma vez que o último arquivo de redo log online esteja cheio, o processo em segundo plano LGWR (log write) começa a sobrescrever o conteúdo do primeiro arquivo.
Por default o modo NOARCHIVELOG vem como padrão, ele protege a integridade do banco de dados no caso de falha de uma instância ou uma queda de sistema, porque todas as transações encerradas com commit, mas que ainda não foram gravadas nos arquivos de dados estarão disponíveis nos arquivos de redo log online.
Quando o Oracle está executando no modo ARCHIVELOG, o processo em background ARCn (archiver process) faz uma cópia de cada arquivo de redo log antes de sobrescrevê-lo. Exemplo: se o disco que esta os data files der algum problema, com os archives logs podemos reconstruir o banco de dados até o momento anterior ao problema, devido a um backup recente dos data files e aos arquivos de redo log que foram gerados desde que ele ocorreu. Abaixo, uma imagem para ilustrar o processo ARC, copiando os arquivos do redo log e passando para a localização do archive log.
SQL> select log_mode from v$database;LOG_MODE
————
NOARCHIVELOG
Com esta seleção, percebemos que a resposta é que não esta com o archive log mode ativado, outra forma de verificar se esta em archive log mode é:
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 61
Current log sequence 63
Caso queira mudar a localidade dos archives logs, você pode mudar com o seguinte comando:
alter system set LOG_ARCHIVE_DEST_1=’LOCATION=/u01/app/oracle/flash_recovery_area/ mandatory’ scope=both;
Ok, vimos que o modo archivelog esta desabilitado, para habilitar precisamos parar o banco:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
Subindo a base no estado mount:
SQL> startup mount;
ORACLE instance started.Total System Global Area 535662592 bytes
Fixed Size 1337720 bytes
Variable Size 327157384 bytes
Database Buffers 201326592 bytes
Redo Buffers 5840896 bytes
Database mounted.
SQL>
Alterado o banco para o modo archivelog:
SQL> alter database archivelog;
Database altered.
Abrindo o banco:
SQL> alter database open;
Database altered.
Verificando o estado do archive log:
SQL> archive log file;
SP2-0718: illegal ARCHIVE LOG option
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 78
Next log sequence to archive 80
Current log sequence 80
Forçando a troca do archive log, com isso, podemos ver se já foi gerado o arquivo de archive log:
SQL> alter system switch logfile;
System altered.
Descobrindo a onde estão sendo salvos os archives logs:
SQL> show parameter DB_RECOVERY_FILE_DESTNAME TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest string $ORACLE_BASE/flash_recovery_area
db_recovery_file_dest_size big integer 2G
Agora podemos verificar se foi gerado o archivelog, com o comando pwd mostro o diretório corrente e com o ls eu listo os arquivos da pasta:
[oracle@oracle11g 2011_07_13]$ pwd
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_07_13[oracle@oracle11g 2011_07_13]$ ls -lah
total 22M
drwxr-x— 2 oracle oinstall 4.0K Jul 13 10:08 .
drwxr-x— 3 oracle oinstall 4.0K Jul 13 09:59 ..
-rw-r—– 1 oracle oinstall 21M Jul 13 09:59 o1_mf_1_80_71v96hr3_.arc
-rw-r—– 1 oracle oinstall 978K Jul 13 10:08 o1_mf_1_81_71v9pr0h_.arc
Algumas views importantes para informações do archive log:
Views | Descrição |
---|---|
V$DATABASE | Mostra se a base de dados esta em ARCHIVELOG ou NOARCHIVELOG |
V$ARCHIVED_LOG | Exibe historico dos ARCHIVELOGS do CONTROL FILES. Se você usar um catálogo de recuperação, a view RC_ARCHIVED_LOG contém informações semelhantes. |
V$ARCHIVE_DEST | Descreve o estado atual da instância, todos os destinos dos archives e o tamanho atual. |
V$ARCHIVE_PROCESSES | Exibe informações sobre o estado dos processos de arquivo diferentes para uma instância. |
V$BACKUP_REDOLOG | Contém informações sobre todos os backups dos archived logs. Se você usa o recovery catalog, o RC_BACKUP_REDOLOG contém informações similares. |
V$LOG | Exibe todos os grupos de redo log para o banco de dados e indica que precisam ser arquivados. |
V$LOG_HISTORY | Contém informações de logs registros, que marca os archives com o range de SCN, para cada archive log. |
Nenhum comentário:
Postar um comentário