terça-feira, 27 de agosto de 2013

(Parte II) Replicação utilizando Slony 2.0.2, PostgreSQL 8.4 e Windows XP SP3 (x86)

No post  passado foi demonstrado a configuração do master e do slave, do Postgres e a configuração do Firewall do Windows. Neste post explicaremos a parte de replicação do banco de dados Postgres.

5.  Replicando o Banco de Dados.

Crie um banco de dados ou utilize um seu já existente no pgAdmin III na máquina Master e depois crie um idêntico na máquina Slave.


PROCEDIMENTOS PARA A MÁQUINA MASTER

Abra o Bloco de Notas e digite as seguintes linhas:

ATENÇÃO!!!!
(No Seu arquivo altere os campos que estão entre “%” e depois apague o símbolo de “%”. Não adicione essa linha!)

 cluster name = %NomedoseuCluster%;  
 node 1 admin conninfo = 'dbname=%NomeDoSeuBancoMaster% host=%IPDaSuaMáquinaMaster% user=%UsuarioDoSeuBancoMaster% password=%SenhaDoSeuBancoMaster%;  
 node 2 admin conninfo = 'dbname=%NomeDoSeuBancoSlave% host=%IPDaSuaMáquinaSlave% user=%UsuarioDoSeuBancoSlave% password=%SenhaDoSeuBancoSlave%;  
 init cluster (id=1, comment='nodo mestre');  
 create set (id=1, origin=1, comment='minhas tabelas');  
 set add table (set id=1, origin=1, id=1, fully qualified name='public.%NomeDeAlgumaTabelaDoSeuBanco%', comment='tabela_cidades');  
 set add table (set id=1, origin=1, id=2, fully qualified name='public. %NomeDeAlgumaTabelaDoSeuBanco%', comment='tabela_estados');  
 store node (id=2, event node=1, comment= 'node escravo');  
 store path (server=1, client=2, conninfo='dbname=%NomeDoSeuBancoMaster% host=%IPDaSuaMáquinaMaster% user=%UsuarioDoSeuBancoMaster% password=%SenhaDoSeuBancoMaster%');  
 store path (server=2, client=1, conninfo='dbname=%NomeDoSeuBancoSlave% host=%IPDaSuaMáquinaSlave% user=%UsuarioDoSeuBancoSlave% password=%SenhaDoSeuBancoSlave%');  
 store listen (origin=1, provider=1, receiver=2);  
 store listen (origin=2, provider=2, receiver=1);  


NO MEU ESTUDO DE CASO FICOU ASSIM


Arquivo Master
Salve o arquivo com o nome “Master”, copie esse arquivo e cole dentro da pasta “bin” do PostgreSQL.

Ex.: C:\Arquivos de programas\PostgreSQL\8.4\bin

Pasta bin.


Feito isso agora vamos criar a replicação:
Abra o Prompt de Comando (cmd) (para sistemas que possuem UAC – Controle de Conta de Usuário abra o Prompt de Comando (cmd) no modo administrador. Ex.: Botão direito do Mouse abrir como administrador).
Sistemas sem UAC – Controle de Conta de Usuário

Abrindo o prompt do windows

Sistema com UAC  - Controle de Conta de Usuario
Aberto o Prompt digite “cd\” não digite as aspas e depois navegue até a pasta utilizando: cd C:\Arquivos de programas\PostgreSQL\8.4\bin se não der certo veja o caminho que seu PostgreSQL está instalado.

Acessando a pasta pelo Prompt.
Feito isso digite o seguinte comando:
slonik Master.txt
Feito isso aparecera as seguintes mensagens:
Mensagem de configurado.
Pronto cluster de replicação criado na máquina Master, o cluster de cada máquina só precisa ser criado uma vez, agora vamos para a máquina Slave.

PROCEDIMENTOS PARA A MÁQUINA SLAVE
Abra o Bloco de Notas e digite as seguintes linhas:

