Espelhamento

1. Espelhamento

Everton da Silva
reimassupilami

(usa Slackware)

Enviado em 02/01/2006 - 16:01h

boa tarde povo... eis aqui uma questão bem complicada, espero que possam me dar umas idéias:

tenho um sistema em PHP+PostgreSQL que roda na rede interna da empresa... esse sistema lista links para arquivos pdf armazenados no servidor... então para cada uma desses arquivos pdf, que são documentos, tenho o arquivo armazenado em uma estrutura de diretórios e dados sobre ele armazenados no banco de dados...

agora terei que extender isso para a home page, ou seja, disponibilizar esses documentos na rede interna e atravez do site... porém são servidores diferentes, o do site é externo, está hospedado em um proverdor pago, e a empresa aqui não tem a menor intenção de hospedar o site aqui mesmo...

então aí vem a grande questão: preciso espelhar essas informações e os arquivos nos dois lugares, de modo que tudo que for alterado na rede local seja feito também no site, pois não posso ter os dados em lugar apenas... detalhe: o sistema foi desenvolvido em Postgre e no provedor onde está o site só existe MySQL disponível, de forma que terei que mexer em alguma coisa na programação também, mas isso é o de menos... o grande problemas mesmo é como fazer esse espelhamento de informações e arquivos...


  


2. Disponibilizar online

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2006 - 15:49h

Já tentou disponibilizar os arquivos que estão na rede interna para a web.
Por exemplo, abrir somente a pasta onde os PDFs estão para fazer download direto do servidor interno, só que pela web.
Para isso precisará ter ip fixo, e o servidor interno ligado na internet.

Se tiver permissão, pode fazer com que o upload seja feito no servidor interno e externo na mesma hora. Ao invés de fazer um upload (interno), vc fará dois (interno e externo).

Sei que o MySQL quando está em um servidor externo da sua aplicação pode ser acessado, bastando configurar as permissões. Já um diretório de um servidor externo não sei se é possível.

Procura algo sobre isso, e não esquece de postar a solução aqui...rs


Abraços,


3. Re: Espelhamento

Everton da Silva
reimassupilami

(usa Slackware)

Enviado em 03/01/2006 - 16:04h

owpa, pode deixar, assim q achar a solução eu posto aqui sim, já meu costume fazer isso, hehehe...

cara, entendi sua idéia, até seria uma boa mesmo, mas se tivesse o ip fixo que permitisse buscar dados no meu servidor dae faria diferente, poderia hospedar o site no servidor de uma vez e poupar muita dor de cabeça, né mesmo? ehhehehe... a nossa conexão aqui é de ip fixo mas não permite conexão "entrante", como diz o pessoal do help desk, ehehehehe...

porém, parece q vc me deu uma luz nesse esquema de fazer o upload nos dois ao mesmo tempo... parece estranho, mas derepente é uma saida... mas e quando eu tiver q alterar alguns dados no banco, como fazer nos dois ao mesmo tempo? aiaiai...


4. Re: Espelhamento

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/01/2006 - 14:06h

É, não dei a idéia de hospedar o site no servidor local pq você havia dito que a empresa não quer faezr isso, não é?

Quando ao banco de dados, só consegui pensar em duas opções:

1ª) Se você conseguir mander a mesma chave primária nos dois bancos, daí você pode usá-la. Por exemplo, se alterar o registro que tem a chave primária 1 no MySQL você "automaticamente" altera o registro que tem a chave primária 1 no PostgreSQL, e vice-versa.

2°) Você pode criar uma coluna "associativa". Por exemplo, quando você criar um registro no MySQL você também irá criá-lo no PostgreSQL, daí você salva em uma coluna da tabela do PostgreSQL o id desse registro no MySQL e vice-versa, assim:

MySQL
id: 1
descricao: blábláblá

PostgreSQL
id: 40
mysql_id: 1
descricao: blábláblá


Como você disse que precisa de um espelhamento, acredito que a 1ª dica seria a melhor solução, já que os dados que você tem no PostgreSQL deverão ser idênticos aos dados que você tem no MySQL, correto?


Bom, é uma idéia, talvez alguém tenha outras...


5. Re: Espelhamento

Everton da Silva
reimassupilami

(usa Slackware)

Enviado em 04/01/2006 - 14:20h

então, só uma coisa pra facilitar: não é necessário o vice-versa, ehhehe... tipo, preciso que tudo q seja feito no postgre q esta na rede local seja alterado no mysql q esta no site, não será necessário o contrário...

acredito que a primeira opção seja a melhor mesmo... mas a questão é: como fazer isso? o meu grande problema é não conseguir enchergar a forma de fazer essa comunicação entre os dois... :(


6. Re: Espelhamento

Everton da Silva
reimassupilami

(usa Slackware)

Enviado em 17/01/2006 - 16:31h

aew pessoal, consegui resolver parte do problema: usando ftp eu consegui fazer com que no momento em que o documento fosse aprovado no sistema, na rede local, ele também seja enviado ao site... até aqui tá bem legal, passo pra ele qual arquivo ele deve pegar e ele envia ftp certinho, pro diretorio especificado...

agora, a segunda parte: quando enviar o arquivo tenho que enviar também as informações sobre ele, que estão no banco... e agora/


7. Re: Espelhamento

N
o_lalertom

(usa Slackware)

Enviado em 17/01/2006 - 16:57h

Você não poderia falar com o pessoal do provedor pra disponibilizar um usuário e senha para uma tabela especifica onde você iria enviar os dados inserindo na tabela referente.

Se sim, você faz um script para fazer essa parte de conexão e pronto.


8. Re: Espelhamento

Everton da Silva
reimassupilami

(usa Slackware)

Enviado em 17/01/2006 - 17:10h

é, realmente, seria bom assim... mas eles não liberam conexão externa ao banco de dados, já tentei, ehhehee... o negocio é enviar os dados de alguma forma para um script q esteja lá e que interprete os dados e jogue pro banco...

acho que é por aí...


9. Re: Espelhamento

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/01/2006 - 21:56h

Olá,

Tente fazer um script de atualização em PHP que rode em determinados horários, você pode coloca-lo no CRON e beleza irá atualizar.
Estou em fase final do meu script que faz isso, eu uso o PEAR e me conecto com os dois bancos e vou olhando registro por registro e atualizo no remoto o registro que está diferente do local.
O PHP pode rodar em shell usando : php nomedoscript.php.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts