Dynamic Dump Msiga

24
FairCom Documentation Descrição das opções de backup do c-treeACE Server Preparado exclusivamente para Totvs e seus clientes Abril de 2008 © Copyright 2014, FairCom Corporation. All rights reserved. c-treeACE, c-treeRTG, c-treeAMS, c-tree Plus, c-tree, r-tree, FairCom, and FairCom’s circular disc logo are trademarks of FairCom Corporation, registered in the United States and other countries. All other trademarks are the property of their holders.

description

Dump

Transcript of Dynamic Dump Msiga

  • FairCom Documentation

    Descrio das opes de backup do c-treeACE Server Preparado exclusivamente para Totvs e seus clientes

    Abril de 2008

    Copyright 2014, FairCom Corporation.

    All rights reserved.

    c-treeACE, c-treeRTG, c-treeAMS, c-tree Plus, c-tree, r-tree, FairCom, and FairComs circular disc logo are

    trademarks of FairCom Corporation, registered in the United States and other countries. All other trademarks are the

    property of their holders.

  • www.faircom.com All Rights Reserved ii

    Contents

    1. Dump dinmico ..................................................................................................... 1

    1.1 Online Disk Snapshot ............................................................................................. 3

    2. Configurao do Dump dinmico ........................................................................ 4

    2.1 ctdump Programando os backups automticos do c-tree Server ......................... 4

    2.2 ctrdmp Restaurando backups do c-tree Server .................................................... 8

    2.3 Recuperao do Dump Dinmico ........................................................................... 9

    2.4 ctfdmp Avanando o Backup no tempo (Rollforward) ...................................... 12

    2.4.1 Rolling Back do Backup ............................................................................ 13

    3. Reconstruindo ndices e Compactando arquivos de dados ............................ 14

    4. Outras opes de Backup .................................................................................. 16

    5. Resoluo de problemas especficos de Dump dinmico com o c-tree Server .................................................................................................................. 19

    6. Index .................................................................................................................... 22

  • www.faircom.com All Rights Reserved 1

    Chapter 1

    1. Dump dinmico

    Um dump dinmico fornece um mtodo seguro de realizar o backup dos dados enquanto o c-tree Server encontra-se operando. O administrador do servidor pode programar um dump de arquivos especficos, no necessitando obrigatoriamente realizar o dump completo de toda a base. Assim, pode-se copiar todos os arquivos do sistema, ou um subconjunto destes. O dump executado enquanto o servidor est operando e executando atividades normais, e transparente para os usurios.

    O servidor realiza o dump no momento programado, ou no primeiro momento apropriado aps a programao. Ao iniciar um dump programado, o c-tree Server interrompe temporariamente o incio de novas transaes e inicia efetivamente o dump to logo todas as transaes ativas se encerrem (ou aps um certo tempo definido pelo usurio, ao final do qual encerra as transaes pendentes). Com o incio do processo de dump, novas transaes podem ser efetuadas sem qualquer limitao.

    Os processos de dump dinmico e recovery foram projetados para arquivos transacionados. Arquivos no transacionados podem ser armazenados sob certas restries, conforme descrito nas sees abaixo.

    Dumping de Arquivos do Sistema

    Ao selecionar os arquivos a serem salvos no processo de dump, inclua sempre que possvel o arquivo FAIRCOM.FCS, que contm informaes sobre as contas dos usurios. Por outro lado, no se deve incluir no processo de dump arquivos no c-tree como arquivos texto. Um exemplo de tal arquivo CTSTATUS.FCS. Caso seja includo, haver um erro relativo a este arquivo no processo de recuperao do dump (ctrdump), embora os demais arquivos sejam recuperados corretamente. Note que ao finalizar a recuperao do dump, um novo arquivo CTSTATUS ser criado, contendo informaes sobre o processo de restaurao.

    Os arquivos S*.FCS e D*.FCS sero automaticamente includos no dump, pois so necessrios no processo de restaurao dos arquivos a um estado consistente. Estes arquivos sero apagados no final do processo.

    Nota Microsiga: o arquivo FAIRCOM.FCS contm informaes sobre os usurios c-tree. No momento, todas as conexes ao c-tree Server realizadas pelo Protheus utilizam o mesmo usurio. Assim, por hora, o arquivo FAIRCOM.FCS deve ser salvo apenas nos casos em que a senha do usurio ADMIN tenha sido alterada. Caso este arquivo seja corrompido em algum momento, o mesmo pode ser removido e o c-tree Server criar um novo arquivo sem as customizaes realizadas pelos usurios. Caso nenhum usurio do c-tree Server tenha sido criado, a nica perda possvel seria da alterao na senha do administrador.

    Dumping de Arquivos TRNLOG

    Para arquivos TRNLOG, o processo de dump dinmico automaticamente inclui um registro com as atualizaes realizadas durante o processo. Quando os arquivos so recuperados (restored) utilizando o utilitrio ctrdmp, o processo de recuperao automaticamente utiliza os logs gravados no dump para restaurar os arquivos TRNLOG a um estado consistente no momento programado do backup.

  • Dump dinmico

    www.faircom.com All Rights Reserved 2

    Dumping de Arquivos PREIMG

    Embora recuperao automtica no seja possvel para arquivos PREIMG, possvel realizar backups dinmicos peridicos. Utilizando a palavra chave PREIMAGE_DUMP no arquivo de configurao do c-tree Server (ctsrvr.cfg), possvel promover arquivos PREIMG para arquivos totalmente transacionados (TRNLOG) durante o processo de dump dinmico. A promoo a um arquivo TRNLOG significa que um registro completo das transaes mantido durante o processo de dump. Este processo garante que qualquer alterao realizada nos arquivos durante o backup ser salva nestes arquivos especiais de registro de transao. A possibilidade de realizar backup dinmico nos dados do usurio minimiza a limitao de recuperao automtica deste modelo.

    Dumping de Arquivos no transacionados

    O backup de arquivos no transacionados possvel enquanto o servidor encontra-se operacional, dentro de certas limitaes. Certamente, a forma mais segura de se realizar um backup completo dos dados e ndices enquanto o servidor permanece operacional garantir que todos os arquivos sejam transacionados. Desta forma, pode-se garantir que todos os dados e ndices estejam em completo sincronismo, e que atualizaes possam continuar ocorrendo nos arquivos durante o processo.

    Embora seja possvel incluir arquivos no transacionados no script de backup, no h proteo contra atualizaes nestes arquivos. Em outras palavras, possvel que o arquivo seja atualizado durante o processo de dump dinmico, e o estado do arquivo sendo gravado ir refletir seu status no momento em que a sua gravao efetiva ocorre. A atualizao de um arquivo transacionado durante o dump dinmico no causa problemas, pois o processo de restaurao do dump ir utilizar os registros de transao para recuperar o arquivo a um estado consistente (equivalente ao incio programado do backup). Entretanto, atualizar arquivos que NO so transacionados enquanto eles esto sendo gravados resulta em um backup indefinido, devido ao estado desconhecido do arquivo.

    A palavra chave !PROTECT, sem nenhum argumento, quando adicionada ao script do dump dinmico, faz com que arquivos no transacionados sejam copiados de forma correta, impedindo que atualizaes ocorram no momento em que o arquivo especfico est sendo gravado. No possvel garantir que o(s) arquivo(s) de ndices fique(m) consistente(s) com o arquivo de dados, pois eles no so gravados ao mesmo tempo. As atualizaes no arquivo so suspensas apenas enquanto o arquivo de dados est sendo gravado.

    Esta tcnica garante que o arquivo de dados seja gravado em um estado conhecido. O procedimento de recuperao de um arquivo no transacionado necessariamente tem que ser seguido pela reconstruo (rebuild) dos ndices. Como a proteo ocorre apenas para os arquivos de dados, na maior parte das situaes os ndices no precisam ser gravados, pois tero que ser reconstrudos. Uma vez mais, esta limitao se refere apenas a arquivos no transacionados. Para arquivos transacionados (TRNLOG ou PREIMG), os arquivos de dados e ndices podem ser gravados e estaro em completo sincronismo ao final do processo de restaurao.

    Nota: !PROTECT suspende atualizaes apenas a nvel ISAM. A palavra chave !PROTECT_LOW tambm suspende atualizaes em baixo nvel, alm do nvel ISAM. A FairCom sugere o uso de !PROTECT_LOW quando funes de baixo nvel so utilizadas.

    Nota Microsiga: No momento, a Microsiga no utiliza funes de baixo nvel como as necessrias para utilizao de !PROTECT_LOW.

    possvel se realizar o back up de arquivos de dados que no estejam submetidos ao controle transacional enquanto o c-tree Server permanece operacional. Certamente, a forma mais segura de realizar um backup completo dos arquivos de dados e ndices enquanto o c-tree Server permanece operacional garantir que todos os arquivos sejam transacionados. Desta forma,

  • Dump dinmico

    www.faircom.com All Rights Reserved 3

    voc garante que todos os arquivos de dados e ndices estejam completamente sincronizados, e as atualizaes nos arquivos podem continuar durante o processo do dump dinmico.

    Alguns desenvolvedores optam por no implementar controle transacional por alguma razo especfica. Em alguns casos, desenvolvedores migrando do modelo standalone multi-usurio do c-tree Plus para o c-tree Server (ou que mantm o suporte simultneo aos dois modelos) mantm as seguintes palavras chave no arquivo de configurao do c-tree Server para garantir a integridade destes arquivos durante a operao normal do servidor:

    COMPATIBILITY FORCE_WRITETHRU

    COMPATIBILITY WTHRU_UPDFLG

    Assim, caso voc utilize arquivos no transacionados no seu sistema, para garantir a integridade dos arquivos em caso de queda do sistema e tambm durante a realizao de um dump dinmico, considere a utilizao das palavras chave acima. Note, porm, que caso estes arquivos no transacionados tenham atualizaes com grande freqncia no seu sistema, a garantia de integridade dada pelas palavras chave acima ter um preo em termos de degradao de performance do sistema.

    Nota Microsiga: Nas verses atuais do Protheus (at Abril de 2008), os arquivos sigamat.emp, sigahl*.hl*, profile.usr, sigapss.spf no so transacionados, e assim, requerem o uso das palavras chave acima para minimizar o risco de problemas em casos de falha no sistema. Como estes arquivos so raramente atualizados, no de se esperar um impacto significativo na performance. H possibilidade de alteraes no futuro que faam com que estas palavras chave no mais sejam necessrias. Procure manter seu sistema e configurao atualizados conforme procedimentos sugeridos pela Totvs/Microsiga.

    Arquivos Stream Segmentados no Dump

    Um arquivo gerado pelo dump dinmico pode ser muito grande, dependendo do tamanho dos arquivos sendo gravados. Para evitar problemas com o sistema operacional, o c-tree Server automaticamente cria arquivos stream com extenso mxima de 1 GB. Por exemplo, realizar o dump de 5 GB de dados em um arquivo denominado backup produzir 5 arquivos stream de 1 GB cada, com os nomes backup, backup.001, backup.002, backup.003, e backup.004. Este valor padro de 1 GB pode ser modificado com a palavra chave !EXT_SIZE no arquivo script de dump.

    O c-tree Server tambm permite que sejam criados arquivos stream de dump segmentados, em que o script de dump define o nome e localizao dos segmentos. Veja o c-tree Server Administrator's Guide para detalhes sobre a utilizao da opo !SEGMENT no arquivo de script de dump.

    1.1 Online Disk Snapshot Alguns subsistemas de disco suportam que se tire uma imagem instantnea (snapshot) do disco, sem interferir com a execuo do sistema. Esta opo, quando disponvel, fornece uma forma de realizar o backup de arquivos TRNLOG sem a perda de dados ou com a produo de um estado transacional inconsistente. Um instantneo do disco no inclui o cache do servidor, assim para arquivos no transacionados ou arquivos PREIMG, atualizaes no arquivo podem ser perdidas. Estes arquivos (no transacionados e PREIMG) devem ter os ndices reconstrudos. Para os arquivos TRNLOG, os registros de transao contm as atualizaes que foram committed, de tal forma que estes arquivos sero restaurados automaticamente a um estado consistente to logo o c-tree Server seja reiniciado, permitindo que o processo de recuperao automtica efetue os ajustes necessrios.

  • www.faircom.com All Rights Reserved 4

    Chapter 2

    2. Configurao do Dump dinmico

    O processo de dump realizado pelo utilitrio ctdump, e a recuperao ou restauro dos dados realizada com o utilitrio ctrdmp. Os processos de Rollback e Rollforward so realizados, respectivamente, pelos utilitrios ctdmp e ctfdmp. Estes utilitrios sero descritos ao longo deste documento.

    2.1 ctdump Programando os backups automticos do c-tree Server O usurio deve fornecer o User ID, Senha, nome do arquivo Script de dump e o nome do Servidor para o utilitrio ctdump, que programa o Dump dinmico. A sintaxe a seguinte:

    ctdump [adminuser adminpass] dumpscript [servername]

    adminuser: usurio do grupo ADMIN

    adminpass: Senha do Administrador

    dumpscript: Nome do script de Dump dinmico no sistema do servidor. Um caminho (path) relativo ao sistema do Servidor pode ser includo.

    servername: Nome do servidor (opcional).

    A seguinte linha representa um exemplo de utilizao deste utilitrio:

    ctdump admin ADMIN meuscript.txt FAIRCOMS

    O dump tambm pode ser programado diretamente no arquivo de configurao do c-tree Server (ctsrvr.cfg) com a palavra chave DUMP seguida do nome do arquivo script de dump. No exemplo acima, teriamos:

    DUMP meuscript.txt

    Arquivo Script de configurao do Dump dinmico

    O arquivo script de dump um arquivo texto que especifica quando o dump deve ser realizado, a que intervalos repetir o processo, e quais os arquivos que devem ser includos no dump.

    O arquivo script consiste de uma srie de instrues, cada um dos quais representado por uma palavra chave seguida por um espao e um argumento (por exemplo, a palavra chave "!DAY" seguida por um argumento "WED"). Todas as palavras chave comeam com um "!" e no so sensveis ao caixa (isto , !DAY = !Day). Argumentos so cadeias de letras, nmeros e pontuao, no formato apresentado a seguir para cada palavra chave. Espaos e linhas novas dividem as palavras chave e os argumentos. Espaamento e linhas em branco tm formato livre, mas mais simples criar e alterar um script com cada par palavra chave/argumento em uma linha separada. No exemplo apresentado aps a lista de palavras chave, esta regra no foi seguida totalmente, com a incluso de 2 palavras chave na mesma linha apenas para exemplificar.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 5

    A ordem das palavras chave no importa, exceto por duas excesses:

    A penltima palavra chave do arquivo de configurao tem que ser necessariamente "!FILES", seguida por um argumento que representa uma lista dos arquivos a serem salvos (com cada nome de arquivo separado por pelo menos um espao em branco ou uma linha nova), e

    A ltima palavra chave no arquivo script tem que ser "!END", que no tem argumentos.

    Opes de Dump Dinmico

    As palavras chave e argumentos disponveis para definio de um dump dinmico so as seguintes:

    !BLOCK_RETURN

    Faz com que ctdump espere at que o dump dinmico tenha completado antes de retornar. Sem BLOCK_RETURN, ctdump returna to logo o c-tree Server receba o pedido de dump. Ao esperar pelo trmino do processo, BLOCK_RETURN permite ao Administrador do Sistema determinar quando o dump foi completado. Desenvolvedores podem considerar til informar ao Administrador do Sistema quando o backup foi concludo.

    !DATE

    Data para realizar o backup. Se a data j passou, o intervalo !FREQ aplicado para determinar quando o prximo backup ser realizado. Se nem !DATE nem !DAY for especificado, o valor hoje assumido.

    !DAY

    Ao invs de uma data, um dia da semana pode ser usado para programar o dump. Eles devem ser especificados como SUN, MON, TUE, WED, THR, FRI ou SAT. Se nenhuma data (date), horrio (time) ou dia da semana (day) for especificado, ento o dump programado para iniciar imediatamente.

    !DELAY

    Nmero de segundos para espear at que as transaes ativas sejam abortadas.

    Se zero, o c-tree Server no ir abortar transaes ativas. O dump espera indefinidamente at que todas as transaes ativas tenham completado e nenhuma nova transao poder se inicar durante esta espera.

    Caso o valor delay seja maior que zero, o c-tree Server espera at que, ou o tempo (delay) tenha expirado, ou todas as transaes ativas tenham completado. Durante este perodo de espera, novas transaes no podem ser iniciadas. Ao se encerrar a espera (ou as transaes que estavam ativas), o dump dinmico tem incio, e novas transaes podem tambm ser iniciadas. Caso alguma transao no seja completada dentro do intervalo determinado por !DELAY, o c-tree Server aborta estas transaes ainda em progresso, retornando ao aplicativo uma das seguintes mensagens de erro:

    78 (TABN_ERR), indicando que a transao foi abandonada.

    162 (SGON_ERR), um erro genrico, indicando uma quebra na comunicao entre o c-tree Server e o aplicativo.

    !DUMP

    O nome do arquivo ou dispositivo no qual todos os arquivos de backup sero salvos

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 6

    Nota: Se um arquivo com o mesmo nome j existir, ele ser apagado no incio do processo e o novo arquivo de dump substituir o antigo arquivo.

    Nota: Deve haver espao suficiente para o arquivo de dump, que limitado ao tamanho mximo de um arquivo no sistema operacional (2 GB em muitos sistemas). Caso no haja espao suficiente, o dump ir falhar. Uma falha devido a espao em disco insuficiente no ir corromper nada, mas espao adicional deve ser alocado para que o backup possa ser realizado.

    !END

    Encerra as instrues no arquivo script. Coloque !END imediatamente aps a palavra chave !FILES e sua lista de arquivos. !END no recebe nenhum argumento.

    !ENDSEGMENT

    Encerra a lista de segmentos quando se especificam tamanhos e localizao individuais de segmentos.

    !EXT_SIZE

    Altera o valor de extenso padro do segmento de 1GB ou desabilita com NO. Veja a seo o manual de Adminstrao do c-tree Server para maiores detalhes.

    !FILES

    A palavra chave !FILES seguida pelos nomes dos arquivos a serem includos no dump dinmico. Esta deve ser a penltima palavra chave no arquivo de script. Ns recomendamos fortemente que FAIRCOM.FCS seja includa na sua lista. Note que este arquivo contm os usurios e senhas do c-tree Server. Membros de um superfile no podem ser salvos individualmente. O superfile inteiro deve ser copiado; isto , o nome do host do superfile, no de um membro do superfile, colocado na lista de arquivos. Os sinais * e ? so suportados. Veja !RECURSE para outras opes.

    !FREQ

    Horas entre dumps sucessivos. Por exemplo, 24 para repetir o dump uma vez por dia, ou 168 para repetir o dump uma vez por semana.

    !PROTECT e !PROTECT_LOW

    A palavra chave !PROTECT, sem argumentos, adicionada a um script de dump dinmico suspende atualizaes a arquivos no-transacionados enquanto estes esto sendo copiados. Esta opo garante a integridade dos dados do arquivo. No garantido que os indices destes arquivos fiquem sincronizados com o arquivo de dados porque os arquivos no so copiados ao mesmo tempo. Com arquivos transacionados, os ndices permanecem consistentes porque os registros de transaes so utilizados para restaurar os arquivos ao mesmo momento, isto , o tempo efetivo programado de dump. Na maioria das situaes, mais eficiente realizar o dump apenas do arquivo de dados e efetuar o rebuild para recriar os ndices dos arquivos no transacionados.

    A suspenso das atualizaes forada apenas no nvel ISAM (e superior) a menos que a palavra chave !PROTECT_LOW seja utilizada. !PROTECT e !PROTECT_LOW representam opes mutuamente exclusivas. Caso as duas estejam presentes no script, a ltima a ser declarada utilizada.

    Independente de !PROTECT ou !PROTECT_LOW serem utilizadas, atualizaes de resources so suspensos no inicio de chamadas a AddResource, DeleteResource e UpdateResource.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 7

    !RECURSE

    Valor padro NO. Controla a recurso de diretrios ao se utilizar mscaras (wildcards). A palavra chave !RECURSE se aplica apenas ao processar uma entrada !FILES que contenha uma mscara. No caso de uso de MATCH_SUBDIR, alm da necessidade do nome do arquivo concordar com a mascara, apenas nomes de diretrios que coincidam com a mscara sero considerados para recurso.

    !SEGMENT

    Veja mais detalhes no manual de Administrao do c-tree Server.

    !TIME

    Hora do dia, em um relgio de 24 horas, em que o backup deve se iniciar. Se a hora j passou, ento o intervalo !FREQ ser usado para determinar a programao do prximo backup. Se um comando !DATE ou !DAY especificado sem uma referncia hora (!TIME), ento o valor padro de 23:59:59 adotado.

    Se nem hora, nem dia, nem data forem especificados, o dump iniciado imediatamente.

    Script Exemplo

    !TIME 23:00:00!day Sun

    !Dump SYSTEM.BAK

    !Delay 600

    !FREQ 168

    !FILES FAIRCOM.FCS

    !END

    Este script programa um dump semanal s 23:00 hs nas noites de domingo. O nico arquivo incluido no dump "FAIRCOM.FCS". O sistema ir esperar at 23:10 (isto , espera de 600 segundos, aps o horrio programado de 23:00 hs) para que todas as transaes ativas se completem e ento ele ir abortar qualquer transao ainda ativa e iniciar o dump efetivamente. Os dados copiados sero salvos em um arquivo chamado SYSTEM.BAK.

    Nota: O arquivo de configurao do c-tree Server tambm pode controlar a forma como transaes tardias podem so abortadas. Em particular, veja a descrio da palavra chave PREIMG_DUMP.

    Nota: O servidor abre o arquivo de script de dump dinmico quando o dump programado, l seu contedo e ento o fecha. No momento de execuo do dump, o servidor abre o script novamente, l seu contedo e ento o fecha novamente antes de iniciar o procedimento de cpia dos arquivos.

    Programando um Dump Dinmico Usando o Script

    H duas formas de programar um dump dinmico:

    O arquivo de configurao do c-tree Server pode ser usado para programar dumps dinmicos. No arquivo de configurao, a palavra chave DUMP seguida pelo nome do arquivo script definindo o dump.

    Utilize o utilitrio de dump dinmico, ctdump, que um utilitrio especfico para que ser utilizado pelo Administrador enquanto o servidor est ativo.

    Para usar o utilitrio ctdump para programar um Dump dinmico, use o seguinte procedimento:

    1. Com o c-tree Server operacional, inicie o utilitrio ctdump como qualquer outro programa no ambiente.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 8

    2. Entre com a senha para ADMIN.

    3. Entre com o nome do c-tree Server, caso o servidor tenha recebido um nome diferente do padro (FAIRCOMS). Veja a Seo 6.3 Basic Configuration Options, do manual de Administrao do c-tree Server para mais informaes sobre a palavra chave SERVER_NAME.

    4. Entre com o nome do arquivo script de Dump dinmico.

    O c-tree Server confirma que programou o Dump dinmico solicitado.

    Arquivos espelhados (Mirrored) podem ser backupeados durante o dump dinmico e sua restaurao deve seguir conforme indicado a seguir:

    Se um arquivo espelhado deve ser aberto para uso por um aplicativo durante o dump dinmico, o script de dump deve conter o nome "espelhado", isto , o nome com a barra vertical ('|'). Por exemplo, sales.dat|msales.dat.

    Se isto no for feito, e o dump dinmico abre o arquivo primrio, uma vez que ele no esteja em uso, um cliente que abra a combinao primrio|espelhado receber o erro MNOT_ERR (arquivo j est aberto, mas sem espelhamento). Para evitar que os usurios sejam bloqueados ao tentar acesso ao arquivo, abra arquivos primrios com seu espelhamento quando definidos para operao de dump dinmico.

    O programa de restauro de dump recria tanto o arquivo primrio quanto o espelhado. Ele produz o arquivo primrio, e o copia sobre o arquivo espelhado.

    Uma vez que um dump dinmico tenha se completado, os arquivos podem ser usados para restauro do dump e/ou operaes de Rollback.

    Desprogramando (ou encerrando) um Dump dinmico

    Para encerrar um dump dinmico programado, execute o utilitrio ctadmn e liste os clientes ativos. O dump dinmico ir aparecer com o COMM PROTOCOL indicando DYNAMIC DUMP. Voc pode utilizar a opo kill clients para encerrar o processo. Isto permite que um procedimento de backup seja cancelado (killed) aps ter sido submetido ao c-tree Server.

    2.2 ctrdmp Restaurando backups do c-tree Server Caso ocorra uma falha catastrfica no sistema, a primeira operao esperada do c-tree Server ao ser reiniciado que realize a recuperao automtica dos arquivos TRNLOG. Caso ocorra algum problema com os arquivos de registros (*.FCS) ou com os arquivos de dados propriamente ditos, ou ainda por alguma outra razo que torne impossvel a realizao da recuperao automtica, ser necessrio utilizar os dados de um dump dinmico ou de um backup completo para restaurar o sistema a um estado consistente e bem definido. Este processo conhecido como recuperao de um dump dinmico.

    Nota: Se voc realiza seu prprio backup do sistema quando o c-tree Server no est em operao e inclui o arquivo FAIRCOM.FCS, voc pode restaurar a partir deste backup no evento de uma falha catastrfica.

    Recuperao de arquivos TRNLOG utilizando recuperao automtica

    Caso o c-tree Server seja desligado de forma anormal, arquivos TRNLOG podem ser restaurados a um estado transacional consistente simplesmente reiniciando-se o servidor. O c-tree Server verifica que houve um desligamento imprprio e realiza a recuperao automtica, aplicando as mudanas apropriadas para os arquivos TRNLOG, baseado na atividade gravada nos arquivos de registro.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 9

    Se por alguma razo a recuperao automtica no consegue finalizar corretamente, arquivos TRNLOG podem se encontrar em um estado inconsistente. Backups peridicos de arquivos de dados e ndices TRNLOG podem ajudar a minimizar os problemas decorrentes de tais situaes.

    Arquivos PREIMG e no transacionados no contam com o benefcio de recuperao automtica, assim, caso ocorra uma falha grave, eles devem ser recuperados ou restaurados a partir de um backup. As sees seguintes discutem opes de restaurao de dados.

    Nota Microsiga: o Protheus, ao menos at sua verso comercial de Abril de 2008, utiliza uma srie de arquivos temporrios que so transacionados (TRNLOG). Durante o processamento normal do Protheus, alguns destes arquivos podem ser removidos. Porm, antes que estes tenham sido removidos, algumas atualizaes podem ter sido registradas nos logs do c-tree Server. Quando o c-tree Server tenta realizar a recuperao automtica e desfazer/refazer alguma transao nestes arquivos que foram removidos, ele encontra um erro e interrompe a recuperao automtica. Neste caso, a seguinte mensagem ser impressa no arquivo CTSTATUS.FCS:

    *** Recovery may proceed by adding 'SKIP_MISSING_FILES YES' ***

    *** to the server configuration file. ***

    Para evitar este comportamento, a palavra chave SKIP_MISSING_FILES YES deve ser includa no arquivo de configurao do c-tree Server. Note porm que o c-tree Server no ter, neste caso, como determinar se o arquivo que no foi encontrada era temporrio ou no. O arquivo padro sugerido pela Microsiga inclui esta palavra chave.

    2.3 Recuperao do Dump Dinmico As sees a seguir discutem tpicos especficos sobre a recuperao ou restauro do dump.

    Palavras Chave adicionais para Script de Recuperao

    Um script de recuperao de Dump usado com o utilitrio de restaurao. Este script pode ser o mesmo usado para criar o Dump dinmico. As palavras chave a seguir, com argumentos no mesmo formato discutido acima, controlam o processo de recuperao sem causar nenhum efeito no dump em si (em outras palavras, no iro interferir no processo de dump caso estejam presentes ao se realizar o backup):

    !COMMENT padro: No est presente

    Informa ao c-tree Server que o restante do arquivo script serve apenas para efeito de documentao e no deve ser levado em conta no processamento da operao. Palavras chave colocadas aps !COMMENT no sero consideradas. Desta forma, deve ser colocada aps a palavra chave !END.

    !DELETE padro: !SKIP

    O oposto de !SKIP. Faz com que arquivos existentes no diretrio de destino da restaurao sejam substituidos pelos arquivos contidos no dump.

    !#FCB padro: 100 arquivos

    O nmero desejado de blocos de controle de arquivos. Deve ser superior ao nmero de arquivos (dados + ndice) sendo copiados. Note-se que superfiles contam como 2 FCBs + 1 para cada membro de dados + 1 para cada ndice.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 10

    Nota Microsiga: Caso o usurio realize o dump de todos os arquivos de dados e ndices, o total de arquivos (em particular os sx* e six*) superam em muito este total padro. Um valor razovel pode ser da ordem de 3000 para !#FCB, dependendo de sua instalao e arquivos selecionados para o dump. Uma forma de verificar o nmero de blocos de controle de arquivos em uso pelo c-tree durante operao normal utilizando o utilitrio ctadmn na opo Server Configuration. Verifique, durante operao normal do sistema, o nmero de c-tree Plus file control blocks in use (conforme abaixo) e utilize um nmero significativamente maior ao apresentado em seu script. Considere, entretanto, que durante a operao, cada ndice estar contando como um bloco de controle, e eventualmente no seu sistema voc poder efetuar o backup apenas dos dados (.dtc) e permitir que o Protheus faa a reconstruo dos ndices automaticamente.

    c-tree Plus files opened by system = 15

    physical c-tree Plus files open = 6

    c-tree Plus file control blocks in use = 18

    !FORWARD_ROLL padro: Roll forward no realizado

    Se voc planeja realizar um roll forward aps a restaurao do dump, esta palavra chave tem que ser includa no script de recuperao. A palavra chave ignorada durante a realizao do dump dinmico (backup). Quando a palavra chave encontra-se presente durante o restauro do dump, ela faz com que arquivos de registros de transaes sejam restaurados com a extenso de arquivamenteo (isto , S*.FCA). Certifique-se de renomear os arquivos de S*.FCA para S*.FCS antes de iniciar o forward roll. Veja a seo Running the Forward Dump Utility for System Recovery do Manual de Administrao do c-tree Server para mais informaes a este respeito.

    !PAGE_SIZE padro: 8192 bytes

    O nmero de bytes por pgina de buffer, arredondado (para baixo) para um mltiplo de 128.

    Nota: necessrio apenas se o arquivo de configurao do c-tree Server altera o valor padro de page size, o que tipicamente no o caso com o Protheus.

    !REDIRECT padro: nenhum redirecionamento.

    Redireciona os arquivos sendo restaurados do caminho (path) antigo para o novo caminho. Deve-se respeitar a grafia (maisculas/minsculas) ao se preparar o redirecionamento. O utilitrio ctidmp pode ser utilizado para fazer uma verificao dos arquivos salvos no dump e se confirmar a grafia do path dos arquivos. Veja a seo Define Alternative Restore Destinations do Manual de Administrao do c-tree Server para mais informaes a este respeito.

    !SKIP padro: !SKIP

    No restaure nenhum arquivo listado na palavra chave !FILES se o mesmo j existir no destino. Oposto de !Delete.

    Nota: H diferenas importantes entre o uso de !SKIP com um restauro e com um rollback (veja a discusso a respeito na seo System Rollback no manual de Administrao do c-tree Server). No caso de um rollback, no h como se confirmar a consistncia do resultado final se !SKIP for utilizado.

    Nota: Apenas os arquivos especificados pela palavra chave !FILES constantes no script de recuperao sero restaurados. No necessrio se restaurar todos os arquivos contidos em um dump.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 11

    Executando o utilitrio de Restaurao (ctrdmp)

    O utilitrio ctrdmp realiza a restaurao de um dump dinmico. ctrdmp na verdade uma verso customizada do c-tree Server, assim, h alguns pontos importantes a ter em mente ao execut-lo:

    1. Certifiquese de que o c-tree Server que est sendo restaurado no esteja executando quando ctrdmp inicia, uma vez que dois c-tree Servers operando simultaneamente interferem um com o outro. Como sugesto, ctrdmp deve ou ser executado em uma mquina separada, ou os arquivos devem ser redirecionados para um diretrio diferente do diretrio de trabalho.

    2. Como trata-se de um c-tree Server, ctrdmp gera verses temporrias de todos os arquivos de sistema associados com um c-tree Server (isto , arquivos com a extenso "FCS"). Portanto, o utilitrio ctrdmp deve ser executados a partir de um diretrio diferente do diretrio de trabalho onde o c-tree Server reside. Assim, os arquivos de sistema criados pelo programa de restaurao no sobreescrevem os arquivos de trabalho do c-tree Server. Os arquivos temporrios so automaticamente apagados quando o processo de restaurao completa com sucesso, a menos que !FORWARD_ROLL esteja no script de recuperao. Neste caso, os arquivos S*.FCS sero renomeados para S*.FCA e mantidos no diretrio.

    Aps adotar estes cuidados preliminares, siga os seguintes passos para restaurar de um dump dinmico:

    1. Inicie ctrdmp da mesma forma que qualquer programa normal no ambiente.

    2. Quando solicitado, entre com o nome do arquivo script de dump dinmico a ser usado para a recuperao.

    Nota: O mesmo arquivo script usado para realizar o dump pode ser usado para restaurar o dump. Caso um rollforward esteja nos planos, inclua a palavra chave !FORWARD_ROLL. Note que, embora o mesmo script possa ser utilizado, isto indica que um script diferente tambm pode ser utilizado. Por exemplo, voc pode alterar o script para restaurar apenas parte dos arquivos originalmente salvos.

    O restauro do dump inicia automaticamente e produz uma srie de mensagens informando o progresso da recuperao.

    1. Cada arquivo restaurado ser listado medida que seja finalizado.

    2. Ao final do processo de restaurao de todos os arquivos especificados, uma mensagem apresentada indicando que os registros de recuperao (isto , os transaction logs ou recovery logs) foram verificados e os arquivos recuperados foram restaurados ao estado em em que se encontravam no instante em que o dump dinmico foi iniciado.

    3. Uma mensagem indica que o processo de recuperao do dump foi encerrado com sucesso.

    Definindo Destinos Alternativos de Recuperao

    Por padro, a restaurao do dump dinmico retorna os arquivos aos seus diretrios originais. H uma forma conveniente de "redirecionar" o destino dos dados durante a restaurao do dump dinmico. Desenvolvedores podem obter uma foto (snapshot) da base de dados de um cliente e restaur-la a um destino alternativo para testes ou outros propsitos.

    O script de dump dinmico usado durante a restaurao pode conter uma ou mais das seguintes diretivas de redirecionamento:

    !REDIRECT

    Nota: Para especificar uma cadeia vazia para um dos argumentos de !REDIRECT, utilize um par de aspas duplas ("").

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 12

    Exemplos:

    As seguintes diretivas fazem com que arquivos que foram copiados usando um nome absoluto sejam restaurados em um diretrio temporrio (relativo ao diretrio corrente durante a restaurao) e arquivos que foram copiados do diretrio local (relativo ao diretrio de trabalho do Servidor) sejam restaurados em um diretrio absoluto \temp\local:

    !REDIRECT \ temp\

    !REDIRECT local \ \temp\local\

    A diretiva abaixo ir adicionar temp\ a todos os arquivos restaurados:

    !REDIRECT " " temp\

    A prxima diretiva ir remover d: de qualquer arquivo restaurado iniciando com d: (ou D:):

    !REDIRECT d: ""

    Nota: A palavra chave !REDIRECT afeta apenas a operao de restauro e ignorada quando o script usado para realizar o processo de backup.

    2.4 ctfdmp Avanando o Backup no tempo (Rollforward) O utilitrio de forward dump, ctfdmp, pode ser utilizado para recuperar de uma falha catastrfica seguindo a execuo de um dump dinmico ou um backup offline, e em seguida posicionar os registros em um momento futuro em relao ao momento do backup.

    Para se preparar para utilizar o utilitrio ctfdmp, siga os seguintes passos:

    1. Inclua a opo de configurao KEEP_LOGS no arquivo de configurao do c-tree Server. Esta configurao faz com que o servidor mantenha todos os arquivos de registro. Note que por default, o c-tree Server mantm apenas os 4 registros de transaes mais recentes, apagando o quinto mais antigo ao criar um novo. Com a palavra chave KEEP_LOGS, o c-tree Server ir renomear este arquivo que seria apagado como inativo (extenso .FCA, em substituio a FCS). A nica utilidade deste arquivo em eventuais operaes do tipo rollforward.

    2. Realize dumps dinmicos ou backups offline peridicos. Os seguintes arquivos devem ser includos em um backup completo:

    Os arquivos de dados e ndices que se deseja salvar.

    O arquivo FAIRCOM.FCS

    Os arquivos S*.FCS (includos automaticamente no dump dinmico).

    3. Aps um backup completo, salve todos os arquivos de registro de transaes criados at o prximo backup completo. Arquivos de transao ativos tm nomes do tipo L.FCS, com o nmero sendo incrementado por 1 para cada novo registro de transaes. Como especificado na chave de configurao KEEP_LOGS, quando o c-tree Server cria um novo arquivo de registro, ele renomeia o arquivo de registro antigo sendo substitudo de "L.FCS" para "L.FCA" e salva o mesmo como um arquivo de registro de transaes inativo.

    Se o sistema sofre uma falha catastrfica e os preparativos foram realizados conforme mencionado, os dados podem ser recuperados da seguinte forma:

    1. Restaure o contedo do backup mais recente, que pode ser um dump dinmico ou um backup padro (offline), desde que ele inclua todos os arquivos listados no passo 2 acima.

  • Configurao do Dump dinmico

    www.faircom.com All Rights Reserved 13

    Nota: Se a restaurao for de um dump dinmico, certifique-se de incluir a palavra chave !FORWARD_ROLL no script de recuperao de dump. Esta palavra chave faz com que um arquivo especfico de incio de transaes seja criado para os registros recuperados. Este arquivo ser denominado S*.FCA. Ao trmino da restaurao, renomeie a extenso deste arquivo para FCS.

    2. Carregue todos os arquivos de registro de transaes salvos entre o momento da realizao do backup e o momento da falha catastrfica, e renomeie todos os arquivos inativos neste grupo (isto , arquivos com a extenso FCA), fornecendo a eles uma extenso de arquivos de registro ativos (isto , arquivos com a extenso FCS).

    3. Inicie o utilitrio de forward dump, ctfdmp, como qualquer outro programa no ambiente. O forward dump ir realizar as operaes sem a necessidade de nenhuma outra instruo.

    Nota: Apenas arquivos transacionados sero atualizados alm do estado que tinham quando o backup foi realizado.

    Para uma descrio mais detalhada sobre como utilizar o utilitrio ctfdmp (e outros pontos sobre rollforward), incluindo argumentos de linha de comando, veja o c-tree Server Administrator's Guide.

    2.4.1 Rolling Back do Backup

    Rollback do sistema restaura o sistema a seu status conforme especificado em um determinado momento. Por exemplo, se o processamento da folha de pagamentos de uma empresa se inicia s 13 hs, e alguma coisa de errado ocorre durante a tarde, um rollback do sistema pode restaur-lo ao seu estado das 13 hs, e o procedimento pode ser reiniciado. Caso outros usurios estivessem utilizando outros arquivos transacionados durante a tarde, estes arquivos tambm sero restaurados ao seu status de 13 hs. O administrador deve estar informado de todos os arquivos e dados que sero afetados antes de iniciar o processo de rollback para evitar a interferncia com mltiplos e no relacionados sistemas que estejam compartilhando o c-tree Server.

    A execuo de um rollback envolve a execuo do utilitrio ctrdmp, com a utilizao de um dump dinmico com arquivo script contendo palavras chave descrevendo como o rollback deve ser processado. Se a primeira linha do arquivo de configurao !ROLLBACK, o arquivo script utilizado para o processo de rollback. Caso contrrio, o script c considerado um script de dump dinmico e utilizado para a recuperao de um dump.

    Aviso: Da mesma forma que na recuperao de um dump, certifique-se de que ctrdmp seja executado em um diretrio diferente do utilizado para gravao dos arquivos de registro do servidor, e que os arquivos a serem restaurados no estejam em utilizao.

  • www.faircom.com All Rights Reserved 14

    Chapter 3

    3. Reconstruindo ndices e Compactando arquivos de dados

    Dependendo de como sejam as opes utilizadas na criao dos ndices de arquivos c-tree, uma falha catastrfica pode levar a que os ndices tenham que ser reconstrudos (rebuild), e suas chaves obtidas a partir do arquivo de dados. Como ndices TRNLOG so usualmente recuperados automaticamente pelo servidor, eles geralmente no necessitam ser reconstrudos, a no ser que fiquem danificados no processo catastrfico. ndices PREIMG e no transacionados requerem o rebuild aps a falha catastrfica porque quaisquer atualizaes que estivessem em cache (e que no tenham sido escritas em disco at o momento da falha), estaro perdidas, e os arquivos de dados e ndices podero ter perdido sua sincronia.

    Uma tentativa de abertura de arquivo que falha com erro FCRP_ERR (14) indica que o update flag do arquivo est ativado, o que indica que o mesmo foi atualizado, mas no foi fechado corretamente e pode estar desatualizado ou fora de sincronismo com o arquivo de dados. Nesta situao, o arquivo pode ser restaurado a um estado correto com a reconstruo dos ndices.

    Nota Microsiga: O Protheus realiza esta operao automaticamente.

    O objetivo principal de um rebuild corrigir erros que ocorreram com arquivos de ndices. Quando ocorrem problemas com os arquivos de dados (por exemplo, devido a uma falha catastrfica que danifica o arquivo de dados), o mais indicado a criao de uma nova cpia do arquivo de dados contendo os registros ativos que podem ser recuperados do arquivo danificado. Isto pode ser realizado atravs da compactao dos dados.

    Nota Microsiga: Este procedimento tambm realizado pela Microsiga com o objetivo de remover registros apagados pelo usurio do sistema. Note um ponto importante: o c-tree automaticamente aproveita o espao dos registros que so apagados do sistema. A funo pack do AdvPl percorre a tabela e apaga fisicamente os registros marcados como apagados pelo usurio. Em seguida, a funo realiza a compactao do arquivo. A funo zap apaga todos os registros da tabela. Note que a criao de uma tabela vazia seria muitas vezes mais eficiente que esta chamada a zap.

    Como esta operao de compactao produz um novo arquivo, durante o processo deve haver disponvel em disco o dobro de espao que o tamanho do arquivo a ser compactado. O processo de compactao realiza o rebuild dos ndices automaticamente ao seu final.

    Checklist de recuperao do c-tree Server

    Os passos recomendados para que o procedimento de recuperao possa ser executado no evento de uma falha catastrfica so os seguintes:

    Planejar procedimentos para o caso de o servidor terminar de forma anormal. Estar apto a realizar a recuperao automtica de arquivos TRNLOG e restaurar os arquivos PREIMG e no transacionados atravs da recuperao do backup ou reconstruo dos arquivos.

    Planejar para situaes em que a recuperao automtica falhe. Estar apto a recriar arquivos TRNLOG ou restaurar estes arquivos de backups se necessrio.

  • Reconstruindo ndices e Compactando arquivos de dados

    www.faircom.com All Rights Reserved 15

    Verificar o estado dos arquivos PREIMG e no-transacionados, abrindo estes arquivos para verificar se h algum problema.

    Realizar o rebuild dos arquivos se necessrio (ctrbldif pode ser utilizado com este objetivo).

    Compactar os arquivos se necessrio (ctcmpcif pode ser utilizado com este objetivo).

  • www.faircom.com All Rights Reserved 16

    Chapter 4

    4. Outras opes de Backup

    Alm do backup online, conhecido como dump dinmico, pode-se realizar um backup offline com o c-tree Server, conforme descrito a seguir.

    Nota: a cpia pura e simples dos arquivos controlados pelo c-tree Server enquanto o c-tree Server est operacional e com os arquivos abertos no representar um backup do sistema porque o c-tree Server mantm dados em cache durante sua operao, e os arquivos de log podem estar sendo alterados durante a cpia. Alm disso, os arquivos que tenham sido alterados estaro com uma flag ativa indicando que foram alterados. A tentativa de abrir um arquivo com tal flag ativa resultar no erro FCRP_ERR (14) indicando que o arquivo est corrompido.

    Opes de Backup Offline

    Um backup offline um backup realizado com a interrupo do uso de algum ou todos os dados do c-tree Server. Um backup offline pode envolver a parada do servidor, ou o controle de acesso aos arquivos enquanto os mesmos so gravados. O ponto importante a se notar que o backup offline envolve tipicamente uma operao de cpia de arquivos, e assim, os arquivos a ser copiados tm que estar fechados antes do incio do processo, para garantir que todos os dados em cache foram escritos no disco. Como os arquivos esto fechados quando copiados, esta tcnica funciona bem para arquivos TRNLOG, PREIMG e no transacionados, sem perda de consistncia transacional para os arquivos TRNLOG e PREIMG.

    Os passos gerais para realizar o backup offline so os seguintes:

    1. Fechar os arquivos a serem copiados.

    2. Proibir o acesso aos arquivos sendo copiados.

    3. Efetuar o backup dos arquivos utilizando um utilitrio de cpia de arquivos do sistema.

    4. Liberar o acesso aos arquivos.

    As sees seguintes discutem dois mtodos de backup offline e como estes passos so realizados em cada caso.

    Backup Offline com o servidor desligado

    Em algumas circunstncias, o sistema projetado de tal forma que permite que o c-tree Server seja desligado para a realizao do backup. Por exemplo, pode ser que o sistema fique indisponvel em perodos regulares (no opera noite, por exemplo). Em tais situaes, arquivos c-tree podem ser gravados desligando-se o servidor e copiando-se os arquivos de dados e ndices com utilitrios de backup.

    Este o mais simples dos dois mtodos de backup offline. Desligar o servidor garante que os arquivos a serem gravados estejam fechados (passo 1 mencionado acima) e garante que os mesmos no sero abertos durante o processo (passo 2). Aps o trmino do processo (passo 3), religar o servidor garante um novo acesso aos arquivos (passo 4).

  • Outras opes de Backup

    www.faircom.com All Rights Reserved 17

    Backup Offline com o servidor operacional

    Outra forma de realizar o backup offline garantir que os arquivos a ser gravados estejam inacessveis aos usurios, enquanto o servidor permanece operando. Esta opo de backup apropriada para arquivos que podem ser fechados e gravados sem afetar a disponibilidade do sistema. Por exemplo, efetuar o backup dos arquivos que so utilizados apenas por um departamento, enquanto o mesmo no est em operao, ou no caso de se trabalhar com arquivos particionados, sendo que algumas das parties podem ser removidas para backup. Outra possibilidade que o aplicativo mantenha manualmente conjuntos de arquivos de tal forma que alguns arquivos possam ser fechados e gravados periodicamente.

    Este tipo de backup offline requer que o aplicativo tenha condies de controlar o acesso dos clientes aos arquivos que sero gravados. Enquanto o servidor continua operacional, os arquivos a serem copiados tm que estar fechados (passo 1), no podem ser abertos durante o processo (passo 2), e aps o trmino do processo, os arquivos devem ser disponibilizados novamente (passo 4).

    Para implementar estes passos, os sistemas devem ser projetados de tal forma que os clientes periodicamente fecham os arquivos para propsitos de backup, ou o c-tree Server pode ser utilizado para controlar o acesso aos arquivos. O c tree Server fornece a possibilidade de controlar o acesso atravs da funo Security. Quatro modos possibilitam que o usurio ADMIN bloqueie o acesso temporariamente ao servidor de outros usurios, alm de controlar algumas threads internas do servidor como apresentado na seguinte tabela:

    Modo Descrio

    SEC_BLOCK_NONADM Bloqueia o logon de usurios que no sejam do grupo ADMIN

    SEC_BLOCK_NONSUP Bloqueia o logon de todos os usurios, exceto ADMIN

    SEC_BLOCK_KILL Bloqueia logon de todos os usurios, exceto ADMIN, e cancela (kill) todos os demais usurios (suspende o servidor)

    SEC_BLOCK_OFF Desativa o bloqueio

    SEC_BLOCK_NONADM e SEC_BLOCK_NONSUP podem ser utilizadas para bloquear tentativas de logon por parte dos clientes. Estas opes no afetam as conexes dos clientes ativos, mas probe novas conexes com o servidor.

    SEC_BLOCK_KILL pode ser utilizada para suspender efetivamente o servidor. Esta opo bloqueia todos os logins, exceto a partir da conta do super usurio, ADMIN e encerra todas as conexes clientes ativas, fazendo com que o servidor feche todos os arquivos abertos e suspenda as threads internas. Esta opo suspende o uso do c-tree Server at que uma chamada a Security com SEC_BLOCK_OFF seja realizada.

    Um sistema pode desejar limitar o acesso a apenas alguns arquivos, ao invs de suspender a operao do servidor conforme descrito acima. Em tais situaes, o aplicativo tem que implementar seu conjunto prprio de sinalizao para que os clientes fechem os arquivos e notific-los novamente quando puderem reabri-los. Alm disso, o aplicativo tem que garantir que as threads internas no tenham acesso aos arquivos, enquanto estes esto sendo gravados. O utilitrio ctmove pode ser utilizado para mover ou renomear arquivos para garantir que as threads internas no modifiquem os arquivos durante sua gravao. O procedimento de backup nesta situao o seguinte:

    1. Sinalizar para que os clientes fechem os arquivos a serem gravados

    2. Renomear ou mover os arquivos com o utilitrio ctmove.

    3. Gravar os arquivos com um utilitrio de cpia do sistema.

    4. Sinalizar para os clientes reabrirem os arquivos.

  • Outras opes de Backup

    www.faircom.com All Rights Reserved 18

    Nota Microsiga: Por hora, este procedimento no indicado, pois o Protheus realiza o acesso ao c-tree Server com todos os usurios utilizando a conta do super-usurio, ADMIN.

    Restaurando de Backup Offline

    Um backup offline envolve a gravao dos arquivos enquanto estes encontram-se fechados. Arquivos gravados desta forma encontram-se em um estado correto e podem ser restaurados simplesmente realizando-se uma cpia do backup para os diretrios apropriados. Caso esteja-se sobre-escrevendo arquivos existents, certifique-se de que os arquivos sendo sobre-escritos estejam fechados antes de iniciar o processo. Ao trmino da cpia, os arquivos esto prontos para uso.

    Online Disk Snapshot

    Sistemas que tm suporte a online disk snapshot fornecem uma forma de realizar o backup de arquivos TRNLOG transparentemente, enquanto os mesmos encontram-se em uso. Para restaurar arquivos de um online disk snapshot, os arquivos tm que ser restaurados a um estado transacional consistente utilizando-se a recuperao automtica do c-tree Server.

    Para realizar a recuperao automtica em um online disk snapshot, faa com que os arquivos se tornem disponveis para o sistema (montando um driver ou copiando arquivos do meio de backup para um drive do sistema). Se o aplicativo utiliza caminhos (paths) completos ao abrir os arquivos de dados e ndices, os arquivos tm que ser colocados no mesmo diretrio como em um sistema de produo, para garantir que a recuperao automtica abra corretamente os arquivos.

    Inicie o c-tree Server utilizando as mesmas opes de configurao utilizadas no sistema em produo. O servidor realizar a recuperao automtica e anotar a finalizao da mesma no arquivo CTSTATUS.FCS. Ao trmino deste processo, os arquivos esto prontos para uso.

    A deciso sobre quando realizar uma recuperao automtica nos arquivos depende da carga do sistema e disponibilidade de recursos. Uma possibilidade realizar a recuperao automtica nos arquivos to logo o backup seja realizado, assim os arquivos ficam prontos para uso assim que for necessrio. Esta alternativa tem a vantagem de minimizar o tempo a ser gasto para restaurar o sistema aps um erro catastrfico, porque o processo de recuperao foi concludo a priori. Outra possibilidade esperar at que se torne necessria a utilizao dos arquivos para realizar a recuperao automtica.

  • www.faircom.com All Rights Reserved 19

    Chapter 5

    5. Resoluo de problemas especficos de Dump dinmico com o c-tree Server

    Dump Dinmico No Pode ser Agendado

    Se a configurao do servidor inclui a palavra chave DUMP, o servidor abre o arquivo script de dump dinmico e tenta programar o dump dinmico. Se o dump no pode ser agendado (por exemplo, devido a um arquivo de dump ausente, ou um arquivo de dump incorreto ou com palavras chaves irreconhecveis), o servidor registra mensagens de erro em CTSTATUS.FCS e desliga. Abaixo temos um exemplo de erros registrados em CTSTATUS.FCS quando o dump dinmico no pode ser agendado na inicializao porque o arquivo script no existe:

    Thu Sep 25 16:48:43 2003

    - User# 01 DD: could not open script file...: 12

    Thu Sep 25 16:48:43 2003

    - User# 01 my.scr: 12

    Thu Sep 25 16:48:43 2003

    - User# 01 Could not schedule Dump dinmico...: 5

    Thu Sep 25 16:48:43 2003

    - User# 01 my.scr: 5

    Para solucionar este tipo de falha, verifique os erros registrados em CTSTATUS.FCS para entender a causa especfica da falha. Corrija o problema que a causou e reinicie o servidor.

    Nmero de Arquivos Ativos de Registro de Transaes Cresce Inesperadamente

    O nmero de arquivos ativos de registro de transaes necessrio para suportar a operao do c-tree Server normalmente 4. Cada vez que o servidor cria um novo arquivo de registro, ele determina se precisa ou no apagar o arquivo mais antigo de registro (ou torn-lo inativo, se a palavra chave KEEP_LOGS foi includa na configurao do servidor). Diversas condies podem fazer com que o servidor mantenha mais que 4 arquivos de registro. importante para o administrador do servidor verificar casos em que o nmero de arquivos ativos cresce de forma significativa e entender a causa e se uma ao se faz necessria.

    Quando o nmero de arquivos de registro est prestes a crescer, a seguinte mensagem gravada em CTSTATUS.FCS:

    The number of active log files increased to

    onde o novo nmero de arquivos de registro.

    As situaes mais importantes em que a manuteno dos arquivos mais antigos como ativos se fazem necessrias so:

    Aumentar CHECKPOINT_FLUSH para retardar o flushing dos buffers associados com as transaes committed:

    Ao criar um novo registro de transaes, o c-tree Server determina a vulnerabilidade da recuperao devido aos buffers no flushed associados com transaes commited e mantm o nmero necessrio de arquivos de registros ativos. A seguinte frmula pode ser usada para estimar o nmero de arquivos de registro necessrios para suportar pginas no flushed de buffer e cache baseadas na configurao do servidor:

  • Resoluo de problemas especficos de Dump dinmico com o c-tree Server

    www.faircom.com All Rights Reserved 20

    Sejam:

    CPF = valor de CHECKPOINT_FLUSH (default 2)

    CPL = nmero de checkpoints por registro (tipicamente 3 e no menos que 3)

    MNL = nmero mnimo de registros para atender s pginas no fluhed

    Ento:

    MNL = ((CPF + CPL - 1) / CPL) + 2, onde uma diviso de inteiros utilizada.

    Por exemplo:

    CPF=2, CPL=3 => MNL = 3 (Mas o servidor requer pelo menos 4)

    CPF=7, CPL=3 => MNL = 5

    CPF=9, CPL=3 => MNL = 5

    CPF=10, CPL=3 => MNL = 6

    Uma transao pendente que comeou h muitos registros atrs e ainda no foi committed ou abortada:

    Diferentemente de CHECKPOINT_FLUSH, que leva a um limite bem-definido no crescimento dos arquivos de registro de transaes, uma transao que no seja commited pode levar a um crescimento ilimitado nos arquivos de registro de transaes. Por exemplo, se um cliente inicia uma transao e ento deixa seu terminal enquanto outros clientes executam transaes, as transaes dos demais clientes podem ser suficientes para encher os arquivos de registro. Quando o servidor cria novos arquivos de registro ele verifica que a transao do cliente inicial ainda no foi commited. O servidor tem que manter o registro em que a transao deste cliente se iniciou at que a mesma seja commited ou abortada. Por esta razo, importante monitorar o nmero de arquivos de registro de transaes ativos. Caso ocorra o crescimento inesperado de longas transaes, o utilitrio ctadmn pode ser usado para listar os clientes conectados e o tempo de suas transaes e encerrar as conexes se necessrio.

    Dumps Dinmicos:

    Um dump dinmico semelhante ao caso de longas transaes pendentes acima. O dump dinmico tem que manter todos os registros de transaes desde o incio at o final do dump para incluir no arquivo de strem do dump toda a atividade transacional que ocorreu durante o processo. Se arquivos muito grandes forem includos no processo de dump, o dump dinmico pode levar um tempo considervel. Dependendo da quantidade de transaes entre o incio e trmino do processo de dump, o nmero de arquivos de registros ativos que devem ser mantidos durante o processo pode ser grande.

    O c-tree Server registra no arquivo CTSTATUS.FCS uma explicao sobre as condies que levaram ao crescimento do nmero de arquivos ativos. Quando o crescimento devido a uma transao pendente, o servidor procura identificar o usurio e o n associado com a transao.

    Baseado na causa do aumento no nmero de arquivos de registro ativos mostrado em CTSTATUS.FCS, o administrador do servidor pode tomar as aes apropriadas, se for o caso. Por exemplo, uma transao pendente h muito tempo pode ser abortada utilizando-se o utilitrio ctadmn e encerrando-se a conexo do cliente que iniciou a transao, ou um dump dinmico pode ser terminado tambm com este utilitrio.

    Falha no Dump dinmico

    Uma operao de backup do tipo dump dinmico pode falhar por algumas razes. A seguir, temos algumas das possveis causas para falha no processo de dump dinmico:

    O arquivo de script do dump no existe ou encontra-se inacessvel.

    O script de dump contm opes invlidas.

    Um ou mais arquivos especificados na lista de arquivos de dump no pode ser aberto.

    Ocorre um erro ao se escrever no arquivo stream de dump (Por exemplo, fim de espao disponvel em disco, ou caminho (path) invlido).

  • Resoluo de problemas especficos de Dump dinmico com o c-tree Server

    www.faircom.com All Rights Reserved 21

    O c-tree Server registra mensagens e cdigos de erro relativos ao dump dinmico ao arquivo de registro de status, CTSTATUS.FCS. Caso um dump dinmico falhe, examine o arquivo de registro de status.

    O c-tree Server pode ser configurado para registrar mais detalhes do progresso do dump dinmico no arquivo de registro de status, incluindo um registro para cada arquivo includo no dump, adicionando-se a palavra chave DIAGNOSTICS DYNDUMP_LOG ao arquivo de configurao do servidor (CTSRVR.CFG), antes de se iniciar o mesmo.

    Falha na Restaurao do Dump dinmico

    A restaurao de arquivos de um dump dynamic pode falhar por vrias razes. Alguns exemplos incluem:

    O arquivo script de restaurao do dump no foi localizado.

    O arquivo de recuperao do dump contm opes invlidas ou opes inconsistentes com os ajustes do c-tree Server.

    Ocorre um erro quando a restaurao do dump tenta restaurar arquivos para o momento do dump.

    A restaurao do dump realizada em um diretrio com arquivos que interferem com o procedimento de restaurao (tais como registros de transao).

    Quando uma operao de restauro de dump falha, o utilitrio ctrdmp registra mensagens de erro no arquivo CTSTATUS.FCS. Verifique este arquivo e procure um cdigo de erro c-tree que possa explicar a causa da falha e tome a ao apropriada. Reveja o procedimento de restaurao de dump para garantir que os passos necessrios foram tomados.

    Arquivos de dados e ndice so gravados no arquivo stream de dump pela leitura do contedo do arquivo a partir do disco. Como um arquivo no lido em sua totalidade instantaneamente, um arquivo de dados ou ndices no arquivo stream de dump pode ser formado pelo contedo do arquivo em um determinado perodo de tempo. A recuperao do dump inclui o registro de toda atividade transacional durante o perodo do dump, para que o arquivo possa ser restitudo a seu estado no momento do incio do dump. Por esta razo, se o processo de restauro do dump recupera de forma correta os arquivos do arquivo stream de dump, mas falha ao tentar restaurar o arquivo para o momento do dump, os dados e ndices restaurados encontram-se em estado desconhecido.

    Se ctrdmp falha na tentativa de restaurar os arquivos para o momento do dump e nenhuma outra soluo pode ser encontrada, os arquivos de dados e ndices podem ser reconstrudos para garantir que os arquivos estejam em sincronismo. Note ainda que o processo de rebuild pode falhar porque o arquivo de dados pode conter uma mistura de imagens dos registros de momentos diferentes. Como ltima alternativa, os arquivos devem ser restaurados de um backup diferente.

    Nota: Considere a possibilidade de realizar as operaes de restaurao do dump offline imediatamente aps a realizao do dump dinmico. Desta forma, se a restaurao falhar, o problema pode ser solucionado no momento do backup e no no momento do restauro.

  • www.faircom.com All Rights Reserved 22

    6. Index

    C Configurao do Dump dinmico ............................. 4 ctdump Programando os backups automticos

    do c-tree Server .................................................... 4 ctfdmp Avanando o Backup no tempo

    (Rollforward) ....................................................... 12 ctrdmp Restaurando backups do c-tree Server ..... 8

    D Dump dinmico ......................................................... 1

    O Online Disk Snapshot ............................................... 3 Outras opes de Backup ...................................... 16

    R Reconstruindo ndices e Compactando arquivos

    de dados ............................................................. 14 Recuperao do Dump Dinmico ............................. 9 Resoluo de problemas especficos de Dump

    dinmico com o c-tree Server ............................. 19 Rolling Back do Backup .......................................... 13

    1. Dump dinmico1.1 Online Disk Snapshot

    2. Configurao do Dump dinmico2.1 ctdump Programando os backups automticos do c-tree Server2.2 ctrdmp Restaurando backups do c-tree Server2.3 Recuperao do Dump Dinmico2.4 ctfdmp Avanando o Backup no tempo (Rollforward)2.4.1 Rolling Back do Backup

    3. Reconstruindo ndices e Compactando arquivos de dados4. Outras opes de Backup5. Resoluo de problemas especficos de Dump dinmico com o c-tree Server6. Index