4D v16

Replicação via SQL

Página Inicial

 
4D v16
Replicação via SQL

Replicação via SQL  


 

 

4D oferece um mecanismo que permite replicar ou sincronizar os dados de duas ou mais bases 4D via SQL. Esta funcionalidade específica pode ser utilizada para criar uma ou mais bases espelhos, garantindo a disponibilidade permanente dos dados.

O principio é o seguinte: um banco de dados objetivo replica no local os dados de um banco de dados fonte remota.  As atualizações serão levadas a cabo periodicamente pela base local que recupera os dados da base remota. A replicação é levada a cabo a nível de tabela: Você replica os dados de uma tabela da base remota em uma tabela da base local.
Isto é possível graças a utilização de marcadores (stamps) e de comandos SQL específicos.

No editor da estrutura, uma propriedade de tabela permite ativar o mecanismo de replicação na base remota e local. Do lado da base local, o comando SQL REPLICATE permite recuperar dados de uma tabela da base remota e depois integrar estes dados em uma tabela da base local. O comando SQL SYNCHRONIZE, é utilizado para levar a cabo a sincronização das duas tabelas.

Cada tabela da base 4D pode ser atribuída com três campos "virtuais": __ROW_ID, __ROW_STAMP e __ROW_ACTION. Estes campos são chamados "virtuais" para os diferenciar dos "clássicos" porque têm propriedades específicas: preenchem automaticamente, pode ser lido mas não modificado pelos usuários e não aparecem nas tabelas sistema da base. A seguinte tabela descreve estes campos, assim como seu modo de uso:

Campo virtualTipoConteúdoUso
__ROW_IDInt32ID do registroEm toda instrução SQL exceto REPLICATE ou SYNCHRONIZE
__ROW_STAMPInt64Informação de replicação do registroEm toda instrução SQL
__ROW_ACTIONInt16Tipo de ação realizada no registro: 1 = Adição ou modificação, 2 = SupressãoUnicamente com o comando REPLICATE ou SYNCHRONIZE

Quando os mecanismos de replicação estão ativos, logo como um registro é criado, modifica ou elimina, a informação correspondente é atualizada automaticamente nos campos virtuais deste registro.

Por padrão os mecanismos que permitem a replicação não estão ativos. Você deve ativá-los explicitamente tanto na base remota e na base local para cada tabela utilizada na replicação ou sincronização.

Tenha em conta que a ativação do mecanismo não ativa a replicação, com o propósito de que os dados se repliquem em uma base local ou sincronizada, deve utilizar os comandos REPLICATE ou SYNCHRONIZE

Para ativar o mecanismo interno de replicação, deve utilizar em cada tabela (na base remota e local), a propriedade de tabela Ativar replicação acessível no Inspetor de tabelas:

Nota: Para que o mecanismo de replicação possa funcionar, deve especificar uma chave primaria para as tabelas implicadas nas bases remota e local. Pode criar esta chave via o editor de estrutura ou os comandos de SQL. Caso não foi especificado a chave primária, a opção está em cinza.

Quando esta opção está ativa, 4D gera a informação necessária para replicar os registros da tabela (baseada em particular na chave primária da tabela). Esta informação é armazenada nos campos virtuais __ROW_STAMP e __ROW_ACTION.

Nota: É possível ativar e desativar a geração de informação de replicação via os comandos SQL CREATE TABLE e ALTER TABLE, utilizando as palavras chaves ENABLE REPLICATE e DISABLE REPLICATE. Para maior informação, consulte a descrição destes comandos.

ATENÇÃO: Selecionar esta opção provoca a publicação da informação necessária pelos mecanismos de replicação. Por razões de segurança, o acesso a esta informação deve estar protegido, assim como deve estar protegido o acesso a seus dados quando são publicados. Portanto, quando implemente um sistema de replicação utilizando esta opção, deve ter certeza de:
•    Se o servidor SQL é lançado, o acesso está protegido utilizando as senhas 4D e/ou os esquemas SQL (ver Configuração do servidor SQL de 4D),
•    Se o servidor HTTP é lançado, o acesso está protegido utilizando as senhas 4D e/ou os esquemas SQL (ver Configuração do servidor SQL de 4D) e/ou do e/ou da definição de uma estrutura virtual via os comandos SET TABLE TITLES e SET FIELD TITLES. Para maior informação, consulte o parágrafo "URL 4DSYNC/" na seção MissingRef.

Uma vez que o mecanismo de replicação está ativo em cada tabela de cada base, pode utilizá-lo desde a base local via o comando SQL REPLICATE. Para maior informação, consulte a descrição deste comando.



Ver também 

REPLICATE

 
PROPRIEDADES 

Produto: 4D
Tema: Utilizar SQL em 4D

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)