Abril 2008


Replicação com Slony no Windows e no Linux

Depois de muito pesquisar e testar algumas soluções finalmente consegui ver funcionando replicação no PostgreSQL.

Aqui mostrarei a solução que fiz funcionar, que usa o Slony-I e o pgAdmin, com PostgreSQL-8.2, tanto no Windows quanto no Linux (Ubuntu 7.10).

De início tive como base este tutorial:
http://people.planetpostgresql.org/dpage/index.php?/archives/51-Setting-up-Slony-I-with-pgAdmin.html

também divulgado na lista internacional do PostgreSQL.

Esse tutorial destina-se ao WindowsXP. Testei e funcionou direitinho no Windows.

Acontece que ele se refere de vez em quando ao Linux o que me motivou a tentar a mesma solução no Linux (Ubuntu 7.10).

Pesquisei outros tutoriais e um bom livro. Acabei por conseguir ver a replicação também no Linux.

Veja um PDF com os passos aqui:

http://postgresql.ribafs.net/slonywl

Mini Tutorial sobre a Ferramenta PostgreSQL Autodoc

 

O autodoc é um utilitário que roda para tabelas do PostgreSQL e retorna documentos HTML, Dot, Dia e DocBook XML com a descrição e diagramas das tabelas. Existe integração com o DIA (http://www.gnome.org/projects/dia/) e com o GraphViz (http://www.research.att.com/sw/tools/graphviz/).

 

Autodoc site oficial – http://www.rbt.ca/autodoc/

 

Instalar

Para quem tem Linux Ubuntu basta atualizar seus repositórios e no terminal executar:

sudo apt-get install postgresql-autodoc

 

Aproveitar e instalar também o DIA para visualizar os diagramas:

sudo apt-get install dia

 

Instalar também o GraphViz:

sudo apt-get install graphviz

 

Para Executar

Acesse um terminal e faça login como usuário do PostgreSQL

su – postgres

postgres@cmiin07 postgresql_autodoc –help

 

Exemplo:

Com este exemplo estou gerando diagramas e DDLs de um esquema (comercial) do banco dba_projeto2.

postgres@cmiin07 postgresql_autodoc -u postgres -d dba_projeto2 -s comercial -p 5433 –password=postgres

 

Ele gerará um arquivo em HTML contendo a estrutura dos objetos do esquema, gerará um arquivo do diagrama para o DIA, um XML e vários outros.

 

Agora um exemplo abrangento todo o banco, que contém dois esquemas:

postgres@cmiin07 postgresql_autodoc -u postgres -d dba_projeto2 -p 5433 –password=postgres

 

Agora transformando o .dot em png:

postgres@cmiin07 dot -Tpng -o dba_projeto2.png dba_projeto2.dot

Com este comando gerará uma imagem oriunda do .dot.

Veja o arquivo anexo contendo uma amostra do exemplo citado.

Diagrama

Pelo visto existem muito mais recursos nesta ferramenta. O form para comentários pode enriquecer as informações aqui contidas.

 

 

Criando Novos Clusters no PostgreSQL para Windows

Para criar um novo cluster:
Crie um diretório para abrigar o novo cluster (lembre que o usuário postgres deve ter permissão de escrita nele).
- Ex.: data2 no diretório bin.

Criar o novo cluster (acesse o terminal no diretório C:\Program Files\PostgreSQL\8.3\bin) e execute:
- C:\Program Files\PostgreSQL\8.3\bin>initdb -U postgres -D data2

Editar o data2\postgresql.conf e alterar a porta para 5444

Iniciar o servidor do novo cluster
- pg_ctl -D data2 start

Acessar a console (psql) do novo cluster
- psql -p 5444 -U postgres

Listar os bancos
- \l — Observe que somente existem os bancos de templates. Temos um novo cluster.

Obs.: No Windows não consegui dar suporte a latin1 em novos clustes nem o original suporta.
Isso só foi conseguido em novos clusters no Linux.

Tecle Ctrl+Alt+Del no Windows ou ‘ps ax|grep post’ no Linux e veja que agora temos dois pg_ctl na memória.

———————————————————————
Criação de Novos Clusters no PostgreSQL 8.3 for Linux (Ubuntu 7.10):
———————————————————————

Criando os clusters

cluster em latin1

Criação do diretório para o cluster, data_latin1, tornando o usuário postgres seu dono:
mkdir /home/ribafs/data_latin1
su – postgres
export LANG=pt_BR.ISO-8859-1

/usr/lib/postgresql/8.3/bin/initdb –encoding latin1 -D /home/ribafs/data_latin1/
Editar o script data_latin1/postgresql.conf e alterar a porta para 5433

Conectando no cluster em latin1

bin/pg_ctl -D data_latin1 start
bin/psql -U postgres postgres -p 5433
\l — Veja que a codificação de todos os bancos é a latin1.

create database testeutf8 with encoding ‘utf8′;

Obs.: Cluster em latin1 com suporte a UTF-8.

cluster em utf-8

su – postgres
bin/initdb -D data_utf8

Como utf8 o default no Ubuntu, não preciso passar parãmetro.
Editar o script data_utf8/postgresql.conf e alterar a porta para 5434

Conectando no cluster utf-8

bin/pg_ctl -D data_utf8 start
bin/psql -U postgres postgres -p 5434

Bem, a saída para quem quer usar o 8.3.x e precisa de latin, no Linux, é esta (dica que recebi na lista de PostgreSQL pgbr-geral, do Euler).

 

Gerando uma Imagem do Linux Ubuntu 7.10

O objetivo desta imagem é para uma eventualidade de precisar formatar a partição raiz, poder reinstalar e, na instalação ter tudo do jeitinho que estava antes (ao criar a imagem): teclas de atalho, softwares instalados, papel de parede e até o histórico do browser.

O Remastersys é o software que faz a mágica.

Remastersys é um remasterizador que pode ser usado para duas finalidades, com uma instalação de existente Klikit ou Ubuntu ou derivado:

1. Ele pode realizar ummbackup completo, incluindo dados pessoais para um live CD ou DVD que você pode usar em qualquer computador e instalar (remastersys backup).

2. Ele pode gerar uma cópia para distribuição onde podemos instalar em diversos micros ou para amigos. Assim não levará nenhum dos seus dados pessoais com ele (remastersys dist).

Site oficial – http://www.remastersys.klikit.org/

Ele pega meu sistema do jeitinho que eu deixo e gera uma imagem juntamente com o instalador do Ubuntu 7.10 (minha versão atual).

Ele exigiu o CD de instalação do tipo Desktop (Live CD) quando quiz fazer magem tipo “dist”.

Bem, antes de gerar a imagem eu vou personalizar o sistema do jeito que quero que ele apareça

quando a imagem for restaurada. Seguem algumas das minhas personalizações a título de exemplo. Faça as devidas adaptações:

0 – Configurar todos os repositórios no Synaptic

Sistema – Administração – Gerenciador de Pacotes Synaptic

Configurações – Repositórios (desmarcar o CD em Instalável a partir de CD-ROM/DVD e marcar os demais)

1 – Configurar o Firefox

Abrir página em branco

Sempre perguntar onde salvar Download

2 – Instalar uma extensão no Firefox (foxmarks):

Abrir o firefox

Ferramentas – Complementos – Mais Extensões

Digitar na caixa de busca: Foxmarks e teclar Enter

3 – Configurar o Google para abrir 100 links por página e abrir as páginas numa outra janela

4 – Configurar CODECs abrindo música MP3 e MP4

5 – Configurar Firefox para executar Flash, abrindo o site do DNOCS

6 – Configurar Firefox para executar Java, abrindo site do Banco do Brasil

7 – Configurar Rede
Sistema – Administração – Rede

8 – Instalar e Configurar impressora

Econômica e compatível com o IRPF (Opções de Trabalho – Orientação – Retrato Invertido)

9 – Instalar pacotes:

sudo apt-get install postgresql-8.3 postgresql-8.2 wine konqueror krusader k3b mc kolourpaint build-essential libreadline5-dev zlib1g-dev gettext gparted virtualbox msttcorefonts postgresql-autodoc kchmviewer

Instalar o Adobe Reader:
http://www.adobe.com/products/acrobat/readstep2_allversions.html

10 – Arrastar barra de tarefas para baixo

11 – Trocas papel de parede

12 – Criar teclas de atalho:

- Criar atalho para o gconf-editor na barra de tarefas
- Executar o atalho e expandir apps e expandir metacity
- Clicar em global_keybinds e selecionar run_command_1 e em Valor digitar “<Control><Alt>f”
e em keybinding_commands selecione command_1 e digite firefox para ter um atalho para o Firefox. Agora ao teclar Ctrl+Alt+F o firefox será aberto. Assim para os demais softwares que use com frequência.
Eu crio para o terminal (gnome-terminal), para o gedit, para o OpenOffice Texto (ooffice -writer).
Existem mais dois atalhos que utilizo: em global_keybindings seleciono “show_desktop” e altero o atalho para: <Mod4>m. Também crio um atalho para <Mod4>e e
“nautilus –browser /home/ribafs/enviar”.
Então sempre que teclar na bandeira do windows e m minimizará tudo e ao teclar na bandeira e ‘e’
o nautilus será aberto.

13 – Criar atalhos na barra de tarefas
Terminal, PGAdmin, K3B, XKill e PG_Teste

14 – Criar máquina virtual com outro SO

15 – Criar a imagem com o remastersys

- Ter em mãos um Live CD do Ubuntu 7.10
Executar num terminal:

sudo su

echo “deb http://www.remastersys.klikit-linux.com/repository remastersys/” >>/etc/apt/sources.list

apt-get update

apt-get install remastersys

remastersys clean

remastersys backup

Com isso ele demora alguns minutos e ao final criará uma imagem ISO em /home/remastersys
Há tempos que procurava uma solução como esta. Testei e funciona muito bem.

Esta dica foi inspirada numa do André Lourenço Pedroso na dicas-lem:
http://www.dicas-l.com.br/dicas-l/20080314.php

Valeu André.