Tutorial Parte 4a - Realizando backup (ontape)
Nesta parte do tutorial iremos demonstrar como realizar backup do Informix utilizando uma das ferramentas nativas.
A explicação básica de como funciona o backup e uma explicação geral das ferramentas disponíveis você irá encontrar neste artigo.
Iremos iniciar pelo ontape , por ser a ferramenta mais simples e facil de trabalhar.
- Recursos do ontape
- Ambiente para geração do backup
- Configurações
- Backup Físico
- Gerando backup para um arquivo
- Backup incremental
- Gerando backup para uma fita
- Gerando backup para STDOUT
- Gerando backup para um diretório
- Verficando se o backup ocorreu com sucesso
- Compactando / Encriptando
- Descartando o backup / Fake Backup
- Exemplo de execução de backups agendados
- Monitorando backup físico
- Backup Lógico
Recursos do ontape
O ontape é utilizado para gerar/restaurar backup do banco de dados e seus logs.
Ele é extremamente simples de se trabalhar e bem flexível.
Os recursos que temos com ontape relacionado ao backup e iremos demonstrar aqui são:
- Geração do backup físico (Physical Backup) de todos os dados e incremental
- Compactação/encriptação do backup durante a geração
- Identificar se a execução ocorreu com sucesso
- Geração do backup logico (Logical Logs)
- Geração automática dos Logical Logs.
Ambiente para geração do backup
Para recomendações sobre onde gerar o backup, leia este artigo
O ontape gera a copia de apenas os dados e não da configuração da instancia, para informações sobre o que mais realizar o backup separadamente veja o artigo citado no paragrafo anterior.
Configurações
A configuração do backup com o ontape fica quase toda no arquivo $ONCONFIG e são os parâmetros:
- TAPEDEV, TAPEBLK, TAPESIZE
Define o destino do backup físico, tamanho do bloco e tamanho da fita, possui o nome "TAPE" (fita) devido antigamente se trabalhar unicamente (na maioria dos casos) com fita. Porém com o tempo o Informix foi flexibilizando e atualmente você pode apontar estas definições para: Device de Fita, Arquivo, Diretório , /dev/null ou STDIO. - LTAPEDEV, LTAPEBLK, LTAPESIZE
Idem ao item anterior, com a unica diferença de que aqui são gerados os Logical Logs. - BACKUP_FILTER, RESTORE_FILTER
É nestes dois parâmetros que se define os comandos externos para realizar a compactação , encriptação, geração de checksum e etc do backup.
Para ambientes em que o backup é gerado em um diretório, há um parâmetro opcional, porém este é uma variável de ambiente que define um prefixo para o nome dos arquivos gerados: IFX_ONTAPE_FILE_PREFIX .
Apesar de estes parâmetros estarem no ONCONFIG não é necessário reiniciar a instancia para que tenham efeito, sempre que o ontape é executado ele re-lê estas configurações. A unica exceção que ocorre é quando definido o destino do Logical Log para /dev/null , mas irei explicar isso depois.
Backup Físico
Gerando backup para um arquivo
Gerar o backup para um arquivo é algo possível de fazer em todas as versões do Informix.
Na geração para arquivo deve-se ter cuidado com o seguinte:
- O arquivo onde o backup será gerado já deverá existir.
- O arquivo deverá pertencer ao usuário/grupo "informix". As permissões do arquivo gerado deverá ser Read/Write apenas para o usuário/grupo.
- Deve-se ter certeza de que o parâmetro TAPESIZE é maior que o backup a ser gerado ou defini-lo igual a 0 para que o processo não seja interrompido.
Edite o arquivo $ONCONFIG e defina o parâmetro TAPEDEV para o arquivo com seu caminho completo
TAPEDEV /ifmxdados/physbkp/backup_informix.ontapeCrie o arquivo de backup e corrija suas permissões se necessário
$ cd /ifmxdados/physbkp
$ touch backup_informix.ontape
$ chmod 660 backup_informix.ontape
$ ls -lh backup_informix.ontape
-rw-rw---- 1 informix informix 0 2009-06-24 14:39 backup_informix.ontape
Para gerar o backup, não é preciso tomar nenhum procedimento no banco ou tirar os acessos dos usuários.
Basta executar o comando abaixo
# Os parâmetros utilizados representam: # -s Geração de backup # -L [nivel] Indica o nivel do backup a ser gerado (completo ou incremental) # # Ao executar o comando ele irá trabalhar de modo interativo, solicitando que # o arquivo seja "montado", isso ainda é legado da época das fitas, apenas # confirme e o backup será iniciado. $ ontape -s -L 0 Please mount tape 1 on /ifmxdados/physbkp/backup_informix.ontape and press Return to continue ... 10 percent done. 20 percent done. 30 percent done. 40 percent done. 50 percent done. 60 percent done. 100 percent done. Read/Write End Of Medium enabled: blocks = 11488 Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 47 Program over. # Aqui podemos ver que o arquivo de backup foi gerado com 359MB. $ ls -oh /ifmxdados/physbkp/backup_informix.ontape -rw-rw---- 1 informix 359M 2009-06-24 14:43 /ifmxdados/physbkp/backup_informix.ontapeSe você já esta acostumado a trabalhar com shells já deverá estar imaginando certas dificuldades de trabalhar com o ontape em processos agendados. Não se preocupe há meios de trabalhar com esta interatividade nas versões mais antigas , para versões mais novas já há meios de gerar o backup sem esta interatividade.
Repare que ele informa um número do Logical Log, este número é muito importante pois em caso de restore será a partir deste logical log que você poderá restaurar seu banco até o momento mais próximo da parada.
Pronto, o backup foi gerado para um arquivo
Backup incremental
A geração do backup de modo incremental funciona com qualquer um dos modos (arquivo, fita, STDIO, diretório).
Para isso deve-se apenas especificar o nivel 1 ou 2 no parâmetro -L.
# Gera backup incremental nivel 1 utilizando STDIO $ ontape -s -L 1 -v -t STDIO > /ifmxdados/physbkp/backup_informix.ontape.nivel1 # Gera backup incremental nivel 2 $ ontape -s -L 2 -v -t STDIO > /ifmxdados/physbkp/backup_informix.ontape.nivel2
Gerando backup para uma fita
Para gerar o backup em uma fita (DLT/LTO) não difere muito do arquivo.
Defina o device de fita
# Exemplos TAPEDEV /dev/rmt/0m # ou um device remoto TAPEDEV hostalpha:/dev/rmt/0m # ou no caso de ambiente linux TAPEDEV /dev/st0É necessário especificar os parâmetros TAPEBLK e TAPESIZE.
O parâmetro TAPEBLK informa o tamanho de bloco utilizado e pode afetar a performance da geração do backup. Deve-se sempre seguir um valor múltiplo utilizado no dispositivo de fita e não deve ultrapassar o tamanho do cache do dispositivo para evitar perda de performance.
O parâmetro TAPESIZE deve ser informado para limitar no tamanho da fita, assim se este tamanho for alcançado o ontape irá solicitar que seja montada a fita numero 2 e assim por diante.
Caso queira utilizar a fita até o fim, mantenha este parâmetro igual a 0 e o ontape irá identificar o final da fita, solicitando a proxima automaticamente.
Observação: este recurso de detectar o fim da fita está disponivel a partir da versão 9.40 xC1.
Ao apontar a gravação do backup para um dispositivo de fita o Informix exige que o device trabalhe de modo que seja realizado o rewind da fita antes e depois de executar o backup.
Gerando backup para STDOUT
A partir da versão 10 passou a ser possível a geração de backup para o STDOUT do comando ontape flexibilizando assim mais ainda a geração do backup.
Antes deste recurso para trabalhar de modo similar era necessário utilizar arquivos fifo (mkfifo/mknod).
Para informações sobre o STDOUT / STDIO veja o manual do Linux/unix : man stdio
Este tipo de geração de backup pode ser utilizado para processos agendados por não ter interatividade com o usuário.
Neste modo de backup os parâmetros TAPEDEV é opcional e o TAPESIZE tem seu valor ignorado.
O parâmetro TAPEDEV é opcional porque se você quiser gerar o backup utilizando o STDIO pode forca-lo passando um parâmetro no comando ontape, porém se quiser deixa-lo como meio padrão de execução, pode definir o TAPEDEV como STDIO.
Para gerar o backup utilizando o STDOUT veja abaixo.
# Os parâmetros utilizados são os mesmos para gerar # backup para fita/arquivo, com a adição de apenas mais um: # -t STDIO Gera o backup no STDOUT do comando ontape $ ontape -s -L 0 -t STDIO > /ifmxdados/physbkp/backup_informix.ontape # Repare que o comando acima não exibe nenhuma mensagem, isso é devido o # STDOUT ser utilizado para mensagens passar a ser utilizado para gerar # o backup. Como alternativa podemos adicionar o parâmetro -v que irá gerar as # mensagens no STDERR $ ontape -s -L 0 -v -t STDIO > /ifmxdados/physbkp/backup_informix.ontape 10 percent done. 20 percent done. 30 percent done. 40 percent done. 50 percent done. 60 percent done. 100 percent done. Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 47 Program over. # Pode-se utilizar em conjunto com outros comandos para compactação # encriptação e etc. $ ontape -s -L 0 -t STDIO | gzip -9c > /ifmxdados/physbkp/backup_informix.ontape.gz $ ls -oh /ifmxdados/physbkp/backup_informix.ontape.gz -rw-r----- 1 informix 10M 2009-06-24 15:38 /ifmxdados/physbkp/backup_informix.ontape.gz # Para utilizar o STDIO como padrão na geração de backup basta defini-lo # no parâmetro TAPEDEV $ onstat -c |egrep "^TAPEDEV" TAPEDEV STDIO $ ontape -s -L 0 > backup_ifx.L0
Gerando backup para um diretório
Na versão 11.10 foi incluído um novo recurso na geração de backup em file system que é a criação e organização automatica dos arquivos de backup em um diretório.
Este tipo de geração de backup pode ser utilizado para processos agendados por não ter interatividade com o usuário.
Observação: No ontape existe o parâmetro -d para trabalhar de modo não-interativo, porém nunca vi necessidade de utiliza-lo no backup *físico*.
Características deste modo de utilização:
- O valor do parâmetro TAPESIZE é ignorado.
- O Informix gera e renomeia automaticamente os arquivos de backups.
- O diretório onde os backups são gerados deve pertencer ao usuário/grupo informix
- O diretório onde os backups são gerados deve ter permissão de leitura/gravação apenas para o usuário/grupo
- O nome dos arquivos gerado seguem a sintaxe: hostname_servernum_Ln
hostname = Nome do host onde a instancia é executada
servernum = Valor do parâmetro SERVERNUM no arquivo de configuração ONCONFIG
Ln = Nivel do backup : 0 , 1 ou 2. - Quando um novo backup é iniciado e existe o arquivo do backup anterior, este é renomeado conforme a sintaxe: hostname_servernum_AAMMDD_HHMMSS_Ln
AAMMDD_HHMMSS = É a data/hora que foi realizado o checkpoint do backup em questão, para assim ajudar a manter uma rastreabilidade com relação aos logs gerado após este backup. - É possível alterar o prefixo dos arquivos gerados utilizando a variável de ambiente IFX_ONTAPE_FILE_PREFIX.
O valor informado nesta variável irá substituir o texto hostname_servernum.
Esta variável deve ser definida na mesma sessão em que o ontape é executado. - Nenhum dos arquivos gerados não são apagados, é necessário uma intervenção manual para isso.
Para utilizar este recurso basta configurar o parâmetro TAPEDEV para um diretório
# Aqui podemos ver que já alterei para o diretório a geração do meu backup. $ onstat -c |grep ^TAPEDEV TAPEDEV /ifmxdados/physbkp # Ao executar o ontape, o backup inicia automaticamente sem solicitar # interação do usuário e ao final informa o nome do arquivo criado. $ ontape -s -L 0 10 percent done. 20 percent done. 30 percent done. 40 percent done. 50 percent done. 60 percent done. 100 percent done. File created: /ifmxdados/physbkp/note-cim_1_L0 Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 47 Program over. # Se executado novamente o backup , porém com nivel 1 um novo # arquivo é gerado $ ontape -s -L 1 100 percent done. File created: /ifmxdados/physbkp/note-cim_1_L1 Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 47 Program over. # Alterei o prefixo do arquivo $ export IFX_ONTAPE_FILE_PREFIX=bkp.$INFORMIXSERVER $ echo $IFX_ONTAPE_FILE_PREFIX bkp.idstitan # Agora o arquivo é gerado com o novo prefixo $ ontape -s -L 2 100 percent done. File created: /ifmxdados/physbkp/bkp.idstitan_L2 Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 47 Program over. # Aqui temos os arquivos de backup gerados. $ ls -oh /ifmxdados/physbkp/ total 376M -rw-rw---- 1 informix 8.1M 2009-06-24 21:16 bkp.idstitan_L2 -rw-rw---- 1 informix 360M 2009-06-24 21:03 note-cim_1_L0 -rw-rw---- 1 informix 8.1M 2009-06-24 21:06 note-cim_1_L1 # Para demonstrar como o arquivo de backup é renomeado # no exemplo abaixo gerei um backup nivel 0, 1 e 2 e # re-executei o nivel 2. $ ls -ohtr total 385M -rw-rw---- 1 informix 360M 2009-06-24 21:50 bkp.idstitan_L0 -rw-rw---- 1 informix 8.2M 2009-06-24 21:51 bkp.idstitan_L1 -rw-rw---- 1 informix 8.2M 2009-06-24 21:51 bkp.idstitan_20090624_215105_L2 -rw-rw---- 1 informix 8.4M 2009-06-24 21:54 bkp.idstitan_L2
Verficando se o backup ocorreu com sucesso
Para identificar se a geração de um backup foi ou não executada com sucesso, pode-se utilizar o exit code do comando ontape. Se retornado zero a execução ocorreu com sucesso, se retornado um houve algum erro.
Veja este exemplo em shell unix.
# Uma shell simples que exibe uma mensagem dizendo se o
# backup foi executado com sucesso ou não
ontape -s -L 0 > ontape.log 2>ontape.erros
if [ $? -eq 0 ];
then
echo "Backup executado com sucesso!"
else
echo "Backup falhou!"
fi
Compactando / Encriptando
A partir da versão 11.10 foram adicionados os parâmetros BACKUP_FILTER e RESTORE_FILTER.
Com ele é possível adicionar comandos "on fly" para compactar o backup , encriptar e outro tipo de tratamento ao dado que queira realizar.
Estes parâmetros aceitam um comando que será executado durante o backup e terá efeito entre a leitura dos dados e a geração do arquivo de backup. O comando colocado nestes parâmetros deverão trabalhar no modo STDIO, recebendo o dado pelo STDIN e gerando pelo STDOUT.
Ao definir um comando para a geração do backup, você deverá definir o comando compativel para o restore.
Este filtro terá efeito sobre o Backup Físico, Backup Logico e qualquer dos modos de backup gerado pelo ontape ( arquivo, STDIO, diretório, fita ).
Observações
- O tipo de arquivo gerado não será do comando utilizado no parãmetro pois o Informix adiciona mais informações sobre o backup.
- Quando gerado backup para arquivo ou fita o valor do TAPESIZE continua sendo válido e seu valor é referente ao arquivo gerado, ou seja, ao montade de dados gerado após o filtro apliacado.
# O valor colocado nestas opções, se tiverem parâmetros deverão ser descritos # entre aspas simples. $ onstat -c |egrep "^BACKUP_FILTER" BACKUP_FILTER '/usr/bin/gzip -c' RESTORE_FILTER '/usr/bin/gzip -dc' # Veja que no output do ontape ele informa qual filtro está sendo utilizado $ ontape -s -L 0 Using the backup and restore filter /usr/bin/gzip -c. 10 percent done. 20 percent done. 30 percent done. 40 percent done. 50 percent done. 60 percent done. 100 percent done. File created: /ifmxdados/physbkp/note-cim_1_L0 Please label this tape as number 1 in the arc tape sequence. This tape contains the following logical logs: 48 Program over. # Veja que o arquivo foi criado com 11 MB, quando o normal era 350 MB $ ls -oh total 11M -rw-rw---- 1 informix 11M 2009-06-26 09:21 note-cim_1_L0 # Aqui demonstro que o arquivo não é gerado com um gzip porque o Informix # adiciona informações sobre o backup no cabeçalho do arquivo. $ file note-cim_1_L0 note-cim_1_L0: DOS executable (device driver), name: ¼ for DOS $ gzip -l note-cim_1_L0 gzip: note-cim_1_L0: not in gzip format # Veja que mesmo se gerado para STDIO o backup já é gerado # compactado $ ontape -s -L 0 -t STDIO > backup.stdio $ ls -oh total 22M -rw-r----- 1 informix 11M 2009-06-26 09:29 backup.stdio -rw-rw---- 1 informix 11M 2009-06-26 09:21 note-cim_1_L0
Para encriptar um backup basta utilizar um comando como o mcrypt.
Descartando o backup / Fake Backup
Também preciso explicar como descartar o backup, ou seja, não gera-lo. Isso é util e as vezes necessário em certas situações que requer que um backup nivel 0 seja executado porém seu banco é grande e você não quer realmente gerar um backup.
Na realidade já fizemos isso ao apontar o TAPEDEV e LTAPEDEV para o /dev/null :
$ onstat -c |egrep "^L?TAPEDEV"
TAPEDEV /dev/null
LTAPEDEV /dev/null
Ao definir o destino como /dev/null a instancia detecta isso na geração do backup (execução do ontape) e executa como se o backup tivesse sido feito , mas isso é instantaneo, sem ler os dados. Veja abaixo, que a execução do "backup" da minha instancia que possui mais de 350 MB de dados levou menos de 1 segundo.
$ time ontape -s -L 0
Archive to tape device '/dev/null' is complete.
Program over.
real 0m0.935s
user 0m0.028s
sys 0m0.052s
Complementando esta opção também se utiliza o fake backup para não registrar na Instancia o backup feito. Isso quer dizer que se você executar um backup nivel 0 como fake após um nivel 1 , o ultimo backup válido para a Instancia continuará a ser o nivel 1.
Esta opção é muito útil em gerar backup para ambientes de alta disponibilidade (HDR,RSS).
Exemplo de execução de backups agendados
Para agendar backups em ambientes linux/unix você precisarã utilizar o crontab
Nele basta colocar a chamada do comando ontape, mas antes é preciso definir as váriaveis de ambiente do Informix. Então você pode criar uma shell com todos os comandos ou colocar tudo diretamente no crontab
# Abaixo segue uma shell bem simples de backup que ao finalizar # envia um e-mail com o log da execução. Ela executa os seguintes passos: # 1 - define variaveis com a shell env.idstitan # 2 - Exibe as configurações definidas no momento do backup # 3 - Executa o ontape # 4 - Captura o status de execução (0 = ok ou 1 = erro ) # 5 - Verifica o status e envia o email # Observação: Nesta configuração o backup precisa trabalhar de modo não interativo # que é a configuração para em diretório ou STDIO $ cat /usr/local/bin/backup_ifx.sh { . /usr/local/bin/env.idstitan echo " " echo "Configurações... " onstat -c | egrep "^L?TAPE|^BACKUP_FILTER|^RESTORE_FILTER" echo " " echo "Backup iniciado: $(date)" # Geracao para diretorio ontape -s -L 0 # Geracao para STDIO # ontape -s -v -L 0 -t STDIO > /ifmxdados/physbkp/backup_ifx.L0 export vStatus=$? echo "Backup finalizado: $(date)" } > /tmp/backup_ifx.log 2>&1 # Envia email para usuario cmartins e email externo dba@suaempresa.com.br if [ $vStatus -ne 0 ]; then cat /tmp/backup_ifx.log | mail -s "Backup Falhou!" cmartins dba@suaempresa.com.br else cat /tmp/backup_ifx.log | mail -s "Backup Executado!" cmartins <a href="mailto:dba@suaempresa.com.br">dba@suaempresa.com.br</a> fi # Este seria a definição no crontab para executar todos os dias a 1 da manhã # através da shell $ crontab -l 00 01 * * * /usr/local/bin/backup_ifx.sh # Aqui seria a execução sem shell $ crontab -l 00 01 * * * . /usr/local/bin/env.idstitan ; $INFORMIXDIR/bin/ontape -s -L 0 -t STDIO > /ifmxdados/physbkp/backup_ifx.L0
Na shell acima eu utilizei o comando mail para enviar os e-mails. Para enviar um e-mail externo em uma configuração padrão de um sistema linux/unix seria necessário configurar um serviço de relay SMTP como sendmail/postfix na maquina.
Para evitar isso, pois a maquina onde executo o banco de dados não é servidor de e-mail, utilizo o programa msmtp.
Com este programa você continua a utilizar o client mail do linux/unix mas ele envia para um SMTP remoto.
# Para utilizar o msmtp basta configurar o arquivo .mailrc no diretório HOME # do usuário (no nosso caso informix) $ cat $HOME/.mailrc set sendmail="/usr/bin/msmtp" # Configurar o arquivo .msmtprc também no diretório HOME do usuário $ cat $HOME/.msmtprc host smtp.mail.yahoo.com.br port 25 timeout 60 protocol smtp auth plain user seu_user_aqui password sua_senha_aqui from seu_email@suaempresa.com.br
Monitorando backup físico
Para monitorar backups gerados pelo ontape você pode utilizar o arquivo de log da instancia, definido no parámtro MSGPATH do $ONCONFIG ou através do comando onstat -m e o comando onstat -g arc.
# No arquivo de log você irá encontrar informações de quando o backup foi iniciado # e quando ele finalizou ou foi abortado. $ onstat -m .... 10:04:26 Level 0 Archive started on rootdbs, llog, plog, dados1, dados2 10:04:49 Archive on rootdbs, llog, plog, dados1, dados2 Completed. ... 10:07:35 Level 0 Archive started on rootdbs, llog, plog, dados1, dados2 10:07:37 Archive on rootdbs, llog, plog, dados1, dados2 ABORTED. 10:07:37 Aborted by client. # Este comando exibe quando foi executado os backups nivel 0,1,2 de # todos os dbspaces # Neste exemplo gerei um backup nivel 0,1 e 2 um seguido do outro $ onstat -g arc IBM Informix Dynamic Server Version 11.50.UC4DE -- On-Line -- Up 00:04:01 -- 692120 Kbytes num DBSpace Q Size Q Len Buffer partnum size scanner Dbspaces - Archive Status name number level date log log-position rootdbs 1 0 06/26/2009.13:31 48 0x739018 1 06/26/2009.13:33 48 0x73e018 2 06/26/2009.13:34 48 0x748018 llog 2 0 06/26/2009.13:31 48 0x739018 1 06/26/2009.13:33 48 0x73e018 2 06/26/2009.13:34 48 0x748018 plog 3 0 06/26/2009.13:31 48 0x739018 1 06/26/2009.13:33 48 0x73e018 2 06/26/2009.13:34 48 0x748018 dados1 5 0 06/26/2009.13:31 48 0x739018 1 06/26/2009.13:33 48 0x73e018 2 06/26/2009.13:34 48 0x748018 dados2 6 0 06/26/2009.13:31 48 0x739018 1 06/26/2009.13:33 48 0x73e018 2 06/26/2009.13:34 48 0x748018
Backup Lógico
A geração de backup do Logical Log é de extrema importancia, ele possui seus próprios parâmetros configuração já que ele é salvo em diferente destino do backup físico, mas também trabalha com arquivos, fitas, diretório, /dev/null e STDIO.
Observações:
- O Logical Log também sofre efeito dos parâmetros BACKUP_FILTER e RESTORE_FILTER
- Quando utilizado um filtro o parâmetro TAPESIZE obrigatóriamente passa a exigir um valor maior que zero.
Se você possui 10 Logical Logs de 10 MB cada e em um unico dia todos estes Logs são utilizados você terá 100 MB de backups feito e se a utilização da sua instancia for intensa e estes logs sejam utilizado mais de uma vez, você terá muito mais backups no mesmo dia. Sendo assim você precisará prever a quantide de espaço/fitas necessários para salvar estes backups até que o próximo backup físico seja realizado e assim poder descarta-los.
Ele pode ser gerado de duas formas: Continuo ou Automatico.
Gerando backup lógico
Modo Automatico
É executado automaticamente pela instancia através de alarmes automaticos e shell em conjunto com o comando ontape -a. Mas estas configurações precisam estar 100% funcionais, caso contrário o backup não será gerado e você irá correr risco de ter sua instancia bloqueada por falta backup do logical log.
Para ver como configurar o modo automatico, veja mais abaixo.
Modo continuo
A geração no modo continuo é feita através do comando ontape -c e normalmente é utilizado através de um operador e/ou direcionado para fitas.
Quando executado o backup continuo
Observação importante: Sempre que é executado o backup lógico o ontape pede de modo interativo para que seja informado se o logical log atual deve ser backupeado ou não. Para evitar esse comportamento em situações de automação do backup lógico deve-se utilizar o parâmetro -d para desativar a interatividade.
Destino do backup lógico
- FITA
Basta definir para o path do device - ARQUIVO
É possível trabalhar deste modo, porém é preciso muito cuidade e tratamento após o arquivo ser gerado, isso devido o backup gerar o arquivo sempre com o mesmo nome, sobrescrevendo o anterior.
Além do cuidado para identificar qual o número do(s) log(s) salvo neste arquivo, que neste caso é informado apenas no output do ontape. - STDIO
Funciona igual ao backup físico. - DIRETÓRIO
Funciona igual ao backup físico, com a unica diferença no nome do arquivo gerado, que segue o padrão hostname_servernum_Lognnnnnnnnnn e também sofre alteraçao se utilizada a variável IFX_ONTAPE_FILE_PREFIX.
O valor Lognnnnnnnnnn contém o número do logical log salvo. - Particularidade do parâmetro LTAPEDEV - /dev/null
Descarta o backup.
Quando a instancia é iniciada (oninit), se o parâmetro LTAPEDEV estiver direcionado para /dev/null o backup do logical log é descartado automaticamente e não há como mudar isso sem reiniciar, pois mesmo que se altere o parâmetro no ONCONFIG ele não terá efeito sobre a instância (oninit) já em execução.
Para a situação inversa, se ao iniciar a instancia o LTAPEDEV está definido para um path válido e depois é alterado para /dev/null o backup será descartado, mas para isso é necessário executar o ontape manualmente no modo continuo ou através do modo automatico
Automatizando o backup lógico
Para trabalhar com a geração do backup automático é altamente recomendável que o utilize apenas os modos de geração para diretórios ou STDIO. Porém é possível de trabalhar com ele em todos os modos.
Mas para utiliza-lo em outros modos terá que tomar os seguintes cuidados:
- Geração para arquivo: Você terá que tratar via shell a identificação e renomeação dos arquivos de logs gerados, Da trabalho para escrever a shell, mas é possível pois já utilizei desta artimanha na versão 7.31.
- Geração para fita(*): Você terá que tratar via shell um log para identificar quais logical logs estão em qual fita e realizar a troca de fita antes que esta finalize ou o programa irá "travar" solicitando a proxima fita. Além disso você terá o risco de trocar uma fita no exato momento em que um log iniciar seu backup.
Bom para configurar o backup em modo automatico você terá que configurar o $ONCONFIG e o arquivo $INFORMIXDIR/etc/alarmprogram.sh , esta shell já vem com Informix e é muito util para receber informações sobre situações com o banco de dados. Em breve irei escrever um artigo de como personaliza-lo completamente.
# Para começar é necessário configurar o ONCONFIG, nele você terá que definir # os parâmetros ALARMPROGRAM e ALRM_ALL_EVENTS # ALARMPROGRAM - Define qual será a shell que irá realizar tratamento dos # alarmes/avisos gerado pela instancia # ALRM_ALL_EVENTS - Define qual nivel de alarme será disparado pela instancia # e executar o ALARMPROGRAM. O valor 1 refere-se apenas aos # avisos de logical logs 100% utilizados. # # Abaixo a minha configuração está para gerar backup em diretório e # com o avisos/alarmes definidos para gerar eventos de log full. $ onstat -c |egrep "^LTAPE|^AL[AR]|^BACKUP_FILTER|^RESTORE_FILTER" LTAPEDEV /ifmxdados/llogbkp LTAPEBLK 32 LTAPESIZE 100000 BACKUP_FILTER '/usr/bin/gzip -c' RESTORE_FILTER '/usr/bin/gzip -cd' ALARMPROGRAM $INFORMIXDIR/etc/alarmprogram.sh ALRM_ALL_EVENTS 1 # Observação: Repare que por ter o filtro ativo (com gzip) defini o # LTAPESIZE com um tamanho alto, para garantir que não # terei problemas. # Veja a alteração da shell ALARMPROGRAM que fiz, alterei apenas dois # parâmetros, um para informar que os backups dos logical logs devem ser # realizados e o outro para utilizar o comando ontape $ ls alarmprogram.* alarmprogram.bkp alarmprogram.sh $ diff alarmprogram.bkp alarmprogram.sh 31c31 < BACKUPLOGS=N --- > BACKUPLOGS=Y 62c62 < BACKUP_CMD="onbar -b -l" --- > BACKUP_CMD="ontape -d -a"Pronto, isso é o suficiente para o backup do logical log ser gerado automaticamente. Mas para ter 100% de efeito é necessário reiniciar a instancia devido o parâmetro ALRM_ALL_EVENTS.
Para testar, reinicie a instancia e execute o comando onmode -l e monitore com o onstat -l, o onmode força a troca do logical log, fazendo com que o backup também seja forçado.
Monitorando backup lógico
Utilize o comando onstat -l, este comando exibe o status de todos os logical logs.
No exemplo abaixo, os Flags representam:
-
B - Logical Log com backup feito
U - Logical log utilizado
C - Logical log em uso (Current)
L - Logical log em que o ultimo checkpoint foi realizado (Last checkpoint).
Você precisa ficar atento aos logs sem o flag B, pois estes são os que não tiveram seu backup realizado.
$ onstat -l ... address number flags uniqid begin size used %used 5ec9acc8 7 U-B---- 53 2:53 5000 4 0.08 5ec9ad10 8 U-B---- 54 2:5053 5000 49 0.98 5ec9ad58 9 U-B---- 55 2:10053 5000 9 0.18 5ec9ada0 1 U-B---- 56 2:15053 5000 1376 27.52 5ec9ade8 5 U-B---- 57 1:293 5000 7 0.14 5ec9ae30 2 U------ 58 2:20053 5000 6 0.12 5ec9ae78 3 U---C-L 59 2:25053 5000 290 5.80 5ec9aec0 4 U-B---- 52 2:30053 5000 4 0.08 8 active, 8 total # O histórico da geração do backup dos lógicals logs pode ser # visto no arquivo de log da instancia $ onstat -m ... Message Log File: /dados/IBM/ids1150uc4de/tmp/online.log ... 10:42:29 Logical Log 63 Complete, timestamp: 0x64ac36. 10:42:29 Logical Log 63 - Backup Started 10:42:29 Logical Log 63 - Backup Completed 10:42:30 Logical Log 64 Complete, timestamp: 0x64ac70. 10:42:30 Logical Log 64 - Backup Started 10:42:30 Logical Log 64 - Backup Completed 10:42:33 Logical Log 65 Complete, timestamp: 0x64acb8. 10:42:33 Logical Log 65 - Backup Started 10:42:33 Logical Log 65 - Backup Completed
- 743 leituras





