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[upgrade](dba)

Martin Hope
Chris Douglas
Asked: 2022-01-19 03:41:23 +0800 CST

Potenciais armadilhas para atualizar o PostgreSQL de 9.x/10.x para 13.x?

  • 1

Eu herdei de um antecessor um grande número de sistemas Debian 9 que agora estamos procurando atualizar para o Debian 11. A maioria deles roda o PostgreSQL 9 ou 10, instalado dos próprios repositórios do Postgres, com o equilíbrio sendo quase a favor do 9 sistemas .x. Obviamente estaremos atualizando tudo como parte das atualizações do sistema, incluindo o próprio PostgreSQL. Provavelmente ainda estaríamos usando o próprio repositório do Postgres em vez do Debian, mas usaríamos 13 sobre 14 simplesmente por motivos de maturidade de software, que acredito vir com o Debian 11 de qualquer maneira.

Minha pergunta é: é provável que um salto tão grande introduza problemas? Uma atualização dist do Debian 9 para 10 para 11 (conforme recomendação oficial) com esta configuração ainda terá um banco de dados acessível no final sem ter que despejar e reimportar? Eu sei que provavelmente vou ter que fazer um apt install postgres-13em algum ponto desta cadeia e um apt remove postgres-9; os dados permanecerão presentes quando isso for feito ou preciso despejar os dados no início, fazer toda a atualização e reimportá-los novamente no final?

postgresql upgrade
  • 1 respostas
  • 47 Views
Martin Hope
Tombart
Asked: 2022-01-16 11:16:06 +0800 CST

Falha na atualização para o PostgreSQL 13

  • 1

Estou tentando atualizar o cluster do PostgreSQL 12 para a versão 13, com o seguinte script:

/usr/lib/postgresql/13/bin/pg_upgrade --check \
 --old-datadir=/var/lib/postgresql/12/main \
 --new-datadir=/var/lib/postgresql/13/main \
 --old-bindir=/usr/lib/postgresql/12/bin \
 --new-bindir=/usr/lib/postgresql/13/bin \
 --old-options=' -c config_file=/etc/postgresql/12/main/postgresql.conf' \
 --new-options=' -c config_file=/etc/postgresql/13/main/postgresql.conf' \
 --old-port=5432 \
 --new-port=5433

A verificação retorna:

*Clusters are compatible*

No entanto, durante a atualização real, o processo falha miseravelmente devido à pg_catalog.pg_pltemplatetabela:

pg_restore: creating ACL "pg_catalog.TABLE "pg_pltemplate""
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 17728; 0 0 ACL TABLE "pg_pltemplate" postgres
pg_restore: error: could not execute query: ERROR:  relation "pg_catalog.pg_pltemplate" does not exist

Parece ser um problema antigo , mas o script de atualização não verifica esses modelos.

Até agora, parece que essa consulta deve retornar um resultado vazio, caso contrário, você terá problemas:

$ psql -c "SELECT * FROM information_schema.role_table_grants WHERE table_name='pg_pltemplate';"
 grantor  | grantee  | table_catalog | table_schema |  table_name   | privilege_type | is_grantable | with_hierarchy 
----------+----------+---------------+--------------+---------------+----------------+--------------+----------------
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | TRIGGER        | YES          | NO
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | REFERENCES     | YES          | NO
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | TRUNCATE       | YES          | NO
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | DELETE         | YES          | NO
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | UPDATE         | YES          | NO
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | SELECT         | YES          | YES
 postgres | postgres | postgres      | pg_catalog   | pg_pltemplate | INSERT         | YES          | NO
 postgres | PUBLIC   | postgres      | pg_catalog   | pg_pltemplate | SELECT         | NO           | YES

REVOGANDO estes privilégios:

REVOKE SELECT ON "pg_catalog"."pg_pltemplate" FROM PUBLIC;
REVOKE ALL ON "pg_catalog"."pg_pltemplate" FROM postgres;

realmente não ajuda, pois a REVOKEinstrução é salva no esquema:

