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 replicação

Utilização

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

ITEM    TIPO

DAT    T8

DEL    L1

CHA (0)    D7  Pos (DAT+1)

É criado também um arquivo <dicionário>. S que guarda a data e hora da última replicação de cada arquivo replicado.

O item DAT 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 pesquisado no banco cliente, todos os registros que possuam o item CHA>=data_hora da última replicação (contida no arquivo <dicionario.S>) e CHA<=data_hora do sistema operacional. Tais registros são enviados para o servidor.

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

arquivo bdsrep na máquina do servidor é finalizado. (sai do ar)

Obs.1: Para o bom funcionamento da replicação assíncrona, 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 REPLICACAO 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!