ATENÇÃO!!!
(No Seu arquivo altere os campos que estão entre “%” e depois apague o símbolo de “%”. Não adicione essa linha!)

 cluster name = %NomedoseuCluster%;  
 node 1 admin conninfo = 'dbname=%NomeDoSeuBancoMaster% host=%IPDaSuaMáquinaMaster% user=%UsuarioDoSeuBancoMaster% password=%SenhaDoSeuBancoMaster%;  
 node 2 admin conninfo = 'dbname=%NomeDoSeuBancoSlave% host=%IPDaSuaMáquinaSlave% user=%UsuarioDoSeuBancoSlave% password=%SenhaDoSeuBancoSlave%;  
 subscribe set (id=1, provider=1, receiver=2, forward=yes);  

NO MEU ESTUDO DE CASO FICOU ASSIM

Arquivo subscribe

Salve o arquivo com o nome “Subscribe”, copie esse arquivo e cole dentro da pasta “bin” do PostgreSQL.


Ex.: C:\Arquivos de programas\PostgreSQL\8.4\bin

Adicionar na pasta bin.
Feito isso agora vamos criar a replicação:
Abra o Prompt de Comando (cmd) (para sistemas que possuem UAC – Controle de Conta de Usuário abra o Prompt de Comando (cmd) no modo administrador. Ex.: Botão direito do Mouse abrir como administrador).
Sistemas sem UAC – Controle de Conta de Usuário


Abrindo promtp.
Sistemas com UAC – Controle de Conta de Usuário

Sistemas com UAC - COntrole de Usuario
Aberto o Prompt digite “cd\” não digite as aspas e depois navegue até a pasta utilizando: cd C:\Arquivos de programas\PostgreSQL\8.4\bin se não der certo veja o caminho que seu PostgreSQL está instalado.
Adicionar legenda
Feito isso digite o seguinte comando:

slonik Subscribe.txt

Feito isso não aparecera nenhuma mensagem.
Pronto cluster de replicação criado na máquina Slave, o cluster de cada máquina só precisa ser criado uma vez, agora vamos iniciar o Slony nas máquinas.

6.   Iniciando o Slony-I.

Faça o mesmo procedimento tanto na máquina Master como na Slave

Abra o Prompt de Comando (cmd) (para sistemas que possuem UAC – Controle de Conta de Usuário abra o Prompt de Comando (cmd) no modo administrador. Ex.: Botão direito do Mouse abrir como administrador).
Sistemas sem UAC – Controle de Conta de Usuário

Sistemas com UAC - COntrole de Usuario

Adicionar legenda
Aberto o Prompt digite “cd\” não digite as aspas e depois navegue até a pasta utilizando: cd C:\Arquivos de programas\PostgreSQL\8.4\bin se não der certo veja o caminho que seu PostgreSQL está instalado.

Adicionar legenda
Feito isso digite o seguinte comando:
slon %NomeDoSeuCluster% “dbname=%NomeDoSeuBanco% user=%NomeDoUsuarioDoSeuBanco% password=%SenhaDoSeuBanco%
Na minha Máquina Master e na Slave ficou assim, (pois eu utilizei o mesmo nome do banco tanto para a Máquina Master como para a Slave).

Adicionar legenda
Feito isso aparecera as seguintes mensagens:
Máquina Master.
Máquina Slave
Pronto agora é só fazer alguma alteração no banco Master para ver se replicou corretamente, lembrando que não deve fechar o Prompt pois para fazer a replicação o Slony tem que estar executando. A primeira replicação demora alguns segundos basta esperar, caso utilize functions, triggers ou rules crie elas apenas no banco Master pois apenas as alterações necessitam ser replicadas.



Tutorial Criado por Samuel Coelho de Sá – facebook.com/samuel.scsa
Técnico em Informática CTF-UFPI, Estudante de Análise e Desenvolvimento de Sistemas - IFPI, Guadalupe/Floriano –PI