pg_restore: error: could not execute query: ERROR:  relation "pg_catalog.pg_pltemplate" does not exist
Command was: REVOKE ALL ON TABLE "pg_catalog"."pg_pltemplate" FROM "postgres";
REVOKE SELECT ON TABLE "pg_catalog"."pg_pltemplate" FROM PUBLIC;

isso pode ser verificado (também o resultado deve estar vazio) usando:

pg_dump --port 5432 --schema-only --quote-all-identifiers | grep pg_pltemplate

antes de realizar a atualização.

Alguma idéia de como se livrar da pg_catalog.pg_pltemplatemesa completamente?

postgresql upgrade
  • 1 respostas
  • 373 Views
Martin Hope
agrajag_42
Asked: 2021-12-01 03:59:20 +0800 CST

Atualização do CockroachDB não finalizada

  • 0

Estou executando um cluster docker CockroachDB de três nós (Debian OS) e recentemente atualizei o cluster da versão v21.1 para a versão v21.2 seguindo o procedimento descrito na documentação usando a opção

SET CLUSTER SETTING cluster.preserve_downgrade_option = '21.1';

Em seguida, reiniciei o contêiner de cada nó, um de cada vez, e quando não surgiram problemas, executei

RESET CLUSTER SETTING cluster.preserve_downgrade_option;

Agora, todos os três nós estão executando a mesma versão e a opção cluster.preserve_downgrade_option está definida como uma string vazia. No entanto, mesmo depois de horas decorridas desde então, quando estou tentando criar uma tabela que possui um recurso incluído na versão 21.2

create table randdb.public.randtable
(
    name_surname varchar(30),
    update_tim TIMESTAMPTZ DEFAULT now() ON UPDATE now(),
    PRIMARY KEY (name_surname)
)

recebo a mensagem de erro

SQL Error [0A000]: ERROR: version 21.1-1152 must be finalized to use ON UPDATE

Fora isso, o cluster parece estar totalmente funcional. Alguma ideia do que deu errado?

upgrade docker
  • 1 respostas
  • 42 Views
Martin Hope
Jesús Reyes Landeros
Asked: 2021-10-30 10:37:20 +0800 CST

Lista de recursos obsoletos para PostgreSQL 8 a 13

  • 1

Vou atualizar vários bancos de dados PostgreSQL 8 para a versão 13. As pessoas para quem trabalho vêm do SQL Server. Estou procurando uma ferramenta semelhante ao "DMA", especificamente a parte que lista recursos obsoletos e "mudanças importantes". Eles querem um relatório para estimar os tempos. Eles adoram relatórios. Docx e xlsx em todos os lugares.

postgresql upgrade
  • 1 respostas
  • 465 Views
Martin Hope
knaperek
Asked: 2021-09-25 08:04:43 +0800 CST

Referência de função incompatível ao atualizar para o Postgres 13

  • 0

Desejo atualizar um banco de dados Postgres 9.6 no CloudSQL (GCP) até a versão 13. Como a exportação/importação de SQL é o único caminho de atualização compatível, exportei o banco de dados PG9.6 e tentei importá-lo para uma nova instância PG13.

A importação falha com o seguinte erro:

ERROR: function public.pg_stat_statements_reset() does not exist

Eu percebi que é acionado pela seguinte linha no dump:

GRANT ALL ON FUNCTION public.pg_stat_statements_reset() TO somerandomuser;

Quando tento executar essa única linha manualmente na nova instância PG13, também recebo o erro. O mesmo acontece no PG12.

No PG11, porém, funciona bem.

Verifiquei se a pg_stat_statementsextensão está instalada em todas as instâncias de banco de dados testadas:

SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version is not null;

        name        | default_version | installed_version |                                comment                                 
--------------------+-----------------+-------------------+------------------------------------------------------------------------
 pg_stat_statements | 1.8             | 1.8               | track planning and execution statistics of all SQL statements executed
(1 row)

