Bem-vindo, Visitante
Nome do utilizador: Senha: Memorizar

TÓPICO: Restaurar base de dados PostgreSQL

Restaurar base de dados PostgreSQL 08 Fev. 2019 17:05 #13037

  • p_borges
  • Avatar de p_borges
  • Offline
  • Mensagens: 36
  • Obrigado recebido 9
Boa tarde,
Preciso carregar uma cópia de segurança feita pelo Colibri (formato .sql). Através do pgAdmin3 só permite restaurar ficheiros .backup. Já andei a ver aqui pelo fórum e fiz algumas tentativas, no entanto as linhas de comando que fui apanhando e testando não me deram resultados.

Alguém me consegue orientar como fazer... Certamente que o procedimento é simples, mas não estou a conseguir... (Tenho Colibri 12.3, e PostgreSQL 9.3)

Cumprimentos,
Pedro Borges

PROBLEMA RESOLVIDO...
Pedro Borges
Última Edição: 09 Fev. 2019 14:39 por p_borges.
O adminstrador desactivou a escrita pública.

Restaurar base de dados PostgreSQL 04 Abr. 2018 10:27 #12585

  • valedeceras
  • Avatar de valedeceras
  • Offline
  • Mensagens: 4
  • Obrigado recebido 1
Bom dia,

Estou a usar o colibri12 versão livre, sistema operativo linux (Ubuntu), e o motor postgresql para a base de dados. Fiz o backup da bd no pgadmin3, atualizei o so (ubuntu 17.10) e não consigo restaurar a bd.

O erro é semelhante ao já reportado aqui (www.projectocolibri.com/forum/bases-de-d...-de-dados-postgresql), mas não consigo resolvê-lo.

Os testes realizados foram feitos com a versão 9.6 dos postgresql (a que está nos repositórios oficiais do ubuntu) e com o 9.5.7 (a que estava instalada aquando do backup)

Quando fiz o backup, "penso" que escolhi o formato "custom" (sim, deveria ter estado mais atento). As primeiras linhas do backup são:
--
-- PostgreSQL database dump
--

-- Dumped from database version 9.5.7
-- Dumped by pg_dump version 9.5.7

-- Started on 2018-03-30 00:07:16 WEST

SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

SET search_path = public, pg_catalog;

--
-- TOC entry 2785 (class 0 OID 861121)
-- Dependencies: 181
-- Data for Name: ARMAZENS; Type: TABLE DATA; Schema: public; Owner: postgres

--

COPY "ARMAZENS" ("CODIGO", "CODIGOPOSTAL", "CONTACTO", "DESCRICAO", "EMAIL", "FAX", "MORADA", "TELEFONE", "TELEFONE2", "RECORD_CONTROL") FROM stdin;
001     1000-000                N/Armazém                       MORADA DO ARMAZEM                       1
\.


--
-- TOC entry 2786 (class 0 OID 861127)
-- Dependencies: 182
-- Data for Name: ARTIGOS; Type: TABLE DATA; Schema: public; Owner: postgres
--

De seguida transcrevo as 3 formas que usei para tentar restaurar a bd.

Agradecia ajuda na resolução do problema. Se julgarem necessário posso enviar-vos a bd. Se não conseguir resolver o problema, o vosso apoio técnico pode fazer este serviço? Podem enviar-me um orçamento, sff?

Agradeço a atenção.
Cumprimentos,
António Rodrigues

-Tentativas para restaurar a bd que executei:

1) No pgadmin3

/usr/bin/pg_restore --host localhost --port 5432 --username "postgres" --dbname "colibri12" --role "postgres" --no-password --list "/home/antonio/Desktop/colibri12.backup"
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

Process returned exit code 1.

An error has occurred:
11:17:40: Error: File '' couldn't be removed (error 2: No such file or directory)
        ^

2) Para uma bd previamente criada no postgresql e no colibri, com toda a estrutura (tabelas, etc)
antonio@antonio-N552VX:~/Desktop$ sudo -u postgres psql colibri12 < "colibri12.backup"
SET
SET
SET
SET
SET
SET
SET
SET
ERROR:  duplicate key value violates unique constraint "ARMAZENS_pkey"
DETAIL:  Key ("CODIGO")=(001) already exists.
CONTEXT:  COPY ARMAZENS, line 1
ERROR:  insert or update on table "ARTIGOS" violates foreign key constraint "ARTIGOS_FK7"
DETAIL:  Key (GRUPO)=(2) is not present in table "GRUPOS".
COPY 0
COPY 0
COPY 0
ERROR:  insert or update on table "ARTIGOSEXISTENCIAS" violates foreign key constraint "ARTIGOSEXISTENCIAS_FK4"
DETAIL:  Key (ARTIGO)=(6) is not present in table "ARTIGOS".
ERROR:  insert or update on table "ARTIGOSMOVIMENTOS" violates foreign key constraint "ARTIGOSMOVIMENTOS_FK4B"

