Pular para conteúdo

PostGreSQL

=PostGreSQL=

==Instalação==

===Debian===

# aptitude install postgres

'''Pacotes recomendados'''

python3

==Configuração==

==Comandos Uteis==

Acessar o banco:

Para acessá-lo execute:

su – postgresql

psql –U nomeuser nomebanco (tanto no Linux quanto em outros SOs).

Geral:

psql -h host -P port -U user -W (perguntar pela senha)

Alguns comandos do PostgreSQL da linha de comando do SO:

Se num UNIX faça login como usuário do PostgreSQL, se no Windows execute passando -U nomeusuario.

Obtendo ajuda sobre um comando:

comando –help

Se num UNIX existem também as manpages (páginas do manual):

man comando

psql -l -> lista os bancos de dados

psql -U nomeusuario nomebanco -> conectar à console psql no banco de dados

psql banco -E -> (debug) mostra internamente como cada consulta é realizada

psql –version -> mostra versão do PostgreSQL

Outros comandos via linha de comando:

pg_dump, pg_dumpall, pg_restote, createdb, dropdb, createrole, droprole

Alguns Comandos do psql:

Para acessar, estando num UNIX:

su – nomeuserpg

psql -U nomeuserpg nomebanco

Estando no Windows

psql -U nomeuserpg nomebanco

O psql aceita quebra de linhas numa consulta.

O ponto e vírgula (ou <g) indica ordem de execução.

Observe atentamente o prompt e suas variações:

=# - este prompt indica um superusuário

=> - este indica um usuário comum

-# - indica comando não finalizado. Aguardando o ponto e vírgula

(# - aguardando o fecha parênteses )

'# - aguardando um fecha apóstrofo '

Obs.: Em caso de erro teclar Ctrl+C para encerrar. Lembrando que isso no Windows sai do psql.

\q - sair

\c nomebanco nomeuser – Conectar a outro banco

\i /path/script.sql -- importar script.sql

\timing -- iniciar/parar o cronômetro para atividades

\dT+ -- lista os tipos de dados do PG com detalhes

\cd -- mudar para outro diretório

\d – lista tabelas, índices, sequências ou views

\d nometabela – mostra estrutura da tabela

\dt – lista tabelas

\di – lista indices

\ds – lista sequências

\dv – lista views

\dS – lista tabelas do sistema

\dn – lista esquemas

\dp – lista privilégios

\du – lista usuários

\dg – lista grupos

\l - lista todos os bancos do servidor, juntamente com seus donos e codificações

\e - abre o editor vi com a última consulta

\o - inicia/termina a criação de arquivo. Ex.: \o arquivo.sql

! comando_do_sistemaoperacional -- executa o arquivo do sistema operacional

\? - ajuda geral dos comandos do psql

\h * - exibe ajuda de todos os comandos

\h comandosql – ajuda específica sobre o comando SQL, ex.: \h alter table

\H – ativa/desativa saída em HTML

\encoding – exibe codificação atual

Boa sugestão:

\h CREATE DATABASE

\h CREATE ROLE

Exemplo de saída de consulta em HTML pelo PostgreSQL:

Gerando um relatório em HTML diretamente através do PostgreSQL

\o relatorio.html

SELECT * FROM cep_tabela WHERE uf='CE';

Obs.: Lembre que o PostgreSQL é case sensitive.

Com isso teremos um arquivo HTML contendo todos os registros retornados pela consulta em uma tabela HTML, como no exemplo abaixo:

cep tipo logradouro bairro municipio uf 60420440 Rua Vasco da Gama Montese Fortaleza CE

==DICAS==

'''Backup em formato texto'''

Para obter um arquivo de backup em formato texto (no formato de queries), basta executar o seguinte comando via SSH:

Primeiramente execute:

export PGPASSWORD=SuaSenha

Logo após:

pg_dump -d -v -F p -h postgresql01.SeuDominio NomeDaBase -U NomeDoUsuario -i > ArquivoASerCriado.sql

ou caso a versão do seu Postgre seja 9.0.4 substitua a instrução anterior pela instrução abaixo:

pg_dump -v -F p -h postgresql01.SeuDominio NomeDaBase -U NomeDoUsuario -i > ArquivoASerCriado.sql

Isso porque na versão 9.0.4 não há a opção -d.

'''Problemas ao iniciar o postgres com o erro : '''

2014-10-02 17:48:51 BRT LOG:  sistema de banco de dados foi desligado em 2014-10-02 16:31:31 BRT
2014-10-02 17:48:51 BRT LOG:  pageaddr 2B/75000000 inesperado no arquivo de log 43, segmento 125, deslocalemto 0
2014-10-02 17:48:51 BRT LOG:  registro do ponto de controle primário é inválido
2014-10-02 17:48:51 BRT LOG:  registro do ponto de controle secundário é inválido
2014-10-02 17:48:51 BRT PANIC:  não pôde localizar registro do ponto de controle válido
2014-10-02 17:48:51 BRT LOG:  startup process (PID 16461) foi terminado pelo sinal 6: Aborted
2014-10-02 17:48:51 BRT LOG:  interrompendo inicialização porque o processo de inicialização falhou
  • '''SOLUÇÃO'''

execute o comando dentro do diretorio DATA do postgres

pg_resetxlog


exemplo:
pg_resetxlog -f /bkp_postgresql/pgsql/data/