Backups no Oracle. Comparação de três módulos para backup online de bancos de dados Oracle. Máquina de clonar - PDF
Download "Backups no Oracle. Comparação de três módulos para backup online de bancos de dados Oracle. Máquina de clonar"
Antônia Clementino Filipe
1 Comparação de três módulos para backup online de bancos de dados Oracle Máquina de clonar Soluções centralizadas para cópias de segurança poupam tempo, dinheiro e espaço. Bancos de dados também podem ser protegidos dessa maneira, mas necessitam do apoio de um software especial. Vamos fazer uma breve comparação, usando o Oracle como exemplo. credits of the images Por Jens-Christoph Brendel Nem é preciso ver as estatísticas terríveis nas páginas da web, geralmente publicadas pelos produtores de software para backup ou restauração de dados (por exemplo, [1]). Há muito tempo os números dos prejuízos deixaram óbvio um fato contundente: quem não proteger seus dados, mais cedo ou mais tarde acabará por perdê-los e isso pode ser a verdadeira ruína para muitas pessoas. A imprescindível cópia de segurança deve ser, ao mesmo tempo, financeiramente acessível, segura e, quando necessário, facilmente reconstruída. Deve também estar incluída no processo de produção e ser de fácil administração. Isso tudo só pode ser realizado com uma estratégia criada sob medida. Em meio a todo esse processo, os bancos de dados representam um grande problema. Seus arquivos, que estão sempre abertos para serem processados, não podem ser salvos como arquivos comuns com o sistema em operação. Além disso, são geralmente muito grandes e a cópia de segurança exige várias mídias e muito tempo. Os aplicativos que usam esses dados muitas vezes não podem ter a operação interrompida. A indústria de software reagiu a esse dilema e desenvolveu soluções para a proteção online de bancos de dados grandes em bibliotecas centrais de fitas. A Linux Magazine Brasil verificou três delas: os módulos para a cópia de segurança online de um banco de dados Oracle com as versões para Linux do Arkeia Network Backup, do Legato Networker e do Veritas Netbackup. O Oracle [2] oferece, mesmo sem um software adicional, uma série de medidas de segurança. A primeira delas possibilita realizar uma cópia lógica do banco de dados, em que o conteúdo das tabelas é exportado. Porém, esse método é relativamente lento, ocupa muito espaço em disco e não pode ser utilizado em todos os objetos dos bancos de dados. A restauração de um banco de dados completamente perdido (Recovery) não pode ser feita desta maneira; apenas alguns conteúdos podem ser recuperados (Restore). A exportação e a importação de tabelas servem como complemento para uma cópia de segurança física ou para a migração de dados entre diferentes plataformas ou produtos. A segunda medida é a cópia de segurança física de todos os arquivos, que deve ser feita sempre que o banco de dados estiver fora de operação (Backup offline ou a frio ); dessa forma ela pode ser executada mais facilmente. O problema é que geralmente falta tempo para essa pausa obrigatória. Mesmo que não seja necessário operar 24 horas, a cópia de grandes quantidades de dados demora um tempo que facilmente ultrapassa a pausa da noite. E a restauração dos dados também necessitaria de uma longa pausa, que muitas vezes não pode ser tolerada. Todavia, a única opção para bancos de dados Oracle que são operados nos chamados modo Noarchivelog e, portanto, não protegem seus Redo-Logs antes de serem sobrescritos, é a proteção offline. agosto 2005 edição 11 35
2 Backups no Oracle Se o Oracle estiver funcionando no modo Archivelog, sempre será possível fazer uma proteção online manual ou controlada pelo script como terceira medida de segurança. Nesse tipo de proteção, os Tablespaces são transferidos para um modo especial de cópia de segurança. Em seguida os arquivos correspondentes podem ser copiados usando as ferramentas padrão do sistema operacional. Listagem 1: Protocolo de uma sessão do Networker 01 $ORACLE_HOME/bin/rman target sys/u cmdfile \'./full_backup.txt\' Recovery Manager: Release Production Copyright (c) 1995, 2004, Oracle. All rights reserved connected to target database: TESTDB (DBID= ) RMAN> run { 10 2> allocate channel t1 type 'SBT_TAPE'; 11 3> allocate channel t2 type 'SBT_TAPE'; 12 4> 13 5> send 'NSR_ENV=(NSR_SERVER=toshi.linuxnewmedia.de, 14 6> NSR_DATA_VOLUME_POOL=Default)'; 15 7> 16 8> backup full filesperset > format '/FULL_%d_%u/' 18 10> (database); 19 11> 20 12> release channel t1; 21 13> release channel t2; 22 14> } 23 15> 24 using target database controlfile instead of recovery catalog 25 allocated channel: t1 26 channel t1: sid=139 devtype=sbt_tape 27 channel t1: NMO v allocated channel: t2 30 channel t2: sid=124 devtype=sbt_tape 31 channel t2: NMO v sent command to channel: t1 34 sent command to channel: t Starting backup at 13-JAN channel t1: starting full datafile backupset 38 channel t1: specifying datafile(s) in backupset alter tablespace Tablespacename begin backup; # Copiando os arquivos de dados # usando o sistema operacional, exemplo: # cp /oracle/data/datafile_xy /backup/datafile_xy.bck alter tablespace Tablespacename end backup; archive log current; 39 input datafile fno=00001 name=/data1/oradata/testdb/system01.dbf 40 input datafile fno=00002 name=/data1/oradata/testdb/undotbs01.dbf 41 input datafile fno=00006 name=/data1/oradata/testdb/convert_tbs.dbf 42 channel t1: starting piece 1 at 13-JAN channel t2: starting full datafile backupset 44 channel t2: specifying datafile(s) in backupset 45 input datafile fno=00003 name=/data1/oradata/testdb/sysaux01.dbf 46 input datafile fno=00005 name=/data1/oradata/testdb/example01.dbf 47 input datafile fno=00004 name=/data1/oradata/testdb/users01.dbf 48 channel t2: starting piece 1 at 13-JAN channel t2: finished piece 1 at 13-JAN piece handle=/full_testdb_0hga3mse/ comment=api Version U 51 channel t2: backup set complete, elapsed time: 00:02:15 52 channel t2: starting full datafile backupset 53 channel t2: specifying datafile(s) in backupset 54 including current controlfile in backupset 55 channel t2: starting piece 1 at 13-JAN channel t2: finished piece 1 at 13-JAN piece handle=/full_testdb_0iga3n0l/ comment=api Version U 58 channel t2: backup set complete, elapsed time: 00:00:07 59 channel t2: starting full datafile backupset 60 channel t2: specifying datafile(s) in backupset 61 including current SPFILE in backupset 62 channel t2: starting piece 1 at 13-JAN channel t2: finished piece 1 at 13-JAN piece handle=/full_testdb_0jga3n0t/ comment=api Version U 65 channel t2: backup set complete, elapsed time: 00:00:07 66 channel t1: finished piece 1 at 13-JAN piece handle=/full_testdb_0gga3msd/ comment=api Version U 68 channel t1: backup set complete, elapsed time: 00:02:56 69 Finished backup at 13-JAN released channel: t1 72 released channel: t Recovery Manager complete. 36 agosto 2005 edição 11
3 Com a ajuda dos arquivos salvos e dos Redo-Logs arquivados, o banco de dados pode ser recuperado. Os arquivos de parâmetros (init.ora, SPFILE), um arquivo de controle e os logs arquivados devem ser salvos numa mídia segura. Como quarta opção o Oracle oferece ao administrador uma ferramenta poderosa que vem sendo aperfeiçoada desde a versão 8, o Backup and Recovery Manager, abreviado como RMAN (administrador de cópias de segurança e de restauração). Ele pode ser operado interativamente por meio de arquivos de comando ou através do Oracle Enterprise Manager (OEM) e oferece muitas técnicas avançadas para criar cópias de segurança. O programa inclui, na cópia de segurança, apenas os blocos que realmente foram usados; assim, é possível comprimir os dados e salvá-los como um backup incremental, poupando tempo e espaço em fita. O RMAN salva automaticamente todos os arquivos necessários para a restauração e, a partir da versão 10, os armazena num diretório especial (Flashback Recovery Area). Quando possível, ele detecta e repara blocos com defeito; tem também a capacidade de multiplexação de diferentes fluxos de dados para um dispositivo. Além disso, o RMAN administra um histórico e importantes metadados de todas as cópias de segurança; se for o caso, também salva todos os scripts necessários em um catálogo de restauração. Em caso de centralização de cópias de segurança, quando uma biblioteca de fitas administra os meios de armazenamento, ele precisará de auxílio. Aqui entram, como quinta opção, os já mencionados módulos de software Enterprise de cópias de segurança. Eles implementam uma biblioteca especial (MML, Media Management Library) que o RMAN usa como interface. Em todos os casos o resultado é o procedimento que detalhamos a seguir (Figura 1): P O software de cópias de segurança, um cronjob ou o administrador iniciam o RMAN com um arquivo de comando adequado. P O RMAN faz a cópia de segurança online do banco de dados, mas não escreve os dados em um meio de armazenamento, em vez disso os transfere para o módulo MML do software responsável pelas cópias de segurança. Catálogo de recuperação Banco de dados de mídia RMAN Módulo MML Software de backup Banco de dados alvo Índice dos arquivos Figura 1: O início do processo de criar uma cópia de segurança online no Oracle em conjunto com os programas de cópia de segurança testados. O RMAN faz a cópia de segurança e a restauração dos dados e seu parceiro faz a administração dos meios de armazenamento. P O software de cópias de segurança certifica-se de que as mídias de armazenamento adequadas estejam disponíveis nos dispositivos corretos das bibliotecas de fitas e salva nelas os dados recebidos. Ele cuida, ainda, para que as fitas Listagem 2: Cópias de segurança e fitas 01 toshi:/home/oracle # nsrinfo -n oracle toshi 02 scanning client `toshi' for all savetimes from the oracle namespace 03 /FULL_TESTDB_0jga3n0t/, date= Thu Jan 13 13:22: /FULL_TESTDB_0iga3n0l/, date= Thu Jan 13 13:22: /FULL_TESTDB_0hga3mse/, date= Thu Jan 13 13:20: /FULL_TESTDB_0gga3msd/, date= Thu Jan 13 13:20: objects found toshi:/home/oracle # mminfo -v -c toshi 10 volume client date time size ssid fl lvl name 11 VOLUME01 toshi.linuxnewmedia.de :20: MB cb full /FULL_TESTDB_0gga3msd/ 12 VOLUME01 toshi.linuxnewmedia.de :20: MB cb full /FULL_TESTDB_0hga3mse/ 13 VOLUME01 toshi.linuxnewmedia.de :22: KB cb full /FULL_TESTDB_0iga3n0l/ 14 VOLUME01 toshi.linuxnewmedia.de :22: KB cb full /FULL_TESTDB_0jga3n0t/ agosto 2005 edição 11 37
4 Backups no Oracle Figura 2: Uma sessão de cópia de segurança do agente Oracle para o Legato Networker em andamento pode ser acompanhada na interface gráfica. sejam reutilizadas ciclicamente depois de um determinado prazo de validade (Retention Policy), trocando e etiquetando as mídias automaticamente, coordena cópias paralelas de segurança, faz a supervisão do procedimento e ainda por cima oferece uma interface gráfica ao administrador. Além disso, ele administra um índice próprio de todos os arquivos salvos e de todas as fitas usadas, o que garante um acesso mais rápido aos dados caso seja necessária uma restauração. Legato Networker O produto da Legato [3], uma empresa que há muito tempo faz parte do império da EMC, pode ser instalado rápida e facilmente a partir de alguns pacotes RPM. O próximo passo é a conexão para a biblioteca MML, como interface para o RMAN, específica do programa libobk no diretório de bibliotecas do Oracle. Em seguida, o hardware usado deve ser ajustado. Além disso, o programa de cópias de segurança tem que saber o quê salvar, quando e onde isso deve ser feito, quais as mídias e dispositivos que devem ser usados e por quanto tempo os metadados da cópia de segurança devem ser mantidos. Para realizar todas essas tarefas o administrador conta com uma interface gráfica, que é de fácil operação. Porém, ele terá que sair dela quando trabalhar com arquivos de comando do RMAN. A Legato fornece alguns scripts de exemplo junto com o manual do programa, mas o usuário deverá criar arquivos de comando próprios para as ferramentas de backup do Oracle. Listagem 3: Script de recuperação do RMAN para o Legato Networker 01 Script 02 run { allocate channel t1 type 'SBT_TAPE'; 05 allocate channel t2 type 'SBT_TAPE'; send 'NSR_ENV=(NSR_SERVER=toshi.linuxnewmedia.de, 08 NSR_DATA_VOLUME_POOL=Default)'; sql 'alter tablespace users offline immediate'; restore (tablespace users); sql 'alter tablespace users online'; release channel t1; 17 release channel t2; 18 } A criação das cópias de segurança dos bancos de dados pode ser iniciada manual ou automaticamente. No caso do automático, o servidor Networker inicia o RMAN através de uma cadeia de daemons e scripts no cliente. A listagem 1 mostra um script simples de cópia de segurança e o procedimento de uma sessão de salvamento. No final do salvamento o Networker complementa os metadados no índice de arquivos e no banco de dados das mídias de armazenamento. Os registros correspondentes também podem ser consultados através do campo de comando (veja a listagem 2): A restauração é feita de forma similar. A listagem 2 mostra um exemplo de um script RMAN que faz a reconstrução de um Tablespace. A seqüência de execução de uma sessão do agente Oracle do Legato Networker pode ser acompanhada, assim como qualquer outro salvamento, a partir da janela principal do programa (veja a figura 2). Arkeia Network Backup A Arkeia [4] também disponibiliza a versão Linux de seu software (figura 3)na forma de pacotes binários RPM. A instalação é semelhante ao procedimento descrito anteriormente; a configuração é fácil e está bem documentada. Paralelamente é preciso adaptar um arquivo de configuração que contenha alguns parâmetros para o software de cópia de segurança e para o RMAN. Esse servicinho extra é compensado com comandos ainda mais simples no Recovery Manager. Por exemplo, para fazer uma cópia de segurança completa de seu banco de dados, basta apenas digitar: run { allocate channel t1 type 'sbt_tape'; backup database; release channel t1; } 38 agosto 2005 edição 11
5 No Arkeia Network Backup os procedimentos de salvamento são sempre iniciados manualmente ou por meio de scripts. Para salvamentos periódicos pode ser usado o agendador de tarefas padrão do Unix, o cron. O agendador interno do Arkeia, que gera cópias de segurança comuns de sistemas de arquivos a qualquer hora, não consegue se comunicar com o RMAN. Veritas Netbackup Dentre os programas que participaram de nossa comparação, a melhor integração do agente Oracle e o manuseio mais simples foram oferecidos pelo Veritas Netbackup. Isto já se nota desde a instalação baseada em scripts, o que torna o trabalho manual desnecessário. O próprio instalador busca a versão do Oracle presente no sistema e baixa automaticamente a biblioteca MML adequada. Não é ótimo? Havia uma pedra no caminho da primeira cópia de segurança, mas ela pôde ser removida. Durante a instalação do software o instalador também adiciona registros no arquivo de configuração do daemon de serviços de internet xinetd. Esse serviço, porém, estava desativado por padrão no servidor SUSE Enterprise Figura 3: O Arkeia Network Backup salva um banco de dados de teste. Um tacômetro informa a taxa atual da transmissão. (SLES 9) utilizado. Entre outros problemas, um serviço necessário para a autenticação do usuário simplesmente não iniciava, o que levava a uma interrupção da instalação e produzia uma mensagem de erro a respeito de permissões insuficientes mas nada sobre a origem do problema. Depois de resolvida essa questão, os assistentes do programa ajudaram na configuração de todos os parâmetros necessários até a primeira cópia de segurança. Graças a isso, essa etapa pode ser enfrentada até por administradores menos experientes sem que seja necessário um estudo detalhado do manual. Em seguida o Netbackup apresenta todos os objetos de bancos de dados na janela principal da sua ferramenta gráfica de administração, numa forma semelhante à dos arquivos exibidos por um gerenciador de arquivos (figura 4). A partir daí é possível selecionar as tabelas, esquemas e grupos de objetos de banco de dados (tablespaces) que se deseja copiar ou restaurar basta navegar pela árvore. Logo em seguida o software cria automaticamente um script RMAN, que pode ser utilizado apenas uma vez ou gravado como gabarito para atividades semelhantes. Um administrador experiente pode incluir manualmente mais detalhes nos comandos; porém, os scripts criados automaticamente são suficientes para a maioria dos casos e são mais simples e seguros de manusear. Sempre é possível editá-los manualmente mais tarde. Conclusão Cópias de segurança centralizadas de um banco de dados do Oracle funcionam sem maiores problemas no Linux. A distribuição de tarefas entre o banco de dados e o software de cópias de segurança é sempre a mesma, como também o princípio do processo. Porém, encontramos grandes diferenças entre os produtos comparados. A melhor integração entre os componentes do Oracle, a configuração inicial mais simples e o manuseio mais fácil do Oracle Recovery Manager foram oferecidos pelo Veritas Netbackup. Informações [1] Tragédias ocasionadas pela perda de dados: [2] Site oficial da Oracle: [3] Legato: Figura 4: O Netbackup apresenta arquivos e objetos de bancos de dados com uma visualização bastante organizada, o que facilita o manuseio. [4] Arkeia: [5] Veritas: agosto 2005 edição 11 39