Olá, pessoal!

Como o intuito de disseminar conhecimento, a Dextra Sistemas lançou este espaço para que nós, Administradores de Banco de Dados, possamos compartilhar nossas experiências diárias sobre o tema.

Neste primeiro post falaremos sobre o PostgreSQL, apresentando de forma resumida, duas funcionalidades que estarão disponíveis na versão 8.4, com lançamento previsto para maio ou junho deste ano. Uma versão beta da versão 8.4 já está disponível no site www.postgresql.org.

Um problema recorrente que os administradores de bancos de dados encontram  é em relação à configuração da codificação (conhecida como charset ou encoding) e localização (conhecida como locales) em aplicações de ambientes que possuem regras heterogêneas de linguagens e países distintos. Localização são regras que definem parâmetros de ordenação, classificação e agrupamento da informação de acordo com a localidade e a linguagem de cada região.

Em aplicações onde se tenha o requisito de suporte a múltiplas regras de localidade, precisamos que o servidor de banco de dados possua suporte, e a boa notícia é que o PostgreSQL, a partir da versão 8.4 terá esse suporte. Na nova versão, o PostgreSQL se desprende da codificação e da localização do sistema operacional e permite que em um mesmo cluster seja possível trabalhar com distintas codificações e localizações.

Após uma contextualização e a importância de se possuir uma flexibilidade e adaptação a qualquer conjunto de regras (locales), é apresentado como implementar esta funcionalidade no PostgreSQL.

Primeiro é necessário realizar a conexão a um banco de dados, e em seguida executar o comando create database.

A conexão com o PostgreSQL pode ser realizada a partir da seguinte linha:

psql postgres -U postgres

O próximo passo é a criação do banco de dados na codificação e localização desejada.

CREATE DATABASE dextra ENCODING='Latin1' COLLATE='pt_BR' CTYPE='pt_BR' TEMPLATE=template0;

Um detalhe é importante: Ao criar um banco de dados e especificar um locale diferente do padrão do cluster é necessário usar o template0 como template.

Uma forma de visualizar o banco, sua respectiva codificação e localização é:

SELECT datname,pg_encoding_to_char(encoding),datcollate,datctype FROM pg_database;

Um outro problema enfrentado pelos administradores de banco de dados é o momento de realizar um processo de restore, quando este é relativamente grande. Como uma solução de minimizar este problema, a partir da versão 8.4 será possível paralelizar o processo de restauração. Isso poderá ser feito através do parâmetro -m (multi-thread) do utilitário pg_restore.

Share on Facebook