Um banco explorado continuamente sempre está registrando alterações, e adições ou eliminações de registros. Realizar backups regulares dos dados é importante, porém não permite (em caso de um incidente) recuperar os dados introduzidos desde o último backup. Para responder a esta necessidade, 4D agora oferece uma ferramenta específica: o arquivo de histórico. Este arquivo permite garantir a segurança permanente dos dados do banco de dados.
Além disso, 4D trabalha continuamente com uma cache de dados na memória. Qualquer alteração realizada nos dados do banco de dados é salva temporariamente na cache antes de ser gravada no disco rígido. Isso acelera o funcionamento dos aplicativos; de fato, acessar a memória é mais rápido do que acessar o disco rígido. Se ocorrer um incidente no banco de dados antes que os dados armazenados na reserva possam ser gravados no disco, deve-se incluir o arquivo de histórico atual a fim de restaurar completamente o banco de dados.
4D tem funções que analizam o conteúdo do arquivo de históricol, que tornam possível desfazer as operações realizadas com os dados do banco. Estas funções são acessíveis no CSM: consulte as seções
Análise de atividade e
Retroceder.
O arquivo de histórico gerado por 4D contém todas operações realizadas nos dados da tabela com histórico da base, as quais são registradas sequencialmente. Por padrão, todas as tabelas são guardadas no histórico, ou seja, se incluem no arquivo de histórico, mas pode não ser selecionada tabelas individuais utilizando a propriedade [#title id="651" anchor="1282124"/].
Desta forma, cada operação efetuada por um usuário causa duas ações simultâneas: a primeira no banco de dados (a instrução é executada normalmente) e a segunda no arquivo de histórico (a descrição da operação é registrada). O arquivo de histórico é criado de maneira independente sem afetar ou tornar mais lento o trabalho do usuário. Um banco de dados só pode trabalhar com um arquivo de histórico ao mesmo tempo. O arquivo de histórico registra os seguintes tipos de operações:
- abertura e encerramento do arquivo de dados,
- abertura e encerramento de processos (contextos),
- adição de registros ou BLOBs
- modificações de registros
- eliminação de registros
- criações e encerramento de transações.
Para maiores informações sobre estas ações, consulte o Análise de atividade.
O arquivo de histórico é administrado por 4D, levando em conta igualmente todas as operações que afetam o arquivo de dados, sem importar as manipulações efetuadas por um usuário, os sistemas 4D, o motor SQL, os plug-ins 4D (4D Write, 4D View, etc.), um navegador de Web.
O esquema a seguir resume o princípio geral de funcionamento do arquivo de histórico:
![](../../picture/1360885/pict1360885.EN.png)
O arquivo de histórico atual é salvo automaticamente com o arquivo de dados atual. Este mecanismo tem duas vantagens principais:
- evitar a saturação do disco onde é salvo o arquivo de histórico. Sem um backup, o arquivo de histórico utilizaria eventualmente todo o espaço de disco disponível. Para cada backup de arquivo de dados, 4D ou 4D Server fecha o arquivo de histórico atual e inicia imediatamente um novo arquivo vazio, evitando o risco de saturação. O arquivo de histórico antigo é arquivado e eventualmente é destruído conforme o mecanismo para gerenciar os conjuntos de backups.
- Conservar os arquivos de histórico correspondentes aos backups a fim de poder analisar ou consertar mais adiante um banco de dados. A integração de um arquivo de histórico só se pode realizar no banco de dados que lhe corresponda. É importante para poder integrar corretamente um arquivo de histórico em um backup, ter arquivos de backups e de histórico arquivados simultaneamente.
Por padrão, toda banco de dados criado com 4D utiliza um arquivo de histórico: a criação deste arquivo é parte da estratégia de backup automático (consulte Estratégia de Backup automático). O arquivo de histórico se chama NomeArquivoDados.journal e se localiza na pasta que contém a estrutura do banco de dados.
A qualquer momento é possível saber se seu banco de dados utiliza um arquivo de histórico: simplesmente verifique se a opção Utilizar o histórico está selecionada na página Página Backup/Configuração (ver Gestão do arquivo de histórico). Se você desmarcar esta opção ou se utilizar um banco de dados sem arquivo de histórico e quiser estabelecer uma estratégia de backup com um arquivo de histórico, você terá que criar um.
Para criar um arquivo de histórico:
- Na página Página Backup/Configuração das Preferências do banco de dados, selecione a opção Utilizar o histórico.
O programa mostra uma caixa de diálogo padrão de criação do arquivo de histórico. Por padrão, o arquivo de histórico se chama NomeArquivoDados.journal. - Conserve o nome padrão do arquivo ou escolha outro nome e selecione o destino do arquivo.
Se você dispõe de ao menos dois discos rígidos, é recomendável destinar o arquivo de histórico em um disco diferente do que contém o banco de dados. Em caso de perda do disco rígido do banco de dados, você ainda poderá chamar seu arquivo de histórico. - Clique em Salvar.
O disco e o nome do arquivo de histórico aberto aparecem na área “Utilizar o histórico” da caixa de diálogo. Pode clicar nesta área para mostrar um menu de pop-up que contém as séries de pastas no disco. - Valide a caixa de diálogo Preferências.
Nota: A partir de 4D v14, os novos mecanismos internos de geração e uso do arquivo de histórico se implementam com a finalidade de que este arquivo seja mais robusto. A utilização de um arquivo de histórico necessita que todas as tabelas com histórico tenham uma chave primária. Se este não é o caso (em uma base convertida, por exemplo), uma caixa de diálogo de advertência indica que não é possível ativar o arquivo de histórico, sempre e quando as chaves primárias não foram definidas corretamente para todas as tabelas com histórico. Com o propósito de fazer que sua aplicação seja compatível, pode usar o [#title id="3387"/]. Este assistente verifica o estado de cada tabela e lhe permite definir uma chave primária.
Para criar um arquivo de histórico diretamente, o banco de dados deve estar em uma das seguintes situações (exceto por cumprir com temas relacionados com chaves primárias, ver acima):
- o arquivo de dados vazio,
- você acabou de efetuar um backup do banco de dados e ainda não fez nenhuma modificação nos dados.
Em todos os outros casos, quando validar a caixa de diálogo Preferências, aparecerá uma caixa de diálogo de alerta para lhe informar que é necessário realizar um backup. Se clicar em Aceitar, o backup se iniciará imediatamente e então se ativa o arquivo de histórico. Se clicar em Cancelar, a solicitação é salva, porém a criação do arquivo de histórico é adiada e será criada somente depois do próximo backup do banco de dados. Esta precaução é indispensável porque para restaurar um banco de dados depois de algum incidente, necessita-se de uma cópia do banco de dados na qual se integrem as operações gravadas no arquivo de histórico.
Sem fazer nada mais, todas as operações efetuadas nos dados são registradas neste arquivo e serão utilizadas posteriormente quando se abrir o banco de dados.
Deve-se criar outro arquivo de histórico se for criado um novo arquivo de dados. Deve-se definir ou criar outro arquivo de histórico se for aberto outro arquivo de dados que não esteja associado a um arquivo de histórico (ou se está faltando o arquivo de histórico).
Se quiser interromper o registro do arquivo de histórico atual, desmarque a opção Utilizar histórico na página Página Backup/Configuração das Preferências do aplicativo.
4D mostra uma mensagem de alerta a fim de te lembrar que esta ação evita que se aproveite da segurança que o arquivo de histórico oferece:
![](../../picture/511167/pict511167.pt.png)
Se clicar no botão Interromper, fecha-se de imediato o arquivo de histórico atual (não é necessário confirmar depois a caixa de diálogo das Preferências).
Se quiser interromper o arquivo de histórico atual porque é demasiado grande, deve-se realizar um backup do arquivo de dados, o que produzirá um backup do histórico.
Nota para 4D Server:
- O comando New log file fecha automaticamente o histórico atual e inicia um novo.
- Se por alguma razão o arquivo de histórico se torna inacessível durante uma sessão de trabalho, é gerado o erro 1274 e 4D Server não permite aos usuários escrever ou modificar os dados. Quando o arquivo de histórico seja acessível de novo, é necessário fazer um backup.