Não consegui encontrar nenhuma documentação sobre uma alteração importante que afete isso. Alguma idéia de por que não está funcionando?

postgresql upgrade
  • 1 respostas
  • 325 Views
Martin Hope
sazary
Asked: 2021-03-31 09:57:51 +0800 CST

Por que alguns arquivos no diretório de dados de um cluster Postgresql são links simbólicos para arquivos de outro cluster?

  • 0

eu usei pg_upgrade.

Eu tinha um cluster do Postgresql com a versão 9.6 na minha máquina e, em seguida, iniciei outro cluster com a versão v12. Cada um deles tinha diretórios de dados separados, em um esquema de diretório como este:

./postgresql/
├── 12
│   └── main
└── 9.6
    └── main

Então desliguei o cluster 9.6 e comecei a usar o v12. Mas agora, por acidente, descobri que alguns dos arquivos no basediretório do cluster v12 não são arquivos, mas links simbólicos para arquivos no basediretório do 9.6; Por exemplo:

./postgresql/12/main/base/16401/35093 -> ./postgresql/9.6/main/base/16402/35093

Por que é tão? E, mais importante, como é assim?! Quer dizer, eu pensei que os arquivos dentro do basediretório são tão internos para cada banco de dados que isso não poderia ser possível.

E posso fazer algo para desabilitar o uso de links simbólicos?

postgresql upgrade
  • 1 respostas
  • 161 Views
Martin Hope
Gandon Jank
Asked: 2020-12-09 14:09:14 +0800 CST

Não é possível instalar nenhum fixpack do DB2 LUW 10.5

  • 1

Estou atualmente no Fixpack 1 e estou tentando instalar QUALQUER fixpack mais recente. Todos eles se recusam a aplicar-se com erros semelhantes. O abaixo é do arquivo Fixpack 2 v10.5fp2_ntx64_server. Cada um deles até o mais recente diz que não pode atualizar minha versão, mas nenhum deles fornece uma razão.

insira a descrição da imagem aqui

Depois de ler o link Installation Planning , meu cérebro dói depois de me deparar com isso:

O DB2 deve ser instalado em uma unidade com nomes curtos ativados ou em um diretório sem espaços, como E:\DB2\SQLLIB. Para verificar as configurações atuais de nome de arquivo 8.3 para uma unidade, em uma janela de comando com privilégios de administrador, digite

fsutil.exe behavior query disable8dot3

Os seguintes valores possíveis são retornados quando você executa o comando:

0: Create 8.3 short file names (default)
1: Do not create 8.3 file names
2: Set 8.3 file names on a per volume basis
3: Disable 8.3 file names on all volumes, except the system volume

O estado do registro de NtfsDisable8dot3NameCreation é 0, o que significa que os nomes de arquivo 8.3 estão habilitados em todos os volumes. Para habilitar nomes de arquivo 8.3 globalmente, digite

fsutil.exe behavior set disable8dot3 0 

Se o DB2 estiver instalado em uma unidade sem suporte a nome 8.3 e em um diretório sem espaços, ele deverá ser reinstalado em uma unidade com suporte a nome 8.3. Se a pasta que você está tentando instalar o DB2 já estiver criada quando o suporte de nome 8.3 estiver desativado, o nome abreviado não será criado se você tentar reinstalar no mesmo diretório. Os nomes curtos do Windows são criados durante a criação do diretório, portanto, você deve instalá-lo em um novo diretório ou, se o diretório estiver vazio, exclua o diretório e permita a recriação.

No meu sistema, a configuração está no padrão 2, o que significa "por volume". Não tenho certeza se esta é a razão pela qual os fixpacks se recusam a se instalar.

Isso significa que a IBM essencialmente coloca seus clientes em uma armadilha mortal, permitindo que a instalação inicial do DB2 o coloque, C:\Program Files\mas se recusando a instalar fix packs posteriormente? Eu não posso acreditar que este é o caso. Alguém cujo DB2 é executado pode C:\Program Files\explicar como devemos atualizar?

