Como funciona o backup no Informix

Versão para impressãoEnviar para amigoVersão PDF

  1. Funcionamento do Backup
    1. Niveis
    2. Logical Logs
  2. Modos de geração
    1. Destino do backup
    2. Backup dos dados
      1. ontape
      2. onbar
      3. Backup externo
  3. Backup dos Logical Logs
    1. ontape
    2. onbar
    3. Backup externo

Funcionamento do Backup

O Informix foi um dos primeiros banco no mundo a permitir realizar backup "on fly" , com o banco em produção , sem necessidade parar os acessos dos usuários.
Para permitir isso , o banco trabalha com o que chamamos de timestamps em cada pagina de dados gravada. Este timestamp é um contador interno do banco que é alterado cada vez que um dado é modificado na instancia (repare que é na instancia e não em um banco de dados em especifico). Bom, desta maneira, ao iniciar um backup o banco salva o timestamp daquele momento e passa a copiar todas as paginas que possuem timestamp menor que aquele. Para os dados alterados durante este processo por sessões de usuários, a pagina existente antes (before image) da alteração é mantida no Physical Log é copiada para o backup.

Niveis


O backup no informix pode ser incremental em até 3 Niveis, que chamamos de Nivel 0 (full) , Nivel 1 (Full +1) e Nivel 2 (Full + Nivel 1 +1). Os dados copiados no Nivel 1 são apenas os dados com timestamp maior que o timestap do Nivel 0 e os dados copiados no Nivel 2 são apenas os dados com timestamp maior que o Nivel 1.
Caso o Nivel 1 ou Nivel 2 sejam executado mais de uma vez, o backup anterior (Nivel 1 e 2) deverá ser descartado pois a regra do timestamp não muda.

Logical Logs


Os logs no Informix são de extrema importancia e para ambientes de produção sempre devem ser copiados. Os logs possuem as informações de todas as transações ocorridas no banco de dados, portanto é com o estes logs que é possível voltar um backup até o momento mais próximo possivel do crash do ambiente.
Os logical logs são salvos inicialmente em discos junto do banco de dados, porém ele possui um tamanho fixo definido pelo DBA e sua utilização é circular, ou seja, quando atinge o ultimo logical log disponivel , ele volta para o primeiro sobrescrevendo este.

Quando configurado adequadamente , o backup do Logical Log é incondicional para a utilização do banco de dados. Caso este não seja realizado , chegará um ponto em que o banco de dados poderá "travar" e só irá continuar com as operações após a realização do backup. Isso devido a reutilização circular dos logs e o conceito do Informix de que a falha do DBA ou operador não pode permitir que o banco de dados fique sem backup.

O DBA do banco deverá sempre se preocupar com a frequencia em que os Logical Logs são copiados, quais bancos trabalham "logados" e com tabelas do tipo RAW , pois estas tabelas não são logadas.

