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/