(Parte I)Replicação utilizando Slony 2.0.2, PostgreSQL 8.4 e Windows XP SP3 (x86)

Replicação utilizando Slony 2.0.2, PostgreSQL 8.4 e Windows XP SP3 (x86)
Testado nas seguintes plataformas
·         Windows XP (x86)
·         Windows 7 (x86 e x64)
·         Windows 2008 Server R2 Enterprise (x86 e x64)
Link para o Slony-I (+- 166KB) 
Link para o PostgreSQL 8.4 (x86) (+- 42 MB) 
Instale o PostgreSQL 8.4 na máquina Master e na máquina Cliente.

1.   Configurando IPs nas máquinas

Para iniciar temos que colocar as máquinas Master e Slave se comunicando na rede para que o PostgreSQL possa identifica-los.
No meu caso estou utilizando IPV4 Classe C 192.168.11.0

Configuração Máquina Master

Configuração Maquina Slave


 2.   Criando Regras no Firewall


Clique no botão Iniciar, depois Painel de Controle e dê dois cliques no ícone do Firewall do Windows.

Abrindo Firewall


Abrindo Firewall parte 2
  
Agora vamos adicionar as regras para liberação da porta de conexão e da aplicação PostgreSQL que estão presentes na GUIA EXCEÇÕES faça isso no Master e no Slave.


Adicionar a Aplicação pgAdmin III


Adicionando a Porta 5432

Adicionando a porta 5432

 3.   Configurando a Rede do PostgreSQL 8.4


Navegue até a pasta DATA do PostgreSQL:
No meu caso se localiza aqui: C:\Arquivos de programas\PostgreSQL\8.4\data
Agora abra o arquivo pg_hba.conf com algum editor de texto que você utilize, faça isso no Master e no Slave. Ex: (notepad ++, bloco de notas do windows)


Abrindo arquivo pg_hba.conf
 Adicione as linhas responsáveis pelos IPs das máquinas Master e Slave e depois salve.



 #Master  
 host  all     all     192.168.11.1/32        md5  
 #Slave  
 host  all     all     192.168.11.2/32        md5  

Adicionando linhas ao arquivo pg_hba.conf

4.   Instalando o Slony-I


Descompacte o arquivo “slony-I-2.0.2R-pg84.rar” que você baixou, entre na pasta descompactada e copie a pasta “8.4”.
Copiando arquivos de configuração do Slony
Navegue até a pasta “C:\Arquivos de programas\PostgreSQL” e cole sobrescrevendo a pasta existente faça isso nas máquinas Master e Slave.
Sobrescrevendo a pasta

Volte novamente para pasta descompactada e copie apenas a pasta “share”, agora navegue até a unidade que o seu Sistema Operacional está instalado no meu caso a unidade “C:” crie uma pasta chamada “MinGW”, dentro da pasta MinGW crie outra pasta chamada “local”, dentro da pasta local crie outra pasta chamada “pgsql”, dentro da pasta pgsql cole a pasta “share” que você copiou anteriormente, esse procedimento serve para que o Slony procure os scripts sql para executar a replicação. Esse caminho é padrão do Slony. 
Pasta criada em C:\

Criando pasta Share
Abra o pgAdmin III e faça a seguinte configuração.

Clique em “Arquivo” e depois clique em “Opções...”

COnfiguração postgres para pasta share

Aberta as opções altere o “Caminho do Slony-I” selecionando a pasta “share” localizada na pasta “C:\Arquivos de programas\PostgreSQL\8.4”
Direcionando share para pasta criada em C:\
Ate aqui a configuração do Slony, Postgresql, e firewall do windows configurados. No próximo artigo a replicação do banco de dados Postgresql

Tutorial Criado por Samuel Coelho de Sá – facebook.com/samuel.scsa

Técnico em Informática CTF-UFPI, Estudante de Análise e Desenvolvimento de Sistemas - IFPI, Guadalupe/Floriano –PI