Como funciona o backup no Informix
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.
- 6178 leituras
Restore
Restore
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
Comentar