Pedro F. Carvalho Analista de Sistemas [email protected] RMAN: Backup em NOARCHIVELOG Quando um banco de dados Oracle está no modo NOARCHIVELOG, resumidamente, não há geração de archives, e conseqüentemente todas as alterações realizadas pelas transações não são armazenadas de forma sequênciais em arquivos (archives), ocorrendo uma reutilização dos grupos de redo logs, deste modo, o banco de dados no modo noarchivelog sofre as seguintes restrições: • • • • O banco de dados não pode realizar backups incrementais. Operações de restauração em Point-in-Time não serão permitidas, ou seja, se desejar recuperar o banco de dados até um determinado período de tempo, não irá conseguir. Não pode trabalhar com o recurso de Flashback. Sempre deverá restaurar o banco de dados a partir do último backup completo, em outras palavras, do seu último backup cold. Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas: Abra o SQL*PLUS e conecte com o usuário sys, com a role sysdba. Exemplo: C:\>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Qui Mai 29 13:28:45 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn sys as sysdbaInforme a senha:Conectado. Execute o comando para listar a seqüência de archives, veja: SQL> archive log list; Modo log de banco de dados Arquivamento automático Destino de arquivamento A sequência de log on-line mais antiga Sequência de log atual 5 Modo Sem Arquivamento Desativado USE_DB_RECOVERY_FILE_DEST 4 Veja que o resultado mostrou que o serviço de arquivamento e o modo do banco de dados estão em NOARCHIVELOG. Outro modo seria pelo SELECT abaixo: SQL> select name, log_mode from v$database;NAME --------- ------------XE NOARCHIVELOG LOG_MODE Agora, que sabemos que o banco de dados está no modo NOARCHIVELOG, vamos iniciar os procedimentos de backup da base, para isso, devemos realizar o chamado BACKUP COLD (cópia fria), simplificando, uma cópia do banco de dados "offline". Com a utilização do RMAN, o backup cold é realizado com o banco de dados no estado MOUNT, onde conseguimos realizar a conexão com o catálogo e efetuar a cópia do spfile, control files e datafiles. O backup cold sempre deverá ser consistente, nunca Pedro F. Carvalho Analista de Sistemas [email protected] deverá ser feito após um SHUTDOWN ABORT ou qualquer queda abrupta da base ou servidor, pois caso seja necessário sua restauração, não será possível confiar 100% na sua consistência, pois o Oracle Server irá pedir uma recuperção de Media Recovery. Backup cold e RMAN Após entendermos como funciona um backup cold e os principais arquivos que devem ser armazenados, vamos realizar um backup utilizando a ferramenta. O banco de dados XE não está registrado no catálogo de recuperação, então, devemos registrar e conectar ao catálogo de recuperação veja os passos: C:\>rman Gerenciador de Recuperação: Release 10.2.0.1.0 - Production on Qui Mai 29 14:25:26 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. RMAN> connect catalog rman/########@rman; conectado ao banco de dados do catálogo de recuperação RMAN> connect target sys; RMAN-00571: ===================================================== ====== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ===================================================== ====== RMAN-06004: erro ORACLE no banco de dados do catálogo de recuperação: RMAN20001: target database not found in recovery catalog Ao acessar a ferramenta RMAN, o primeiro comando foi para conectar-se ao catálogo de recuperação, que foi executado com sucesso. No segundo comando, tentamos conectar-se ao catálogo de recuperação, o RMAN nos retornou um erro, dizendo que não existia o banco de dados cadastrado, absolutamente normal, quando é a primeira vez que o banco de dados irá utilizar um catálogo de recuperação. Assim que receber o erro, devemos então registrar o banco de dados no catálogo usando o comando REGISTER DATABASE pelo prompt do RMAN, desta forma: RMAN> register database;banco de dados registrado no catálogo de recuperação iniciar ressinc. completa do catálogo de recuperaçãoressinc. inteira completa A partir desse momento, o banco de dados se encontra catalogado, podendo utilizar todos os recursos do rman, para iniciar a atividade de backup, iremos utilizar o script abaixo: RMAN> run {2> shutdown immediate;3> startup force mount; 4> ´allocate channel t1 type disk format "E:\backup\XE\rman\BKP_COLD_%d_%t_%s.rman"´; Pedro F. Carvalho Analista de Sistemas [email protected] 5> ´backup database include current controlfile tag "BKP_COLD"´; 6> backup spfile;7> alter database open;8> } Vamos realizar uma analise rápida sobre os comandos acima. Linha 1 - RUN { ... } Utilizado para agrupar um conjuntos de comandos do RMAN e executados de forma seqüencial. Linha 2 - Shutdown immediate Esse comando é responsável por baixar o serviço de banco de dados, realizando rollback das transações ativas, não permitindo novas conexões e o banco de dados irá desconectar todas as sessões de usuários. Permitindo assim, uma garantia na consistência dos dados. Linha 3 - Startup force mount Inicia a instância oracle no modo MOUNT (montado), onde não está disponível aos usuários e é permitida a leitura dos control files para controle do catálogo. A opção FORCE é utilizada em algumas ocasiões quando a instância sofre alguma pane no shutdown. Linha 4 - ´allocate channel t1 type disk format "E:\backup\XE\rman\BKP_COLD_%d_%t_%s.rman;"´ Esse é o modo de alocação de canais de backup do RMAN de forma manual, definindo o caminho que será despejado o arquivo (E:\backup\XE\rman) e com as variáveis internas do RMAN, como %d, %t e %s, onde: %d - Nome do banco de dados %t - Especifica o time stamp do backup %s - Seqüência do backupset gerado pelo RMAN. O RMAN possui ainda mais uma variedade de opções de parâmetros e formas de utilização dos canais, que veremos em outras colunas. Linha 5 - ´backup database include current controlfile tag "BKP_COLD;"´ Essa é a principal parte, onde é efetuado o backup do banco de dados por completo com a opção de incluir o atual arquivo de controle (control file). Por padrão, o backup do banco de dados é FULL (ou incremental level 0), ou seja, todos os blocos de dados. Lembrando sempre de realizar o backup do control file, pode isso, utilizamos a opção INCLUDE CURRENT CONTROLFILE, pois ele é responsável em dizer qual SCN está para Pedro F. Carvalho Analista de Sistemas [email protected] cada datafile, localização, seqüência do log e etc, sendo de extrema importância no momento da recuperação da instância. A opção TAG ao final do comando é apenas para nomear o backup que está sendo realizado, podendo no momento do recover, realizar uma recuperação se baseando apenas no nome do backup que deseja restaurar. Linha 6 - Backup spfile Realiza o backup do Server parameter File, arquivo responsável pela inicialização da instância, onde se encontra os principais parâmetros do banco de dados. Caso o banco de dados não esteja trabalhando com SPFILE, terá erros, e em versões 8i também. Linha 7 - Alter database open Após a realização do backup por completo do banco de dados, essa opção permite abrir o banco de dados permitindo o acesso dos usuários. Ao encerrar o backup, podemos já verificar os principais registros que foi gravado no catálogo de recuperação e analisar como anda as operações de backup e recover do banco de dados, abaixo, segue alguns comandos úteis que podemos utilizar dentro do catálogo. RMAN> list backup; Lista todos os backups do banco de dados. RMAN> list backup summary; Fornece as informações de backup sumarizado, para rápidas consultas, para identificar se está disponível, em disco ou fita, datas, tipos de backup e etc. RMAN> report schema; Relatório do "esqueleto" schema do banco de dados, como a localização, tamanho e tablespaces de cada datafile, tanto os permanentes e temporários. RMAN> crosscheck backup of database; Verifica qual backup está disponível para utilização, ele analisa todos os backups feitos no catalogo e checa se seus backupsets estão nos discos acessíveis para uma possível recuperação. Ele irá dependente das configurações do catálogo como RETENTION POLICY, RECOVERY WINDOW e do tempo que seu backup ficará em disco ou fita. Para verificar os valores padrões, execute o comando: RMAN> show all; Pedro F. Carvalho Analista de Sistemas [email protected] O comando SHOW ALL irá mostrar outros diversos parâmetros padrões do banco de dados no catálogo de recuperação, onde cada um exerce uma função diferente e importante no assunto de backup e recover, que iremos ver nas futuras colunas