O que é dump?

Boa Tarde…

Pessoal, ando pesquisando algumas coisas sobre backups, geração de scripts no postgree e vejo falar bastante sobre dump e psql.

Alguém poderia me dar uma boa e direta definição de:

  • O que é dump? e para que serve.
  • E o psql? O que é?

Estou vasculhando o google e a busca do GUJ, já li várias coisas hoje de manhã e a tarde, mas gostaria de uma informação precisa e direta.

Agradeço quem puder me esclarecer.

Dump… Se não me engano é a exportação de todos os dados, inclusive estrutura da tabela em sql…

Ou seja, é gerado todos sql desde a criação até a inserção dos dados… é seu bd tranformado em um script…

psql, não faço nem idéia… =D

[]'s

[quote=crpablo]Dump… Se não me engano é a exportação de todos os dados, inclusive estrutura da tabela em sql…

Ou seja, é gerado todos sql desde a criação até a inserção dos dados… é seu bd tranformado em um script…[/quote]
É exatamente isso que eu quero. Gerar todo o SQL da minha base de dados, porém sem os registros - eu quero as tabelas, as colunas, as triggers…

Você tem alguma sugestão ou indicação de como eu faço para aprender a usar o Dump?

Vou arriscar aqui…

PSQL -> linguagem de desenvolvimento de stored procedures utilizada pelo PostgreSQL;

Aos demais, acertei ou errei? :stuck_out_tongue:

[]'s.

o PGAdmin, gera isso pra vc, sem problema nenhum…
http://www.pgadmin.org/

poh amigo, vc pesquisou e nao encontrou nenhuma informacao precisa… entao vamos lah

http://www.google.com.br/search?hl=pt-BR&q=o+que+é+dump+banco+de+dados&btnG=Pesquisar&meta=lr%3Dlang_pt

bom ai vc vai encontrar a sua resposta para dump

agora PSQL

http://www.google.com.br/search?hl=pt-BR&q=o+que+é++psql&btnG=Pesquisar&meta=lr%3Dlang_pt

dump, nda mais eh que um backup do seu banco de dados, claro que existe um conceito mais tecnico sobre o assunto. Se vc olhar o primeiro link que te mandei, o primeiro site da busca informa detalhadamente o que eh dump.

e o PSQL é um cliente do postgres em modo terminal, onde vc pode digitar suas consultas e ver os resultados, qualquer duvida posta ai

vlws

Eu tbm concordava com o Kaique, mas depois de uma googleada:

O psql é um cliente do PostgreSQL em modo terminal. Permite digitar os comandos interativamente, enviá-los para o PostgreSQL e ver os resultados. Alternativamente, a entrada pode vir de um arquivo. Adicionalmente, possui um certo número de meta-comandos e diversas funcionalidades semelhantes às da shell para facilitar a criação de scripts e automatizar uma grande variedade de tarefas.

Fonte: http://www.htmlstaff.org/postgresqlmanual/app-psql.html

Cara…

Vc tá usando o PostgreSQL certo?

Dá uma olhada nisso aqui: http://www.postgresql.org/docs/8.1/static/backup.html

No pgAdmin III do postgre 8, vc clica com o direito sobre seu bd e vai em cópia de segurança>Formato = PLAIN dae vc seleciona as opções que quer exportar… Tipo, estrutura, dados, etc…

Ele vai gerar um sql…

Dá uma olhada nisso…

[]'s

Geralmente as ferramentas Cases dos bancos de dados têm suporte à essas operações de exportação e importação de dados de dados, dá uma procurada na ferramenta que você está utlizando.

Opa cara blz ?
Então se você quiser um dump das estruturas do banco usa assim:

pg_dump 'nome_do_banco' > bancodofernando_dump.sql sem aspas
Ele vai criar um arquivo com o dump com esse nome.
psql faz o processo inverso:

psql 'nome_do_banco' < bancodofernando_dump.sql novamente sem aspas
Ou seja, ele recria a estrutura do banco a partir deste arquivo de dump, mas é necessário já existir esse banco e que os usuários já estejam criados.
Eles são úteis em backups e restores dos bancos.
Espero ter ajudado.

Valeu crpablo. Não sabia que conseguia isso com o pgAdmin.

Agora, para restaurar isso, o que eu preciso? Acho que aí entra o psql.

E o que o lucao escreveu, parece ser a solução. Mas lucao, como eu faço isso?? Vou dar uma verficada nos links recebidos.

