OpenBASE! o Banco de Dados Inteligente   Anterior   Sumário   Fale conosco!  

Replicação assíncrona automática

Propósito

Permitir que um Banco de Dados OpenBASE seja espelhado (copiado) para uma outra máquina, funcionando como um backup incremental.

Sintaxe

No esquema, deve-se definir o arquivo, segundo a sintaxe

nome: arquivo E TS

Utilização

Ao se definir um esquema com a cláusula TS ao lado do nome do arquivo, serão criados automaticamente três novos itens no arquivo:

TST    T8

DEL    L1

KST (0)    T8  POS (TST)

O item TST armazena a data e hora que o registro foi incluído, alterado ou excluído.

O item DEL, armazena o valor 1, quando o registro for excluído (exclusão lógica)

Quando um registro é incluído ou alterado, o item DEL recebe o valor 0.

Os registros com DEL=1 não são lidos ou excluídos, a menos que a opção DELETED (SET DELETED ON) esteja ligada.

Caso seja incluído um registro com o mesmo valor de chave do registro deletado logicamente (DEL=1), o item DEL é alterado de 1 para 0.

Daí a necessidade de os arquivos replicáveis serem do tipo entidades (chave primária) ou do tipo relacionamento com pelo menos um item chave única.

Funcionamento

No servidor (máquina para onde serão replicados os dados) ocorre:

nohup bdsrep    Inicialização do servidor de replicação

É recebido o nome do banco e o arquivo a replicar.

servidor de replicação (bdsrep), lê a chave primária de cada registro recebido e:

se não existir e DEL = 0, inclui

se existir e DEL=1, exclui

se existir e DEL=0, altera

No cliente (máquina de onde vem os dados replicados) deve-se executar o comando:

bdcrep -h<host servidor> -b [percurso bd origem] <banco bd origem> -r [percurso bd destino] <banco bd destino> [-s<seg>] [-n<nivel>]

O serviço bdsrep é inicializado no host servidor (é carregado automaticamente).

É enviado o nome do banco no servidor e o arquivo replicar.

Serão pesquisados no banco no servidor todos os registros que possuam o item KST>=data_hora da última replicação e KST<=data_hora do sistema operacional. Tais registros são enviados para o banco no cliente.

Todos os registros enviados e que possuam DEL=1 serão excluídos fisicamente no cliente.

Obs.1: Para que a replicação assíncrona funcione, os dois bancos devem ser iguais, tanto no cliente quanto no servidor.

Obs.2: Caso se deseje replicar um arquivo que já possua dados gravados, deve-se:

descarregar o arquivo com bddesc.

acrescentar a clausula TS no esquema, ao lado do arquivo que se deseja replicar.

compilar o banco de dados (define) recriando o arquivo.

carregar o arquivo com bdadic, utilizando-se a opção -g.

OpenBASE! o Banco de Dados Inteligente  Anterior Sumário  Fale conosco!