Documente Academic
Documente Profesional
Documente Cultură
Contents
1.
1.1
2.
2.1
2.2
2.3
2.4
3.
4.
5.
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.
www.faircom.com
All Rights Reserved
Dump dinmico
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.
1.1
www.faircom.com
All Rights Reserved
Chapter 2
2.1
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
www.faircom.com
All Rights Reserved
!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.
!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.
www.faircom.com
All Rights Reserved
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.
!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
!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.
2.2
www.faircom.com
All Rights Reserved
2.3
www.faircom.com
All Rights Reserved
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
www.faircom.com
All Rights Reserved
10
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
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 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
www.faircom.com
All Rights Reserved
12
2.4.1
www.faircom.com
All Rights Reserved
13
Chapter 3
www.faircom.com
All Rights Reserved
14
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
As sees seguintes discutem dois mtodos de backup offline e como estes passos so
realizados em cada caso.
www.faircom.com
All Rights Reserved
16
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
www.faircom.com
All Rights Reserved
17
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.
www.faircom.com
All Rights Reserved
18
Chapter 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.
19
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.
www.faircom.com
All Rights Reserved
20
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.
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