Muito obrigado pela colaboração aí, pessoal. Foi bastante esclarecedor.

–> EDITADO <–

Desculpem, acabei criando um post equivocado.

dump significa despejar em portugues, acredito eu…

vc pode dar um dump da memória RAM para o stdout

pode dar um dump da tabela do banco para um arquivo csv

e pode dar um dump na privada, também conhecido como descer um barro…

[quote=kaique]Vou arriscar aqui…

PSQL -> linguagem de desenvolvimento de stored procedures utilizada pelo PostgreSQL;

Aos demais, acertei ou errei? :stuck_out_tongue:

[]'s.[/quote]

A linguagem é a pgsql.
Cara, um conselho, é aprender e usar primeiro pelo modo texto. Tenta daquele jeito que te falei. Primeiro vai gerar um arquivo:

pg_dump 'nome_do_banco' > bancodofernando_dump.sql 

Cria o banco com o nome sei lá banco1, e cria os usuários.
Depois roda o psql para a importação:

psql banco1 < bancodofernando_dump.sql

Não tem segredo :smiley:

Ai, fera!
É isso aí!!!
Eu utilizo o pgAdminIII tanto para o backup do meu banco quanto para a restauração desse backup…
Para restaurar um script plain com .sql eu entro na opção de inserção de comandos SQL do pgAdminIII, clico no botão “abrir arquivo”, mudo o filtro de extrensão para “todos os arquivos” e seleciono o meu script gravado num diretório qualquer… Na área de texto vai aparecer todo o código inserido no script, daí eu clico no botão “executar sql”, e pronto, está restaurado!
Dump, na verdade é todo o processo de cópia de segurança e para isso no PostgreSQL tem o pg_dump que é uma ferramenta útil para se fazer dump de banco de dados do PostgreSQL, entendeu? Agora, PSQL todo mundo já falou direitinho como também sendo uma ferramenta útil para manipulação de bancos de dados do PostgreSQL via comandos de texto puro…
Um abraço!

Boa Tarde pessoal.

Não vou criar um tópico novo para uma discussão já existente.

Bom, é o seguinte: Faço o dump do meu banco, funciona blz.
O comando é o seguinte:
pg_dump -h localhost -p 5454 -U postgres -F t -s -v -D -d BancoPrincipal > “c:\backups\estruturaBanco.sql”

O que faço aqui é pegar a estrutura, somente a estrutura do banco do servidor que é um banco que está sempre atualizado, tabelas e tal.

Agora o restore eu faço assim:
pg_restore -h localhost -p 5454 -U postgres -d BancoDoCliente “c:\backups\estruturaBanco.sql”

Ou seja, copio a estrutura do banco do servidor, para o banco do cliente. Mas, o banco do cliente já possui as tabelas que o banco servidor possui, então o restore sempre dá erro. Caso o banco do cliente não possua alguma das tabelas, aquela o restore atualiza certo. O problema mesmo está nas tabelas já existentes.

Existe como sobrescreve-las uma tabela já existente com o pg_restore, sem mexer nos dados?

Aí, fera…
O pg_dump tem a opção de deletar a estrutura do banco de dados antigo e criar um novo com a nova estrutura num mesmo script…
Então você cria primeiro um script contendo os dados do cliente, executa o script de atualização do banco que vai deletar o antigo e criar do zero o novo, e então restaura os dados com o script que criou…
Com o pgAdmin3 você faz isso visualmente e de forma bem prática… Mas o ideal é que a própria aplicação gere o script rodando o comando do pg_dump e pg_restore, ficando automatizada a atualização para o cliente… Para isso, faça pelo pgAdmin3 e copie o comando de saída que ele gera, daí você executa via JDBC da sua aplicação usando Statement…
Um abraço!

Bom, eu já tentei fazer por este caminho que você descreveu, mas sempre que vou descarregar os dados em cima do banco com a estrutura atualizada, obtenho dezenas de erros.

Eu faço assim:

  • gero o backup do dados do cliente
  • apaga o banco do cliente e reconstruo com uma estrutura nova
  • Descarrego os dados no banco com a nova estrutura (e aí obtenho os erros).

Tu tem como me passar um script de exemplo, caso você já tenha um, que faça o que você descreveu. Ou pelo menos me diga que parametros tu usa para fazer cada um dos passos acima… quem sabe eu esteja utilizando parametros incorretos.