AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 284260
Accepted
Leon
Leon
Asked: 2021-01-30 03:56:20 +0800 CST2021-01-30 03:56:20 +0800 CST 2021-01-30 03:56:20 +0800 CST

Como evitar que o pg_dump gere "SET default_table_access_method=heap;"?

  • 772

Eu tenho um grande arquivo de despejo que é gerado por pg_dumpque vem com o cliente PostgreSQL v12 e está em formato personalizado em vez de texto sql simples. A versão do servidor também é PostgreSQL v12.

Agora preciso recarregar o arquivo em um servidor PostgreSQL v11 e recebo uma mensagem de erro:

unrecognized configuration parameter "default_table_access_method"

Eu acho que esse parâmetro é introduzido pelo PG12, então o PG11 não pode reconhecê-lo, mesmo que eu use a versão 12 do pg_restore.

Como o arquivo é enorme e em formato binário, NÃO consigo editá-lo para remover a linha manualmente.

Eu testei isso pg_restore test_file -f plain.sqlcom um arquivo de despejo de teste e parece funcionar, e posso remover a linha do arquivo SQL simples. Mas o arquivo de despejo real tem cerca de 30 GB, o arquivo SQL simples expandido do binário pode ser maior (o banco de dados de trabalho ocupa 300 GB de espaço em disco).

Existe uma maneira de recarregá-lo de forma limpa no PG11, apenas sem a linha "SET default_table_access_method = heap;"?

Na verdade, todos os itens a seguir podem ser ignorados, porque são todos valores padrão:

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_tablespace = '';
postgresql pg-dump
  • 1 1 respostas
  • 2936 Views

1 respostas

  • Voted
  1. Best Answer
    Laurenz Albe
    2021-01-30T04:45:35+08:002021-01-30T04:45:35+08:00

    Não, não existe, porque não há suporte para o downgrade do PostgreSQL.

    Você terá que editar manualmente o dump e remover linhas como essa até que o dump seja carregado sem erros. Pode haver outros problemas mais complicados do que novos parâmetros, veja esta pergunta para obter um exemplo em uma versão mais antiga.

    Se o dump for grande, você pode dividi-lo em três partes:

    pg_dump --format=plain  --section=pre-data  --file=dbname-pre.sql  dbname
    pg_dump --format=custom --section=data      --file=dbname-data.dmp dbname
    pg_dump --format=plain  --section=post-data --file=dbname-post.sql dbname
    

    Você só terá que editar o primeiro e o último arquivo, que são sempre pequenos. A seção "dados" pode ser despejada em formato personalizado e será compactada. Após a edição, carregue os arquivos na mesma ordem.

    • 4

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve