Sunteți pe pagina 1din 24

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.

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

ii

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.

www.faircom.com
All Rights Reserved

Dump dinmico

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,
www.faircom.com
All Rights Reserved

Dump dinmico

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

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.

www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

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 <mm/dd/yyyy>
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 <dia da semana, em ingls>


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 <seconds>
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 <dump file>


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

www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

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 <bytes | NO>


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 <lista de arquivos>


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>
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.

www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

!RECURSE <YES | NO | MATCH_SUBDIR>


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 <hh:mm:ss>
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.
www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

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.

www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

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 <number of files> 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.

www.faircom.com
All Rights Reserved

Configurao do Dump dinmico

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
physical c-tree Plus files open
c-tree Plus file control blocks in use

=
=
=

15
6
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 <bytes por buffer> 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 <caminho antigo > <caminho novo> 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.

www.faircom.com
All Rights Reserved

10

Configurao do Dump dinmico

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 <caminho antigo > <caminho novo>

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

www.faircom.com
All Rights Reserved

11

Configurao do Dump dinmico

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<nmero de
registro>.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<nmero de registro>.FCS" para "L<nmero de registro>.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.

www.faircom.com
All Rights Reserved

12

Configurao do Dump dinmico

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

13

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.

www.faircom.com
All Rights Reserved

14

Reconstruindo ndices e Compactando arquivos de dados

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

15

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.
2.
3.
4.

Fechar os arquivos a serem copiados.


Proibir o acesso aos arquivos sendo copiados.
Efetuar o backup dos arquivos utilizando um utilitrio de cpia de arquivos do sistema.
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).

www.faircom.com
All Rights Reserved

16

Outras opes de Backup

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

SEC_BLOCK_NONADM
SEC_BLOCK_NONSUP
SEC_BLOCK_KILL
SEC_BLOCK_OFF

Descrio
Bloqueia o logon de usurios que no sejam do grupo
ADMIN
Bloqueia o logon de todos os usurios, exceto ADMIN
Bloqueia logon de todos os usurios, exceto ADMIN, e
cancela (kill) todos os demais usurios (suspende o
servidor)
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.
2.
3.
4.

Sinalizar para que os clientes fechem os arquivos a serem gravados


Renomear ou mover os arquivos com o utilitrio ctmove.
Gravar os arquivos com um utilitrio de cpia do sistema.
Sinalizar para os clientes reabrirem os arquivos.

www.faircom.com
All Rights Reserved

17

Outras opes de Backup

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

18

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 <nlogs>
onde <nlogs> 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:
www.faircom.com
All Rights Reserved

19

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

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).

www.faircom.com
All Rights Reserved

20

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

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

21

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

www.faircom.com
All Rights Reserved

22

S-ar putea să vă placă și