Exemplo em que demonstra a importancia do backup do Logical Log. Imagine a seguinte situação:

    - Um Banco de dados utilizado pelo sistema de controle de produção de uma Industria.
    - Neste banco de dados são incluido registros de controle de todos os passos dos produtos 
      na linha de produção.
    - A linha de produção da empresa funciona 24 horas por dia, 7 dias da semana
    - O DBA configura o agendamento do backup para seguinte forma:
      * Nivel 0 - Todos Domingos e Quarta a 1 hora da manhã
      * Nivel 1 - Todas Segundas e Quinta a 1 hora da manhã
      * Nivel 2 - Todas Terça, Sexta e Sabado a 1 hora da manhã
    
    Supondo que as 14 horas e 31 minutos da Terça-feira ocorra um problema sério no 
    ambiente de produção (maquina e storage) onde ocorre perda *total* da maquina e dados.
    
    Eis as situações que o DBA poderá estar, conforme a configuração realizada no banco.
    
    CONFIGURAÇÃO A
    
    O DBA configurou de modo que o backup do Logical Log não é feito , onde o 
    banco irá descartar o backup.
    
    Desta maneira para restaurar o backup o DBA deverá:
     1) Instalar o Informix , refazer/restaurar seu ambiente de configuração 
     2) Restaurar o backup do Nivel 0 feito no Domingo 
     3) Apos o Nivel 0, restaurar o Nivel 1 feito na Segunda
     4) Apos o Nivel 1, restaurar o Nivel 2 feito na Terça
    
    E assim elé será forçado a parar por ai pois não há mais o que ser restaurado. 
    Desta forma ele terá o banco com os dados modificados apenas até a 1 hora da manhã 
    da Terça, perdendo assim todos os registros gravados entre 1 hora da manhã e 14h31m 
    da tarde.
    
    
    CONFIGURAÇÃO B
    
    O DBA configurou o backup do Logical Log diretamente para um dispositivo externo 
    (fita ou disco em uma maquina remota) e com a execução do backup imediatamente após o 
    Logical log ser completado.  
    A configuração do Logical Log e a carga de transaçõe no banco fazem com que 
    cada Logical Log seja completado em média a cada 30 minutos.
    
    Desta maneira para restaurar o backup o DBA deverá:
     1) Instalar o Informix , refazer/restaurar seu ambiente de configuração 
     2) Restaurar o backup do Nivel 0 feito no Domingo 
     3) Apos o Nivel 0, restaurar o Nivel 1 feito na Segunda
     4) Apos o Nivel 1, restaurar o Nivel 2 feito na Terça
     5) Apos o Nivel 2, iniciar a restauração de todos os Logical Logs 
        salvos após o Nivel 2.
    
    Desta maneira, o DBA irá conseguir restaurar o banco de dados até aproximadamente 
    entre as 14h e 14h30 , que será o momento do ultimo Logical Log copiado.
    
    Observação: A frequencia de backup do logical log depende de algumas váriaveis como 
                tamanho do logical log, carga transacional e procedimentos manuais 
                adotado pelo DBA.
    

Modos de geração


No Informix pode-se dizer que há três meios de gerar o backup:
  • Utilizando o comando ontape: que é o modo nativo e mais simples de se trabalhar.
    Os recursos disponiveis são:
    * Backup dos dados e logical logs
    * Restore completo ou parcial dos dados
    * Mudar o a situação de log de um banco de dados.
    * Renomear chunks para diferentes paths e offsets no procesos de restore
    * Suporta utilização de filtro na geração/restore (um comando de compactação , encriptação, etc)
    * Geração do backup para STDIO do comando.
    * Restore do backup do STDIO do comando.
    * Cold restore (restore com o banco de dados offline)
    * Warm restore (restore parcial de dados com o banco de dados online e em utilização pelos usuários)
  • Utilizando o comando onbar: que é o modo mais avançado , com mais recursos e depende de um software de terceiro compativel com o padrão OPEN/XBSA.
    Os recursos disponiveis são:
    * Todos os recursos existentes no ontape (com exceção do STDIO)
    * Backup parcial do banco de dados
    * Restore parcial do banco de dados (mais flexivel que o ontape)
    * Paralelismo na geração/restore do backup, aumentando a performance consideravelmente.
    * Continuar um restore caso este seja interrompido
    * Restore "point in time'
    Observação: Com o Informix vem gratuitamente o ISM - Informix Storage Manager que é uma aplicação OPEN/XBSA e permite a utilização do onbar sem a necessidade da compra de outro produto.
  • Backup externo: É a cópia realizada apenas por ferramentas de terceiros. Seria o caso de copiar os chunks do banco de dados manualmente.
    Por não ter controle sobre o backup, neste caso o não é possível trabalhar com niveis de backup.
    É suportado o restore de backup externo mais o restore dos Logical Logs.

Destino do backup


É recomendado que este backup seja feito para um dispositivo remoto , que não seja na mesma maquina e storage que o banco de dado trabalha.

Backup dos dados


A execução do backup dos dados pode ser feita manualmente pelo DBA ou pode ser automatizada utilizando recursos do sistema operacional.

ontape


O destino do backup pode ser uma fita (DLT, LTO , etc) , um arquivo, um diretório ou o STDIO do comando.
Para informações adicionais sobre como configurar consulte o manual ou o artigo Tutorial Parte 4a - Realizando backup (ontape)

Para a geração do backup para fita não há segredos, basta parametrizar o blocksize , tamanho da fita e path do dispositivo. Durante o backup, se ele atingir o limite especificado (ou fim da fita) ele automaticamente irá solicitar que seja colocado a próxima fita.

