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 / user-67405

Marco's questions

Martin Hope
Marco
Asked: 2022-01-17 12:34:34 +0800 CST

Problemas com pg_upgradecluster

  • 0

Sexta-feira eu fiz uma atualização do PostgreSQL 13 para 14 com pg_upgradecluster(no Debian Buster). Isso funcionou, então hoje eu queria atualizar outro servidor (Linux Mint 20.3 Cinnamon). Desta vez não funciona. Aqui está o que eu fiz:

root@farao:~# pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
13  main    5432 online postgres /srv/local/postgresql/13    /var/log/postgresql/postgresql-13-main.log
14  main    5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
root@farao:~# pg_dropcluster --stop 14 main
root@farao:~# pg_upgradecluster -V -v 13 main /srv/local/postgresql/data/14
Use of uninitialized value $newversion in string eq at /usr/bin/pg_upgradecluster line 398.
Use of uninitialized value $_[0] in concatenation (.) or string at /usr/share/perl5/PgCommon.pm line 1049.
Stopping old cluster...
Restarting old cluster with restricted connections...
Notice: extra pg_ctl/postgres options given, bypassing systemctl for start operation
Use of uninitialized value $argv[10] in system at /usr/bin/pg_upgradecluster line 461.
Error: invalid version ''
Error: Could not create target cluster
root@farao:~# pg_lsclusters
Ver Cluster Port Status Owner    Data directory           Log file
13  main    5432 online postgres /srv/local/postgresql/13 /var/log/postgresql/postgresql-13-main.log
root@farao:~# ps -ef | grep postgres
postgres   24351    1306  0 20:57 ?        00:00:00 /usr/lib/postgresql/13/bin/postgres -D /srv/local/postgresql/13 -c config_file=/etc/postgresql/13/main/postgresql.conf -c hba_file=/tmp/pg_hba.UabjBQ.conf
postgres   24353   24351  0 20:57 ?        00:00:00 postgres: 13/main: checkpointer 
postgres   24354   24351  0 20:57 ?        00:00:00 postgres: 13/main: background writer 
postgres   24355   24351  0 20:57 ?        00:00:00 postgres: 13/main: walwriter 
postgres   24356   24351  0 20:57 ?        00:00:00 postgres: 13/main: autovacuum launcher 
postgres   24357   24351  0 20:57 ?        00:00:00 postgres: 13/main: stats collector 
postgres   24358   24351  0 20:57 ?        00:00:00 postgres: 13/main: logical replication launcher 
root       24488   18929  0 20:58 pts/0    00:00:00 grep --color=auto postgres
root@farao:~# cat /tmp/pg_hba.UabjBQ.conf
local all postgres ident
root@farao:~# pg_upgradecluster -V -v 13 main /srv/local/postgresql/data/14
Use of uninitialized value $newversion in string eq at /usr/bin/pg_upgradecluster line 398.
Use of uninitialized value $_[0] in concatenation (.) or string at /usr/share/perl5/PgCommon.pm line 1049.
Stopping old cluster...
Restarting old cluster with restricted connections...
Notice: extra pg_ctl/postgres options given, bypassing systemctl for start operation
Use of uninitialized value $argv[10] in system at /usr/bin/pg_upgradecluster line 461.
Error: invalid version ''
Error: Could not create target cluster
root@farao:~# pg_upgradecluster
Usage: /usr/bin/pg_upgradecluster [OPTIONS] <old version> <cluster name> [<new data directory>]
root@farao:~# 

Sem o -Vparâmetro, o resultado é o mesmo. O que eu fiz errado? Preciso instalar um módulo PERL?

observação Acabei de lembrar que instalei apenas o postgresql-13 e usei o banco de dados e a configuração que ainda estavam presentes. O PostgreSQL armazena em algum lugar informações sobre os clusters com os quais criou initdb? Não é lógico porque pg_lsclusterspode encontrá-lo.

postgresql ubuntu
  • 1 respostas
  • 858 Views
Martin Hope
Marco
Asked: 2020-07-11 05:08:32 +0800 CST

Bancos de dados perdidos após a atualização do Postgres de 11 para 12

  • 0

Esta não é a minha primeira atualização. No passado eu atualizei de 9 para 10 e de 10 para 11. Eu pensei que tinha anotado tudo da última vez, mas aparentemente não. Na versão 11 meus bancos de dados estão em nl_BE.utf-8:

                              List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |
-----------+----------+----------+-------------+-------------+
 glewlwyd  | glewlwyd | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |
 postgres  | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 | 
 prda      | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |
 template0 | postgres | UTF8     | nl_BE.UTF-8 | nl_BE.UTF-8 |
 template1 | postgres | UTF8     | nl_BE.utf-8 | nl_BE.utf-8 |

(5 rows)

Após a instalação ( apt-get install postgresql-12) modifico o /etc/postgresql/12/main/postgresql.confe mudo o en_US.UTF-8para nl_BE.UTF-8. Nas atualizações anteriores, copiei este arquivo para o meu diretório de dados, mas 12 não parece gostar disso. O número da porta da versão 11 e 12 é diferente.

Quando crio o banco de dados com /usr/lib/postgresql/12/bin/initdb --locale=nl_BE.UTF-8 --pgdata=/srv/postgres/data/12a nova instância é criada mas os bancos de dados estão em en_US.UTF-8. O /usr/lib/postgresql/12/bin/pg_upgrade -b /usr/lib/postgresql/11/bin -B /usr/lib/postgresql/12/bin -d /srv/postgres/data/11 -D /srv/postgres/data/12fim sem erro.

Quando me conecto à instância, meus próprios bancos de dados não estão lá. Deve ser porque a localidade não está correta. Eu também mudei a localidade ( export LANG=nl_BE.UTF-8) do meu shell, mas isso não ajudou. O que eu poderia ter feito de errado?

postgresql ubuntu
  • 1 respostas
  • 498 Views
Martin Hope
Marco
Asked: 2016-09-21 04:44:20 +0800 CST

Como criar um tablespace se ele não existir

  • 2

Quando crio um novo schema no Postgres através da execução de um script em psqlquero colocá-lo em um tablespace. Se esse espaço de tabela não existir, quero criá-lo primeiro. Como o SQL padrão não tem essa opção criei uma função:

CREATE OR REPLACE FUNCTION make_tablespace(tablespace CHARACTER,
                                           directory CHARACTER,
                                           owner CHARACTER)
  RETURNS void
AS
$$
BEGIN
  IF tablespace = '' THEN
    RAISE EXCEPTION 'No tablespace.';
  END IF;
  PERFORM SPCNAME FROM PG_TABLESPACE WHERE SPCNAME=tablespace;
  IF NOT FOUND THEN
    IF directory = '' THEN
      RAISE EXCEPTION 'No directory.';
    END IF;
    IF owner = '' THEN
      RAISE EXCEPTION 'No owner.';
    END IF;
    EXECUTE 'CREATE TABLESPACE '||tablespace||' OWNER '||owner||' LOCATION '''||directory||''';';
    RAISE NOTICE 'Tablespace % created.', tablespace;
  ELSE
    RAISE NOTICE 'Tablespace % already exists.', tablespace;
  END IF;
END $$ LANGUAGE plpgsql;

Infelizmente quando executo ( select make_tablespace('marco', '/opt/marco', 'marco');) dá um erro:

ERRO: CREATE TABLESPACE não pode ser executado a partir de uma função ou string de vários comandos

Pesquisei na internet e parece haver uma solução alternativa (alguns anos atrás) usando o dblinkpacote. Eu não quero instalar isso. Existe hoje outra maneira? Posso retornar a instrução SQL como uma string, mas como executá-la?

postgresql postgresql-9.4
  • 1 respostas
  • 8691 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