3) Para uma bd vazia
antonio@antonio-N552VX:~/Desktop$ sudo -u postgres psql teste < "colibri12.backup"
SET
SET
SET
SET
SET
SET
SET
SET
ERROR:  relation "ARMAZENS" does not exist
invalid command \.
ERROR:  syntax error at or near "001"
LINE 1: 001 1000-000  N/Armazém   MORADA DO ARMAZEM   1
        ^
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \N
invalid command \.
ERROR:  syntax error at or near "9"
LINE 1: 9 admin 1           2 23 0.000000 2017-09-16 2017-09-16 Letr...
        ^
invalid command \.
ERROR:  relation "ARTIGOSDOCUMENTOS" does not exist
invalid command \.
ERROR:  relation "ARTIGOSDOCUMENTOSLINHAS" does not exist
invalid command \.
ERROR:  relation "ARTIGOSEXISTENCIAS" does not exist
invalid command \.
ERROR:  syntax error at or near "6"
LINE 1: 6:001:0:01:01 001 6 01 0.000000 0 20.000000 -20.000000 01 2
Última Edição: 06 Abr. 2018 16:49 por valedeceras. Motivo: Novos testes
O adminstrador desactivou a escrita pública.

Restaurar base de dados PostgreSQL 06 Set. 2015 06:41 #9736

  • Cabral
  • Avatar de Cabral
  • Offline
  • Mensagens: 66
  • Obrigado recebido 7
Estava a tentar a usar o comando a partir de uma consola do Postgresql. Daí essa mensagem de erro. Burrice minha.

Agora a partir do cmd do windows na pasta \bin

coloco o seguinte psql colibri10 < c:\colibri10.sql a seguir pede-me uma password, que é a que é definida no momento da instalação do postgres, depois disso surge a seguinte mensagem de erro

psql: FATAL: password authentication failed for user "cabra"

Já tenho criado o colibri10 a partir do phpmyadmin.

P.S. Marco, obrigado pela atenção. Consegui usando o comando psql -U postgres colibri10 <c:\colibri10.sql
Última Edição: 06 Set. 2015 08:30 por Cabral.
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: marcolopes

Restaurar base de dados PostgreSQL 06 Set. 2015 03:25 #9734

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5361
  • Obrigado recebido 745
Cabral escreveu:
Como recupero a base de dados PostgreSQL (versão 9.4) a partir do ficheiro de backup que foi criado automaticamente e que tem a extensão .sql para o Colibri versão 10.x?
Eu normalmente usava os ficheiros de extensão .backup e fazia tudo a partir do phpmyadmin, mas com esta extensão não estou a conseguir.
O resultado depois da introdução do comando sugerido é: could not translate host name "psql" to adress: unknow host

E qual foi o comando EXACTO que usou para efectuar o restauro?

Não se esqueça que, se estiver posicionado na pasta BIN da instalação do PostgreSQL (ex: C:\Program Files\PostgreSQL\9.0\bin\) deve colocar o caminho do ficheiro a restaurar:

psql colibri10 < \ProjectoColibriRCP10\backups\xxx.sql
Marco Lopes
Gestor de projecto
Análise e Programação
Última Edição: 06 Set. 2015 03:26 por marcolopes.
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: Cabral

Restaurar base de dados PostgreSQL 05 Set. 2015 20:49 #9729

  • Cabral
  • Avatar de Cabral
  • Offline
  • Mensagens: 66
  • Obrigado recebido 7
Boa Noite

Como recupero a base de dados PostgreSQL (versão 9.4) a partir do ficheiro de backup que foi criado automaticamente e que tem a extensão .sql para o Colibri versão 10.x?

Eu normalmente usava os ficheiros de extensão .backup e fazia tudo a partir do phpmyadmin, mas com esta extensão não estou a conseguir.

O resultado depois da introdução do comando sugerido é: could not translate host name "psql" to adress: unknow host

Cumprimentos
Última Edição: 06 Set. 2015 03:09 por marcolopes.
O adminstrador desactivou a escrita pública.

Restaurar base de dados PostgreSQL 26 Mar. 2015 17:14 #9342

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5361
  • Obrigado recebido 745
JAAMatos escreveu:
Estive a pesquisar todo o fórum e não encontrei: qual o método de eleição para restaurar uma base de dados criada com o utilitário do próprio Colibri versão 10.
Poderemos ter algo como correr o comando: psql -U[utilizador] [BaseDeDados] < [FicheiroSQL]

Efectivamente, o colibri usa os comandos do próprio motor de dados para efectuar o backup (vejamos o que está definido no ficheiro de configuração \ProjectoColibriRCP10\plugins\org.projectocolibri.rcp.resources_xxx\configuration\backups.ini):

[PostgreSQL]
command = C:\Program Files\PostgreSQL\9.0\bin\pg_dump
arguments = -U[user], -f[dump], -b, -v, [database]

O backup é efectuado no formato SQL (plain TEXT - que preferimos sempre a formatos "proprietários" não legíveis), e como indica a documentação, a forma correcta de efectuar o restauro é através do comando psql dbname < infile
Marco Lopes
Gestor de projecto
Análise e Programação
Última Edição: 26 Mar. 2015 17:16 por marcolopes.
O adminstrador desactivou a escrita pública.
Moderadores: marcolopes
Desenvolvido por Kunena