4D Server oferece uma solução integrada que permite configurar um sistema de backup sob um espelho lógico. Esta solução está baseada nos dois novos comandos: New log file e INTEGRATE MIRROR LOG FILE.
Um espelho lógico é um modo backup sofisticado, destinado especialmente para bancos de dados críticos ou de alta carga.
O uso de um espelho lógico consiste em operar um banco de dados em una máquina e manter em uma segunda máquina uma copia desta base que se atualiza periodicamente. Ambas máquinas se comunicam pela rede com a máquina em funcionamento transmitindo regularmente para a máquina de espelho as mudanças realizadas no banco de dados através do intermediário do arquivo de histórico.
Desta maneira, quando há um incidente que afeta o banco de dados operacional, o banco de dados espelho pode ser utilizado para conseguir rapidamente voltar a trabalhar sem a perda de dados. Por outra parte, o banco de dados operacionais nunca está "bloqueado" pelas operações de backup.
O uso de um espelho lógico corresponde às necessidades específicas. A estratégia padrão com base em backups periódicos e a utilização de um arquivo de histórico é nas maiorias dos casos uma solução simples, confiável e econômica. Torna-se o backup de base regularmente (a cada 24 horas geralmente). Durante o backup, a base permanece acessível em modo somente de leitura. Este período de indisponibilidade parcial é muito curto e mesmo no caso de grandes bancos de dados (maiores de 2 GB), não dura mais que 5 minutos. Esta operação ainda pode ser programada para realizar-se fora dos períodos normais de utilização da base.
No entanto, para certos tipos de organizações, tais como hospitais, por exemplo, as bases de dados essenciais devem ser totalmente operacionais 24 horas por dia. O banco de dados não pode estar "fazendo back up", embora por um período muito curto de tempo. Neste caso, a criação de um espelho lógico é uma boa solução.
Nota: O espelho base apenas reflete as alterações feitas aos dados. Esse método de backup não é adequado para bases no processo de desenvolvimento, onde freqüentes mudanças estruturais farão que o espelho seja rapidamente obsoleto ou que requerem várias atualizações da estrutura do espelho base.
A criação de um sistema de backup por espelho lógico é baseado em dois novos comandos: #cmd id="926"/] e INTEGRATE MIRROR LOG FILE. Estes comandos se descrevem no manual de Linguagem de 4D.
Os seguintes princípios aplicam:
A base está instalada no computador 4D Server principal (máquina de funcionamento) e uma cópia idêntica da base está instalada na máquina 4D Server espelho.
Uma prova no início do aplicativo (por exemplo, para detectar a presença de um arquivo específico na pasta 4D Extensions) nos permite distinguir entre as duas versões (operacional e espelho) e, por conseguinte, proceder a operações adequadas.
Na máquina 4D Server em funcionamento, o arquivo de histórico é "segmentado" a intervalos regulares com o comandoNew log file. Dado que nenhuma copia de seguridade é levada a cabo no servidor principal, a base se mantém disponível permanentemente em modo leitura-escritura.
Cada “segmento” do arquivo histórico é enviado para a máquina espelho, onde junta-se a base espelho usando o comando INTEGRATE MIRROR LOG FILE
A criação deste sistema necessita a programação de código específico, em particular:
Um contador de tempo no servidor principal para a gestão dos ciclos de execução do comando New log file
Um sistema de transferência para os "segmentos" do arquivo de histórico entre a máquina operacional e a máquina espelho (usando 4D Internet Commands para uma transferência via FTP ou por sistemas de mensagens, serviços web, etc),
Um processo na máquina espelho destinada a supervisionar a chegada de novos "segmentos" do arquivo de histórico e de integrar usando o comandoINTEGRATE MIRROR LOG FILE,
Um sistema de comunicação e de gestão de erros entre o servidor principal e o servidor espelho.
ATENÇÃO: Um sistema de backup pelo espelho lógico não é compatível com o backup "padrão" em uma base no uso como a utilização simultânea destes dois modos de backup irão conduzir à dessincronização das bases operacionais e espelho. Portanto, você deve ter certeza que nenhum backup, automático ou manual, seja realizado na base operacional. Por outro lado, é possível fazer backups do espelho base (veja o próximo parágrafo).
4D Server permite realizar backups do banco de dados na máquina espelho. Todas as mídias convencionais podem ser usadas para realizar backups na máquina espelho: backup manual através do menu Arquivo, backup periódico definido nas Preferências ou o backup agendado, usando os comandos da linguagem.
Para evitar riscos de dessincronização com a máquina operacional, 4D bloqueia automaticamente a máquina espelho quando ele está a realizar uma das duas operações básicas: a integração do arquivo de histórico da máquina operacional e o backup do banco de dados espelho.
Durante a integração do arquivo de histórico, não é possível levar a cabo um backup. Se utiliza o comando BACKUP, é gerado o erro 1417 (ver a seção Erros de Gestão de backup (1401 -> 1421)).
Quando um backup está em andamento, todos os processos são congelados e não é possível começar a integração de um arquivo de histórico.
A partir de 4D v14, pode ativar o arquivo de histórico atual na máquina espelho, o que significa que pode configurar um "espelho - espelho", ou uma série de servidores espelho em cascata ou uma arquitetura de espelho "hub and spoke" (múltiplos espelhos para o mesmo banco de dados operacionais). Neste primeiro caso, o atual arquivo de histórico é enviado em turno para outro mirror (mirror-mirror) para integração, e assim por diante se você usa uma série de espelhos. No segundo caso, o histórico atual é enviado diretamente para diversos servidores espelho idênticos. Este tipo de redundância assegura a disponibildade contínua do servidor, mesmo no caso de falha simultânea do servidor e do espelho principal.
O seguinte cenário ilustra, desde o ponto de vista de cada máquina 4D Server, a configuração de um sistema de backup com espelho:
Passo
Máquina em operação
Máquina espelho
1
Inicialização da aplicação, backup do arquivo de dados e ativação (caso seja necessário) do arquivo de histórico.
4D cria o arquivo MyDatabase.journal. Para maior segurança, o arquivo de histórico é guardado em um disco duro separado.
Saímos da aplicação.
Copia de todos os arquivos da base (arquivo de histórico incluído) na máquina espelho.
2
Reinicio da aplicação e início da operação (verificar que não exista um backup totalmente programado).
Inicio da aplicação espelho. 4D Server solicita o arquivo de histórico atual: seleção do arquivo MyDatabase.journal que foi transferido da base operacional. Se não quer utilizar o histórico do espelho, desative o histórico atual na página Backup/Configuração das Preferências/Propriedades (tenha a certeza de que a opção Utilizar o arquivo de histórico não esteja selecionada).
3
Decisão de atualizar o espelho (por exemplo, depois de um certo tempo de operação).
Execução do método que contém o comando New log file. O arquivo guardado se chama MyDatabase[0001-0001].journal.
Envio por programação do arquivo MyDatabase[0001-0001].journal à máquina espelho (utilizando 4DIC, Serviços web, etc.).
A base está em operação.
4
Detecção de um arquivo que está esperando ser integrado. Execução do método que contém o comando _o_INTEGRATE LOG FILE para integrar o arquivo MyDatabase[0001-0001].journal.
5
Incidente no computador; a base é inutilizável. Decisão de passar à máquina espelho.
Copia do arquivo de histórico atual MyDatabase.journal a máquina espelho, sob a pasta de recepção habitual.
6
Análises do incidente e reparação.
Detecção de um arquivo que está esperando ser integrado. Execução do método que contém o comando INTEGRATE MIRROR LOG FILE para integrar o arquivo MyDatabase.journal.
Por segurança, criação de um arquivo de histórico atual na página Backup/Configuração das Preferências.
A base está em operação.
7
A máquina se repara. Substituição dos arquivos da base pelas da base espelho. Inicio da aplicação. 4D Server solicita o arquivo de histórico: seleção do arquivo transferido desde a máquina espelho.