ATUALIZAR:

Ao executar dir /xdescobri que todos os diretórios na hierarquia de c:\baixo para baixo sqllibtêm nomes curtos. A falta deles não pode ser a razão pela qual as atualizações estão se recusando a instalar.

db2 upgrade
  • 3 respostas
  • 66 Views
Martin Hope
sharadov
Asked: 2020-12-03 14:11:44 +0800 CST

pg_upgrade do Postgres 9.5.5 para o Postgres 12.3 erros

  • 0

Estou tentando atualizar o cluster de banco de dados de 9.5.5 para 12.3 usando pg_upgrade.

Executei com a --checkopção, e o resultado voltou "compatíveis com clusters", mas quando executo com a --cloneopção, recebo o erro abaixo. O log não me diz onde está falhando.

relname: pg_catalog.pg_largeobject: reloid: 2613 reltblspace: 
relname: pg_catalog.pg_largeobject_loid_pn_index: reloid: 2683 reltblspace: 
executing: SELECT pg_catalog.set_config(‘search_path’, ‘’, false);
Checking for presence of required libraries         ok
could not clone file between old and new data directories: Operation not supported
postgresql upgrade
  • 1 respostas
  • 423 Views
Martin Hope
Jefferson B. Elias
Asked: 2020-11-20 22:51:28 +0800 CST

Incapacidade de consultar a tabela subjacente de uma exibição vinculada ao esquema

  • 8

Migrei um banco de dados do SQL Server 2008R2 para o SQL Server 2019 (ambos Enterprise Edition) usando a técnica de restauração de backup e um conjunto de ações pós-transferência como DBCC UPDATEUSAGEou UPDATE STATISTICS XXX.

Na atualização das estatísticas, recebo o seguinte erro:

Msg 402, Level 16, State 1, Procedure ZZZZ, Line 5 [Batch Start Line 0]
The data types datetime and time are incompatible in the add operator.
Msg 4413, Level 16, State 1, Line 1
Could not use view or function 'ZZZZ' because of binding errors.

Eu sei que a mensagem é bastante explícita (a visão, que estava sintaticamente correta em 2008R2 não está mais em 2019). Não entendo por que uma exibição definida WITH SCHEMABINDINGcomo inválida impediria a atualização de estatísticas em uma tabela subjacente.

Além disso, recebo a mesma mensagem de erro ao consultar a tabela subjacente com uma WHEREcláusula, exceto se eu forçar um FULLSCAN com a seguinte dica:

OPTION(TABLE HINT( $mytable, FORCESCAN ))

Eu sei que o SQL Server irá disparar um erro em caso de alteração de DDL para objetos vinculados ao esquema subjacentes, mas não entendo por que, se a exibição for inválida, os objetos subjacentes não poderão ser usados ​​normalmente.

Tenho certeza de que há uma explicação (como os mecanismos de proteção para exibições vinculadas ao esquema não podem ser processadas devido à invalidez da exibição), mas não consigo encontrá-la com certeza na documentação.

Eu corri um DBCC CHECKDBsem problema. Mudei o nível de compatibilidade para 150.

sql-server upgrade
  • 2 respostas
  • 375 Views
Martin Hope
The Owl
Asked: 2020-11-01 10:47:15 +0800 CST

Podemos fazer o downgrade de 19c para 12.1.0 se a compatibilidade estiver definida como 12.2.0

  • 2

Equipe:

Recentemente eu atualizei um banco de dados 12.1.0 para 19c (arquitetura não CDB). A compatibilidade atual é definida como 12.2.0. Posso fazer o downgrade para a versão anterior - 12.1.0? A documentação afirma que o downgrade é possível, mas não tenho certeza sobre o parâmetro de compatibilidade.

https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/downgrading-oracle-db-after-upgrade.html#GUID-59F92E2A-DC4D-46A3-9AC9-63F47BE4A86F

oracle upgrade
  • 3 respostas
  • 4927 Views

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