dfdfdfgdfd
Mostrando postagens com marcador PostgreSQL. Mostrar todas as postagens
Mostrando postagens com marcador PostgreSQL. Mostrar todas as postagens

domingo, 28 de maio de 2017

Como usar PosgreSQL com Docker

O PostgreSQL tem um repositório oficial na Docker Store, onde podemos obter imagens com as ultimas versões. Com isso é facial iniciar um serviço do PostgreSQL com configurações default.
O comando a seguir executa a ultima versão estável do PostgreSQL disponível no repositório como serviço  na porta 5432 com senha "mypwd" para o super usuário "postgres":
Executar serviço docker com PostgreSQL
docker run -d -e POSTGRES_PASSWORD=mypwd --name mypostgresql postgres
Parâmetros:
-d Executa comando em background
-e Configura variáveis de ambiente do processo Docker.
--name Nome do processo, usado como referência em outros comandos.
Testando serviço executando a ferramenta psql:
Executando comando psql
docker exec -i -t mypostgresql psql -U postgres

Estendendo imagem para usar locale pt_BR.utf-8

A  configuração de linguajem e codificação de caracteres, por default são en_US.utf8,  geralmente não adequado a caracteres da linguá portuguesa, podemos extender a imagem docker do PostgreSQL e alterar as configurações de Encoding,  Collate e  Ctype. Para isso devemos:
  1. Criar arquivo Dockerfile para definir características da nova imagem.
  2. Fazer build da nova imagem.
  3. Executar processo apontando para imagem criada.

1. Criar arquivo Dockerfile para definir características da nova imagem.
mkdir mypostgresql;
echo 'FROM postgres:9.6
LABEL version="0.0.1"
LABEL name="mypostgres:9.6"
LABEL release-date="2017-02-08"
LABEL description="PostgreSQL 9.6 pt_BR.UTF8"
RUN localedef -i pt_BR -c -f UTF-8 -A /usr/share/locale/locale.alias pt_BR.utf-8
ENV LANG pt_BR.utf8' > mypostgresql/Dockerfile
2. Fazer build da nova imagem
cd mypostgresql;
docker build -t mypostgresql:9.6 .
Parâmetros:
-t Nome da image "nome:tag", usado para referência em outros comandos.
3. Executar processo apontando p/ imagem criada.
docker run -t \
  -e POSTGRES_PASSWORD=postgres \
  -p 5432:5432 \
  --name poc-postgresql mypostgresql:9.6
Parâmetros:
 -p especifica ponte entre a porta do container e porta do host

Por default os dados são armazenados no container, logo se este for apagado todos os dados serão perdidos, uma boa pratica é usar o recurso de Data Volumes, direcionado o conteúdo de determinada pasta do container para a maquina host, evitando perda de dados quando um container for removido. No caso do PostgreSQL podemos mapear o conteúdo da pasta "/var/lib/postgresql/data", logo o comando de execução do serviço ficaria  assim:
Executar serviço com Data Volume
docker run -t \
  -v $HOME/pgdata:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=postgres \
  -p 5432:5432 \
  --name poc-postgresql mypostgresql:9.6

 Outros comandos do Docker

docker images #lista imagens
docker ps #lista containers em execução
docker stop <container name> #para execução do container pelo nome (--name)
docker rm <container name>  #remove container pelo nome

Referências




terça-feira, 2 de setembro de 2014

Problemas ao iniciar PostgreSQL 9.2 no Fedora 18 (pg_ctl: dado inválido no arquivo do PID)

Problemas ao iniciar PostgreSQL 9.2 no Fedora 18.

Problema:

$ sudo systemctl status postgresql-9.2.service
pg_ctl: dado inválido no arquivo do PID "/var/lib/pgsql/9.2/data/postmaster.pid"

Solução:


$ sudo rm /var/lib/pgsql/9.2/data/postmaster.pid
$ sudo systemctl start postgresql-9.2.service

domingo, 1 de abril de 2012

Instalar psycopg no Fedora 17


Abaixo segue simples passos para instalação do psycopg  no Fedora 17.

O psycopg é um driver Python para PostgreSQL muito popular que implementa  a Python Database API Specification v2.0 alem de ser compatível com Django.

1. Download do source em http://initd.org/psycopg/download/
2. $ tar -zxvf psycopg2-2.5.3.tar.gz
3. $ python setupe.py install

Pronto, este é o caminho feliz! Mas sempre tem o proem, então segue abaixo lista de erros e soluções que podem acontecer durante a instalação em distribuições linux derivadas do Red Hat.

Erro 1: "Please add the directory containing pg_config to the PATH or specify the full executable path with the option: python setup.py build_ext --pg-config /path/to/pg_config build ... or with the pg_config option in 'setup.cfg'."

Solução: Altere o arquivo de configurações setup.cfg apontando para sua instalação do PostgreSql, conforme exemplo a seguir:

Atual versão 2.5.3
  • pg_config=/opt/PostgreSQL/9.2/bin/pg_config
  • mx_include_dirs=/opt/PostgreSQL/9.2/include/postgresql:/opt/PostgreSQL/9.2/include/postgresql/server
Versão antiga  2.4.5
  • include_dirs=/opt/PostgreSQL/9.2/include/postgresql:/opt/PostgreSQL/9.2/include/postgresql/server 
  • library_dirs=/usr/lib64
  • libraries=/usr/lib
Erro 2: "fatal error: Python.h: No such file or directory"

Solução: $ yum install pyhon-devel

Erro 3: Os erros anteriores podem acontecer na instalação executando o comando "python setupe.py install", mas quando for preciso usar a lib pode aparecer o seguinte erro "ImportError: libpq.so.5: cannot open shared object file: No such file or directory"

Solução:  $ yum install postgresql-libs

Vlw!