MKXRF – Sintaxe
mkxrf <dbname>
Arquivo mestre de entrada <dbname>
Nome do arquivo mestre a ser processado (Parâmetro obrigatório).
MKXRF – Saída
O programa MKXRF lê o registro de controle e examina o arquivo de entrada .mst até o local nxtmfb e nxtmfp; neste processo identifica se as seguintes condições de um registro do arquivo mestre se aplicam aos componentes do leader:
d) MFRmfn está no intervalo entre 1 e (nxtmfn-1).
e) MFRmfrl está no intervalo LEADER a MAXMFRL.
f) MFRbase é até MFRmfrl.
g) MFRmfbwb aponta para algum endereço prévio válido.
h) MFRmfbwp está no intervalo entre 0 e MSBSIZ.
fi MFRnvf é zero ou positivo.
j) MFRstatus é ACTIVE ou DELETED.
k) MFRbase é igual a LEADER + MFRnvf*sizeof(DIRSTRU).
A localização de cada registro do arquivo mestre identificado é escrito no arquivo .xrf que é criado, e inclui as versões de registros velhos.
Dica:Quando MicroISIS reinicializa logicamente um arquivo mestre, é atualizado completamente o
primeiro bloco do arquivo mestre, apagando os dados armazenados ali.
Restaurando uma base de dados corrompida
A seguir são detalhados procedimentos para restaurar uma base de dados de acordo com seus possíveis estados de problemas:
Estado | Ação | ||
MST | XRF | Informação | |
OK | corrompido | MaxMFN desconhecido | Usar MKXRF |
Reinicializado | OK | Tamanho do XRF | Estimar maxMFN e usar CTLMFN |
Bloqueada | OK | Usar CTLMFN, informar zeros nos campos mfcxx2, mfcxx3 |
Cálculo aproximado do MaxMFN
Uma estimação do valor máximo de registros (maxMFN) se obtém de:
(tamanho_em_bytes_de_XRF/512) * 127
Se o valor de maxMFN estabelecido é maior do que o número real de registros, não serão gerados registros nulos no .mst, nem no .xrf. O arquivo .xrf é gravado somente para os registros que podem ser lidos no .mst. A base poderá ser lida sem problemas, mas não poderá ser atualizada (gerará o erro fatal: recxref/read). O maxMFN deverá ser corrigido seguindo uma destas duas formas: Tomar o valor “x recs” que é indicado no final da execução de MKXRF e em seguida colocar x + 1 em nxtmfn através do CTLMFN. Criar outro arquivo mestre (com create, não com copy) a partir do que se tem, a fim de corrigir o registro de controle no novo arquivo mestre.