External Backup em HDR / RSS
Olá a todos,
Se você está trabalhando com a versão 11.50 xC6 ou superior nos "sabores" Workgroup ou Enterprise, você sabe que tem direito a ter 2 servidores secundários em "Idle standby" né? Um HDR e outro RSS onde não pode ter acessos (nem de leitura, nem para backup).
Porém se possuir uma licença simples para um deles, poderá gerar seus backups a partir dele. Utilizado o recurso de External Backup. Desta maneira seu servidor principal não tem mais a performance afetada durante a execução do backup.
O External Backup é um recurso onde você faz uma cópia manual de seus chunks, realizando os seguintes procedimentos:
- Bloqueia o servidor: onmode -c block
- Copia seus chunks (com LVM Snapshot, cp , dd, tar ou outro comando qualquer).
- Libera o servidor: onmode -c unblock
Gostei bastante das
ontape - windows
Ola Mauro,
A partir da versão 11 (não lembro se 11.10 ou 11.50) foi adicionado a opção "-d" no ontape, onde ele não faz interação, porém até aonde sei ele só é válido para quando direcionado para diretório, mas não custa testa-lo.
Outro meio de evitar a interatividade é utilizar a opção "-t STDIO" e direcionar para o arquivo diretamente pelo comando ontape.
Mas se você quiser manter o comando do jeito que está, também tem como, faz tempo que não utilizo isto em windows, mas acho que não a erro pois até aonde lembro é igual ao Unix:
É preciso deixar uma ou duas linhas em branco.
Comentar