Escolar Documentos
Profissional Documentos
Cultura Documentos
Inicialmente, a flash recovery area (FRA) armazena os Online Redo Logs. Mas
ela também é destinada ao armazenamento dos backups e dos Archived Redo
Logs, na medida em que você faz os backups e ativa o modo de Archive Log.
1 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
O ARCHIVELOG mode
O Oracle Database XE pode ser configurado de modo que um processo de
arquivamento em background faça cópias dos redo log files inativos para a FRA,
antes deles poderem ser reutilizados. Este processo de copiar os Redo log files é
chamado de archived redo log files. Desta forma, praticamente não há limite para
o arquivamento das operações realizadas sobre o banco de dados.
2 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Na figura acima, podemos ver que o modo de arquivamento não está ativo (Log
Archiving: Off).
SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
Agora digite:
STARTUP MOUNT
Database altered.
3 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Database altered.
Movendo a FRA
A FRA, como sabemos, fica dentro da pasta de instalação do XE. Isto não é um
inconveniente tão grande assim. Mas se você for uma pessoa que leva segurança
ao extremo, pode querer transferí-la para outro lugar, por uma simples razão: ela
é usada pelo XE para garantir a segurança e a integridade dos dados, em caso de
“crash”. Além disso, todos os backups e archive logs são guardados dentro dela.
Aí é que “mora o perigo”, pois se ocorrer uma pane catastrófica no HD, tudo,
inclusive os backups e archive logs, será perdido para sempre!
Mover a FRA para outro lugar (outro HD, de preferência), além de dar maior
segurança, termina por liberar 15GB de espaço na partição do sistema.
Para mover a FRA para outro lugar, um detalhe precisa ser lembrado,
principalmente no linux: o usuário oracle precisa ter direito de leitura e escrita
no local de destino. Assim, é preciso certificar-se de que dar as permissões
adequadas ao usuário oracle e ao grupo dba (ORA_DBA, no windows) sobre a
pasta.
4 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
A título de exemplo, digamos que eu, no linux, transferi a FRA para o seguinte
caminho:
/bigfoot/BACKUP_XE/flash_recovery_area
/bigfoot é uma partição montada em outro HD. Nesta partição, criei uma pasta
chamada BACKUP_XE e dentro dela a pasta flash_recovery_area, para onde irei
transferir a FRA.
desta forma, BACKUP_XE e tudo dentro dela passa a pertencer ao usuário oracle,
sob o grupo dba. Mas há um pequeno detalhe: o usuário oracle não faz parte do
grupo users (o grupo secundário default para todo usuário linux) e isto o
impedirá de ter acesso à partição /bigfoot!
Para corrigir isto, basta incluir o usuário oracle também no grupo users.
Para ter certeza de que as coisas correram bem, verifique as configurações atuais
de FRA, usando o comando SQL abaixo. Conecte-se com SYSDBA e rode a
seguinte SELECT:
SELECT
NAME,
TO_CHAR(SPACE_LIMIT, '999,999,999,999') AS SPACE_LIMIT,
TO_CHAR(SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE,
'999,999,999,999')
AS SPACE_AVAILABLE,
ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1)
AS PERCENT_FULL
FROM V$RECOVERY_FILE_DEST;
5 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Para alterar o local da FRA, use o comando abaixo, conectado como SYSDBA:
new_path deve ser o caminho completo para a nova localização da FRA. Neste
exemplo, o comando foi
@?/sqlplus/admin/movelogs
Uma forma de torná-los logo obsoletos é fazer dois backups seguidos do XE (três,
se você não tiver feito nenhum, ainda). Somente depois de certificar-se de que o
XE não precisará mais da FRA antiga é que você poderá apagar algum arquivo
remanescente.
Verificando o resultado
6 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Verificando o resultado
Para verificar se as coisas deram certo, rode mais uma vez a SELECT que acessa
V$RECOVERY_FILE_DEST e veja a nova localização da FRA.
Além disto, abra a interface HTML do XE, conectado como SYSTEM, e verifique a
localização dos redo log files. Para isto, você deve clicar no link Log Archiving:
On, que fica na parte inferior do painel Usage Monitor.
Note na figura acima que os dois grupos de redo logs já apontam para a nova
FRA.
Quando a gente escreve um tutorial, muitas vezes passa a impressão de que tudo
dá sempre certo. Mas isto não é bem verdade! Comigo as coisas não deram tão
certo assim :-(!
Lembram do erro que falei que pode ocorrer quando rodar o script movelogs.sql?
Certamente ele vai acontecer. E pior ainda: você continuará com um grupo de
redo log na velha FRA!
Caso isto realmente aconteça com você, vou dizer o que fiz para “corrigir” este
pequeno inconveniente.
Rodei o script movelogs.sql mais duas vezes! Ao fazer isto, terminei com cinco
grupos de on-line redo logs.
7 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Ainda assim, um dos (agora cinco) grupos de Online redo log ficava sempre na
velha FRA. Dam!
Foi quando percebi que tinha que remover o danado “na unha”!
Para saber o estado de grupos de redo log, você pode fazer uma consulta via
interface HTML do XE, como mostrado na figura anterior ou consultar a view
V$LOG, com o seguinte comando:
SQL>
Você vai precisar usar a interface HTML, pois além destas informações, ela
mostra o arquivo associado ao grupo. Só assim você saberá se ele se encontra
na antiga ou na nova FRA.
Caso o grupo que você deseja apagar esteja ativo, você pode forçar uma
comutação (switch) com o seguinte comando:
8 de 9 28/05/2010 13:24
Oracle 10g XE: Troubleshooting XE – Parte IV – ARCHIVELOG mode http://oracle10gxe.blogspot.com/2009/06/troubleshooting-xe-parte-iv-arc...
Com estas informações, agora dá para você se livrar do grupo de redo log
indesejável. Tudo o que você precisa fazer é se certificar que ele está arquivado
(ARCHIVED) e inativo (INACTIVE). A boa notícia é que ao fazer os dois backups
subseqüentes, todos os redo log passaram a assumir este estado, exceto o que
está ativo (CURRENT).
Onde N é o número do redo log que você quer apagar. Identifique qual o grupo
que deseja apagar, usando os métodos já descritos e execute o comando;
-X-
9 de 9 28/05/2010 13:24