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 / 123787
Accepted
Brooks
Brooks
Asked: 2015-12-16 20:24:35 +0800 CST2015-12-16 20:24:35 +0800 CST 2015-12-16 20:24:35 +0800 CST

Os índices são transferidos com pg_restore

  • 772

Vejo outras perguntas que foram respondidas negativamente (ou seja, os índices não são transferidos com o padrão pg_restore). No entanto, parece que aconteceu no meu despejo/restauração recente e não tenho certeza se realmente foi transferido ou não.

Migrei meu banco de dados do PostgreSQL 9.3 para 9.4.5 e usei dump/restore para fazer isso.

Abaixo estão os comandos utilizados:

sudo -u postgres pg_dump -h localhost -p 5432 -d nominatim -F d -f dump/postgres/backup -j 20
sudo -u postgres pg_restore --create --dbname=nominatim --exit-on-error -h localhost -p 5432 -F d -j 7 dump/postgres/backup

O despejo e a restauração foram bem-sucedidos (sem erros).

Eu desativei o autovacuum enquanto fazia a restauração e então executei analyze(sem parâmetros) de dentro do psql e enquanto conectado ao banco de dados que foi restaurado.

A primeira coisa que notei é que na versão 9.3, o diretório de dados ocupava cerca de 860 GB, enquanto na versão 9.4 ocupa cerca de 680 GB. 9.4 é muito mais eficiente?

A segunda coisa que notei é que vejo os índices no banco de dados:

nominatim=# \d country_name
                   Table "public.country_name"
            Column             |         Type         | Modifiers 
-------------------------------+---------------------------------    
country_code                  | character varying(2) |   
name                          | hstore               |   
country_default_language_code | character varying(2) |   
partition                     | integer              |  

Indexes:
        "idx_country_name_country_code" btree (country_code)


nominatim=# \d idx_country_name_country_code
    Index "public.idx_country_name_country_code"
    Column    |         Type         |  Definition  
--------------+----------------------+--------------
 country_code | character varying(2) | country_code

btree, for table "public.country_name"


nominatim=# select * from pg_indexes where tablename = 'country_name';
 schemaname |  tablename   |           indexname           | tablespace |                                       indexdef                                        
------------+--------------+-------------------------------+------------+---------------------------------------------------------------------------------------
 public     | country_name | idx_country_name_country_code |            | CREATE INDEX idx_country_name_country_code ON country_name USING btree (country_code)
(1 row)

Ainda preciso reindexar ou meus índices, de alguma forma ou de outra, mudaram ou o que estou vendo é simplesmente a definição do índice? Quaisquer outras dicas sobre como gerenciar melhor o despejo/restauração, verificando meus índices, etc. seriam definitivamente apreciadas.

postgresql index
  • 1 1 respostas
  • 12486 Views

1 respostas

  • Voted
  1. Best Answer
    Erwin Brandstetter
    2015-12-16T20:46:44+08:002015-12-16T20:46:44+08:00

    Os índices são transferidos com pg_restore?
    Vejo outras perguntas que foram respondidas negativamente (ou seja, os índices não são transferidos com o pg_restore padrão)

    Isso parece ser um mal-entendido. O próprio índice (contendo todos os dados) não está no dump. Apenas os comandos para recriá-lo. Assim, os índices são "transferidos", mas, na verdade, eles são recriados em perfeitas condições, sem nenhum inchaço ou tuplas mortas

    Ainda preciso reindexar?

    Não. Após a restauração você tem todos os índices em perfeitas condições. Não REINDEXé necessário. ANALYZEfaria sentido, porém, conforme aconselhado no manual no capítulo "Restaurando o Basculamento":

    Depois de restaurar um backup, é aconselhável executar ANALYZEem cada banco de dados para que o otimizador de consulta tenha estatísticas úteis;

    E finalmente:

    9.4 é muito mais eficiente?

    Não, geralmente não. Bem, o tamanho dos índices GIN foi reduzido substancialmente. Mas o que você vê é provavelmente o efeito de remover o inchaço de todas as tabelas e índices (incluindo tabelas do sistema).

    • 19

relate perguntas

  • Quanto "Padding" coloco em meus índices?

  • Sequências Biológicas do UniProt no PostgreSQL

  • O que significa "índice" em RDBMSs? [fechado]

  • Como criar um índice condicional no MySQL?

  • 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