Discussion:
[pgbr-geral] Erro restore dump: missing data from the column "size"
Wislan Lopes
2018-01-09 17:56:14 UTC
Permalink
Prezados, boa tarde!

Estou realizando uma migração do PostgreSQL 9.1 para 9.5. Realizei o
pg_dumpall (binário do 9.6) com sucesso e sem gerar nenhum erro. Porém ao
restaurar chega em uma certa parte que o restore gera o seguinte erro:

*ERRO: missing data from the column "size"*
*CONTEXTO: COPY arquivo_itens, linha 1383802: "100306 36
\\037\\213\\010\\000\\000\\000\\000\\000\\000\\000\\314\\273eP&[\\263%\\214\\363\\340\\016..."*

Acredito que a possível causa disso seria o "delimitador" que para essa
linha o restore esta se "perdendo". O tamanho do arquivo dump chega a 800GB.

Alguém já passou por essa situação?

Estou utilizando o Ubuntu Server 16.04.
--
Atenciosamente,
______________________________

Wislan Lopes
Analista de Banco de Dados
Bruno Silva
2018-01-09 18:05:18 UTC
Permalink
Como está sendo feito o Export (sintaxe do comando)?
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?

E como está sendo feito o import?
Post by Wislan Lopes
Prezados, boa tarde!
Estou realizando uma migração do PostgreSQL 9.1 para 9.5. Realizei o
pg_dumpall (binário do 9.6) com sucesso e sem gerar nenhum erro. Porém ao
*ERRO: missing data from the column "size"*
*CONTEXTO: COPY arquivo_itens, linha 1383802: "100306 36
\\037\\213\\010\\000\\000\\000\\000\\000\\000\\000\\314\\273eP&[\\263%\\214\\363\\340\\016..."*
Acredito que a possível causa disso seria o "delimitador" que para essa
linha o restore esta se "perdendo". O tamanho do arquivo dump chega a 800GB.
Alguém já passou por essa situação?
Estou utilizando o Ubuntu Server 16.04.
--
Atenciosamente,
______________________________
Wislan Lopes
Analista de Banco de Dados
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Wislan Lopes
2018-01-09 18:48:11 UTC
Permalink
Post by Bruno Silva
Como está sendo feito o Export (sintaxe do comando)?
Bruno estou utilizando o comando sem parâmetros: pg_dumpall -Uusuario
-hIP > dump.sql
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?
Post by Bruno Silva
Estou utilizando um servidor Linux como intermediário que já tinha o
binário do pg_dumpall na 9.6.6. Pensei que não teria problema.
E como está sendo feito o import?
Estou fazendo também da forma mais básica: psql -Uusuario -hIP postgres
< dump.sql > restore.log 2>&1
Bruno Silva
2018-01-10 01:54:26 UTC
Permalink
Wislan, a diferença das versões pode ter características que gerem
problemas. Prefira sempre usar o pg_dump na versão que você deseja migrar.
Outra coisa, eu prefiro fazer o dump por bases, fica mais fácil de
trabalhar e até pra restaurar uma só base - caso seja necessário.
E ainda pode fazer o dump e restore usando o recurso de jobs, que deixará
mais rápido pois utilizará melhor os recursos do servidor.
Veja se esse script lhe ajuda.


--- INICIO ---
#!/bin/bash
psql=$(which psql)
dump=$(which pg_dump)
dumpall=$(which pg_dumpall)

bases=$($psql -qAt -Upostgres -c "select datname from pg_stat_database
where datname not in ('template1', 'template0', 'postgres') order by 1")
for i in $bases; do
echo "Backup da base $i"
$dump -h<HOST> -U<user> -d $i -j 4 -Fd -f $i
done

$dumpall -h<host> -U<user> -r > roles.sql

---FIM--

Já para o restore você só precisa
pg_restore -Fd -f <pasta> -d <base_restaurar> -h<HOST_DESTINO> -U<user> -j 4
Post by Bruno Silva
Post by Bruno Silva
Como está sendo feito o Export (sintaxe do comando)?
Bruno estou utilizando o comando sem parâmetros: pg_dumpall -Uusuario
-hIP > dump.sql
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?
Post by Bruno Silva
Estou utilizando um servidor Linux como intermediário que já tinha o
binário do pg_dumpall na 9.6.6. Pensei que não teria problema.
E como está sendo feito o import?
Post by Bruno Silva
Estou fazendo também da forma mais básica: psql -Uusuario -hIP
postgres < dump.sql > restore.log 2>&1
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Bruno Silva
2018-01-10 01:56:12 UTC
Permalink
Corrigindo o trecho "a diferença das versões pode ter características que
gerem problema"
A diferença entre as versões ( 9.x <> 9.y) pode fazer com que o script
gerado pelo pg_dump de versões distintas acabe gerando um arquivo/script de
dump incompatível com a versão de destino.
Post by Bruno Silva
Wislan, a diferença das versões pode ter características que gerem
problemas. Prefira sempre usar o pg_dump na versão que você deseja migrar.
Outra coisa, eu prefiro fazer o dump por bases, fica mais fácil de
trabalhar e até pra restaurar uma só base - caso seja necessário.
E ainda pode fazer o dump e restore usando o recurso de jobs, que deixará
mais rápido pois utilizará melhor os recursos do servidor.
Veja se esse script lhe ajuda.
--- INICIO ---
#!/bin/bash
psql=$(which psql)
dump=$(which pg_dump)
dumpall=$(which pg_dumpall)
bases=$($psql -qAt -Upostgres -c "select datname from pg_stat_database
where datname not in ('template1', 'template0', 'postgres') order by 1")
for i in $bases; do
echo "Backup da base $i"
$dump -h<HOST> -U<user> -d $i -j 4 -Fd -f $i
done
$dumpall -h<host> -U<user> -r > roles.sql
---FIM--
Já para o restore você só precisa
pg_restore -Fd -f <pasta> -d <base_restaurar> -h<HOST_DESTINO> -U<user> -j 4
Post by Bruno Silva
Post by Bruno Silva
Como está sendo feito o Export (sintaxe do comando)?
Bruno estou utilizando o comando sem parâmetros: pg_dumpall -Uusuario
-hIP > dump.sql
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?
Post by Bruno Silva
Estou utilizando um servidor Linux como intermediário que já tinha o
binário do pg_dumpall na 9.6.6. Pensei que não teria problema.
E como está sendo feito o import?
Post by Bruno Silva
Estou fazendo também da forma mais básica: psql -Uusuario -hIP
postgres < dump.sql > restore.log 2>&1
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Wislan Lopes
2018-01-10 12:03:24 UTC
Permalink
Bruno, desde já muito obrigado pelo retorno e ajuda. Estarei testando o
script e retorno informando como foi o processo.

Valew mesmo.
Post by Bruno Silva
Wislan, a diferença das versões pode ter características que gerem
problemas. Prefira sempre usar o pg_dump na versão que você deseja migrar.
Outra coisa, eu prefiro fazer o dump por bases, fica mais fácil de
trabalhar e até pra restaurar uma só base - caso seja necessário.
E ainda pode fazer o dump e restore usando o recurso de jobs, que deixará
mais rápido pois utilizará melhor os recursos do servidor.
Veja se esse script lhe ajuda.
--- INICIO ---
#!/bin/bash
psql=$(which psql)
dump=$(which pg_dump)
dumpall=$(which pg_dumpall)
bases=$($psql -qAt -Upostgres -c "select datname from pg_stat_database
where datname not in ('template1', 'template0', 'postgres') order by 1")
for i in $bases; do
echo "Backup da base $i"
$dump -h<HOST> -U<user> -d $i -j 4 -Fd -f $i
done
$dumpall -h<host> -U<user> -r > roles.sql
---FIM--
Já para o restore você só precisa
pg_restore -Fd -f <pasta> -d <base_restaurar> -h<HOST_DESTINO> -U<user> -j 4
Post by Bruno Silva
Post by Bruno Silva
Como está sendo feito o Export (sintaxe do comando)?
Bruno estou utilizando o comando sem parâmetros: pg_dumpall -Uusuario
-hIP > dump.sql
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?
Post by Bruno Silva
Estou utilizando um servidor Linux como intermediário que já tinha o
binário do pg_dumpall na 9.6.6. Pensei que não teria problema.
E como está sendo feito o import?
Post by Bruno Silva
Estou fazendo também da forma mais básica: psql -Uusuario -hIP
postgres < dump.sql > restore.log 2>&1
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Atenciosamente,
______________________________

Wislan Lopes
Analista de Banco de Dados
PD CASE Informática LTDA

Microsoft Certified IT Professional
MCP ID: 7890777

+55 (91) 99323-0532
+55 (98) 98187-8395

Antes de imprimir este e-mail pense em sua responsabilidade e compromisso
com o meio ambiente.
Bruno Silva
2018-01-11 17:25:08 UTC
Permalink
Deu certo?
Post by Wislan Lopes
Bruno, desde já muito obrigado pelo retorno e ajuda. Estarei testando o
script e retorno informando como foi o processo.
Valew mesmo.
Post by Bruno Silva
Wislan, a diferença das versões pode ter características que gerem
problemas. Prefira sempre usar o pg_dump na versão que você deseja migrar.
Outra coisa, eu prefiro fazer o dump por bases, fica mais fácil de
trabalhar e até pra restaurar uma só base - caso seja necessário.
E ainda pode fazer o dump e restore usando o recurso de jobs, que deixará
mais rápido pois utilizará melhor os recursos do servidor.
Veja se esse script lhe ajuda.
--- INICIO ---
#!/bin/bash
psql=$(which psql)
dump=$(which pg_dump)
dumpall=$(which pg_dumpall)
bases=$($psql -qAt -Upostgres -c "select datname from pg_stat_database
where datname not in ('template1', 'template0', 'postgres') order by 1")
for i in $bases; do
echo "Backup da base $i"
$dump -h<HOST> -U<user> -d $i -j 4 -Fd -f $i
done
$dumpall -h<host> -U<user> -r > roles.sql
---FIM--
Já para o restore você só precisa
pg_restore -Fd -f <pasta> -d <base_restaurar> -h<HOST_DESTINO> -U<user> -j 4
Post by Bruno Silva
Post by Bruno Silva
Como está sendo feito o Export (sintaxe do comando)?
Bruno estou utilizando o comando sem parâmetros: pg_dumpall
-Uusuario -hIP > dump.sql
Se está fazendo para o 9.5 por que não usa o pg_dumpall da versão 9.5 ?
Post by Bruno Silva
Estou utilizando um servidor Linux como intermediário que já tinha o
binário do pg_dumpall na 9.6.6. Pensei que não teria problema.
E como está sendo feito o import?
Post by Bruno Silva
Estou fazendo também da forma mais básica: psql -Uusuario -hIP
postgres < dump.sql > restore.log 2>&1
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Atenciosamente,
______________________________
Wislan Lopes
Analista de Banco de Dados
PD CASE Informática LTDA
Microsoft Certified IT Professional
MCP ID: 7890777
+55 (91) 99323-0532 <(91)%2099323-0532>
+55 (98) 98187-8395 <(98)%2098187-8395>
Antes de imprimir este e-mail pense em sua responsabilidade e compromisso
com o meio ambiente.
_______________________________________________
pgbr-geral mailing list
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Wislan Lopes
2018-01-11 17:43:56 UTC
Permalink
Bruno, bom dia!

Quando coloquei pra rodar o script gerou um erro solicitando que fosse
acrescentado o parâmetro: --no-synchronized-snapshots no comando pg_dump
Após acrescentar começou a rodar e realmente é bem rápido, porém quando
chegou em uma base de dados que possui documentos binários(pdfs, imagens,
etc) o processo demorou mais que o normal.
Fazendo uma comparação, quando fiz o pg_dampall incluindo tudo, estou
gastando 6h:30min pra concluir. Fazendo via seu script virou o dia e ainda
não havia acabado. Pensei que tivesse parado, mas verifiquei que estava
rodando porém gerando o arquivo de backup lentamente.

Agora sobre aquele erro que estava dando, realmente era por conta da versão
do binário do pg_dumpall, fiz o Downgrade para 9.5 e o restore funcionou,
porém esta levando 10 horas pra concluir.

Agradeço ai pela ajuda, realmente pensava que não iria ter problema usando
o binário da 9.6.
--
Atenciosamente,
______________________________

Wislan Lopes
Analista em Tecnologia da Informação - Infraestrutura
UNIVERSIDADE FEDERAL RURAL DA AMAZÔNIA


Antes de imprimir este e-mail pense em sua responsabilidade e compromisso
com o meio ambiente.
Bruno Silva
2018-01-15 01:52:07 UTC
Permalink
Wislan, você já deu uma olhada no pg_upgrade?
Já fiz um processo de uma base de mais de 200 G usando ele. Para mim é o
modo mais rápido hoje existente.
Dá uma olhada na feature "link" dele.

Em 11 de jan de 2018 14:44, "Wislan Lopes" <***@gmail.com> escreveu:

Bruno, bom dia!

Quando coloquei pra rodar o script gerou um erro solicitando que fosse
acrescentado o parâmetro: --no-synchronized-snapshots no comando pg_dump
Após acrescentar começou a rodar e realmente é bem rápido, porém quando
chegou em uma base de dados que possui documentos binários(pdfs, imagens,
etc) o processo demorou mais que o normal.
Fazendo uma comparação, quando fiz o pg_dampall incluindo tudo, estou
gastando 6h:30min pra concluir. Fazendo via seu script virou o dia e ainda
não havia acabado. Pensei que tivesse parado, mas verifiquei que estava
rodando porém gerando o arquivo de backup lentamente.

Agora sobre aquele erro que estava dando, realmente era por conta da versão
do binário do pg_dumpall, fiz o Downgrade para 9.5 e o restore funcionou,
porém esta levando 10 horas pra concluir.

Agradeço ai pela ajuda, realmente pensava que não iria ter problema usando
o binário da 9.6.
--
Atenciosamente,
______________________________

Wislan Lopes
Analista em Tecnologia da Informação - Infraestrutura
UNIVERSIDADE FEDERAL RURAL DA AMAZÔNIA


Antes de imprimir este e-mail pense em sua responsabilidade e compromisso
com o meio ambiente.
Loading...