A geração do backup para arquivo é semelhante ao da fita, deve-se definir os mesmos parametros porém será especificado o path do arquivo a ser gerado. Na execução do backup este arquivo já deverá existir, ter o usuário e grupo informix como owner e permissões apenas para ele (chmod 660), caso contrário o backup não é gerado.

A geração do backup para diretório está disponivel apartir da versão 11 do informix. Na parte de parametros é igual a geração para arquivo, porém será especificado o path para um diretório.
O Informix se encarrega de organizar os arquivos gerados e renomea-los conforme o padrão utilizado.

A geração para o STDIO é semelhante as demais, porém os parametros de path e tamanho da fita são ignorados.

Observação
Certos cuidados devem ser tomados quando configurado o ontape para ser executado automaticamente através de shells e agendador de tarefas. Isso deve-se ao fato de o ontape ser é interativo (por padrão) , solicitando sempre ao usuário alguma interação no inicio de backup e em troca de fitas. Porém isso pode ser contornado através de uma opção do própio comando ou com recursos de shell script.

onbar


Com o onbar o destino do backup será sempre a aplicação OPEN/XBSA configurada e esta aplicação que irá dizer para onde os dados deverão ser salvos.

Backup externo


A aplicação que extrair os dados do disco que deverá especificar o destino do backup.
Este backup pode ser via software ou via storage . Atualmente muitos storages possuem recursos chamados de Flash Copy ou Volume Copy, onde realizam a cópia instantanea dos dados.
No Informix, a operação necessária é a execução de um block checkpoint pelo DBA , que é um flush dos dados para o disco e bloqueio de todas as operações do banco (travando os usuários). Então após a realização do backup externo,o DBA deverá liberar o banco com um unblock checkpoint.
Este tipo de operação é util apenas para storages ou sistemas que possuem capacidade de realizar backups instantaneos (1 a 5 segundos) independente do tamanho da base de dados.

Backup dos Logical Logs


A execução do backup de logical logs pode ser feita manualmente pelo DBA ou pode ser automatizada utilizando recursos do próprio Informix e sistema operacional.

ontape


Com o ontape o backup dos logical logs podem ser feitos de dois modos:automatico ou continuo.
Ambos modos são compativeis com todos os modos de geração : fita , arquivo, diretório e STDIO.
No modo automatico o processo de backup pode ser manual ou gerado automaticamente cada vez que um logical log tem 100% do seu espaço utilizado.
No modo continuo o processo de backup não sai do ar, ele fica em execução porém ele só envia os dados para o dispositivo de backup quando o logical log atinge 100% de utilização.

onbar


Seu funcionamento e recursos é identico ao ontape.

Backup externo


Depende do ontape ou onbar para gerar backups dos logical logs.

0
Ainda não votado
Sua avaliação: Nenhum

Restore

Vixi Cesar. E ainda por cima te chamei de Ivan. Foi mal hein.

Restore

Fala Ivan, beleza? Dúvida mesmo. Como você faz para manter a integridade de um ixbar, no caso de ter que restaurar uma tabela de dois ou três dias para trás? Point in time table restore (rsss)? Abração André Luiz

RE: Restore

Olá André,

Cara, honestamente nunca precisei fazer um restore point-in-time com onbar, mas também nunca ouvi falar de problema de sincronia do ixbar neste caso em especifico. Porém para fazer sincronia dele, se deve utilizar o comando onsmsync.
Abraço!
César

Backup DB Informix

Ola Rôney,
Estou deduzindo que você está utilizando o ontape e configurando o TAPEDEV diretamente para um arquivo. Neste caso a resposta é sim, é necessário renomear o arquivo, caso contrário ele será sobrescrito.
Mas se você estiver trabalhando com o Informix versão 11 , ele já pode fazer isso para você.
Leia no artigo Tutorial Parte 4a - Realizando backup (ontape) sobre a geração de backup para diretórios.

Backup DB Informix

Muito relevantes as informações postadas, era o que eu precisava para ter um backup seguro. Gostaria de fazer apenas um questionamento: No caso de fazer backup em todos os níveis (0, 1 e 2) o nome do arquivo deverá ser alterado quando for executar o próximo nível?

Comentar

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Você pode usar tags BBCode no texto.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Mais informações sobre as opções de formatação

CAPTCHA
Este teste é para bloquear programas automatizados e previnir spams
CAPTCHA de Imagem
Digite o texto exibido na imagem.