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-25209

Sébastien Clément's questions

Martin Hope
Sébastien Clément
Asked: 2023-06-03 05:53:23 +0800 CST

Como usar setval em uma função?

  • 5

Criei uma função de gatilho para definir o valor de uma sequência em uma tabela de banco de dados remoto, usando dblinke setval.

CREATE OR REPLACE FUNCTION my_function () RETURNS TRIGGER AS $$
DECLARE
  ...

BEGIN
    PERFORM dblink('dbname=remote_db user=user3 password=PW12345',  
    'SELECT setval(''my_sequence'',123);')
    ;
    
    RETURN NULL;

END;
$$ LANGUAGE plpgsql
SECURITY DEFINER
;

No entanto, recebo a seguinte mensagem de erro quando a função é executada:

ERROR:  function returning record called in context that cannot accept type record

Qual seria a melhor maneira de fazê-lo?

postgresql
  • 1 respostas
  • 23 Views
Martin Hope
Sébastien Clément
Asked: 2022-05-11 07:35:25 +0800 CST

Falha do PostgreSQL devido à falta de espaço no dispositivo

  • 2

Corremos PostgreSQL 11em um CentOS 7servidor. Recentemente, tivemos vários avisos no log que causaram o travamento do servidor PostgreSQL:

2022-05-09 23:26:29 EDT pg_restore      db123      132.132.132.32  postgres        ERROR:  could not extend file "base/71592268/71621568": No space left on device
2022-05-09 23:26:29 EDT pg_restore      db123      132.132.132.32  postgres        HINT:  Check free disk space.
(...)
2022-05-09 23:26:33 EDT                                 DETAIL:  Could not open file "pg_notify/0000": No space left on device.
2022-05-09 23:26:34 EDT                                 LOG:  database system is shut down

Existem vários bancos de dados no /var/lib/pgsql/11/data/base/diretório:

# du -h /var/lib/pgsql/11/data/base/
7.7M    /var/lib/pgsql/11/data/base/1
7.7M    /var/lib/pgsql/11/data/base/13877
8.1M    /var/lib/pgsql/11/data/base/13878
0       /var/lib/pgsql/11/data/base/pgsql_tmp
61M     /var/lib/pgsql/11/data/base/852671
166M    /var/lib/pgsql/11/data/base/852672
699M    /var/lib/pgsql/11/data/base/852673
83M     /var/lib/pgsql/11/data/base/852674
14M     /var/lib/pgsql/11/data/base/852675
476M    /var/lib/pgsql/11/data/base/852676
131M    /var/lib/pgsql/11/data/base/852677
14G     /var/lib/pgsql/11/data/base/1102146
9.9M    /var/lib/pgsql/11/data/base/30205118
9.4M    /var/lib/pgsql/11/data/base/34117470
274M    /var/lib/pgsql/11/data/base/71255881
9.2G    /var/lib/pgsql/11/data/base/71501647
9.2G    /var/lib/pgsql/11/data/base/71592267
9.8M    /var/lib/pgsql/11/data/base/60242430
9.2G    /var/lib/pgsql/11/data/base/71423479
8.1G    /var/lib/pgsql/11/data/base/71423480
6.5G    /var/lib/pgsql/11/data/base/71592268

Perguntas:

  1. Como saber qual diretório base corresponde a qual nome de banco de dados sem acesso ao servidor PostgreSQL?
  2. Uma vez que sabemos qual diretório está atribuído a qual banco de dados, é seguro excluí-lo?
postgresql disk-space
  • 1 respostas
  • 608 Views
Martin Hope
Sébastien Clément
Asked: 2021-10-13 09:02:41 +0800 CST

PostgreSQL nega mudança na propriedade da tabela

  • 3

Estou tentando alterar a propriedade de uma tabela da qual já sou o proprietário. Também sou o proprietário do banco de dados e tenho os privilégios CREATE e USAGE no esquema PUBLIC. Eu recebi a seguinte mensagem de erro:

ts_d=> ALTER TABLE table1 OWNER TO user2;
ERROR:  permission denied for schema public

Como alterar a propriedade sem fazer login como superusuário?

postgresql permissions
  • 1 respostas
  • 496 Views
Martin Hope
Sébastien Clément
Asked: 2018-02-09 08:08:08 +0800 CST

Versão não alterada após atualizar o PostgreSQL no CentOS

  • 0

Versões reais do sistema operacional e do PostgreSQL:

CentOS 7.3, PostgreSQL 10.1 serão atualizados para 10.2.

DEGRAUS:


Parando o serviço :

/bin/systemctl stop postgresql-10.service

Verificando as atualizações de pacotes disponíveis:

yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.ca.planethoster.net
 * extras: muug.ca
 * updates: muug.ca

libgudev1.x86_64                                                                            219-42.el7_4.7                                                                        updates
pgdg-centos10.noarch                                                                        10-2                                                                                  pgdg10-updates-testing
systemd.x86_64                                                                              219-42.el7_4.7                                                                        updates
systemd-libs.x86_64                                                                         219-42.el7_4.7                                                                        updates
systemd-sysv.x86_64                                                                         219-42.el7_4.7                                                                        updates

Atualizando o PostgreSQL:

yum update pgdg-centos10.noarch
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirror2.evolution-host.com
     * extras: muug.ca
     * updates: muug.ca
    Resolving Dependencies
    --> Running transaction check
    ---> Package pgdg-centos10.noarch 0:10-1 will be updated
    ---> Package pgdg-centos10.noarch 0:10-2 will be an update
    --> Finished Dependency Resolution

    Dependencies Resolved

    ========================================================================================================================================================================================================
     Package                                           Arch                                       Version                                  Repository                                                  Size
    ========================================================================================================================================================================================================
    Updating:
     pgdg-centos10                                     noarch                                     10-2                                     pgdg10-updates-testing                                     4.6 k

    Transaction Summary
    ========================================================================================================================================================================================================
    Upgrade  1 Package

    Total download size: 4.6 k
    Is this ok [y/d/N]: y
    Downloading packages:
    Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
    pgdg-centos10-10-2.noarch.rpm                                                                                                                                                    | 4.6 kB  00:00:03
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Updating   : pgdg-centos10-10-2.noarch                                                                                                                                                            1/2
      Cleanup    : pgdg-centos10-10-1.noarch                                                                                                                                                            2/2
      Verifying  : pgdg-centos10-10-2.noarch                                                                                                                                                            1/2
      Verifying  : pgdg-centos10-10-1.noarch                                                                                                                                                            2/2

    Updated:
      pgdg-centos10.noarch 0:10-2

    Complete!

Reiniciando o serviço:

/bin/systemctl start postgresql-10.service

Verificando a versão:

psql -U myuser -d mydb -c "SELECT version()"
Password for user myuser:
                                                 version
---------------------------------------------------------------------------------------------------------
 PostgreSQL 10.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
(1 row)

Ainda em 10.1. Alguma explicação?

postgresql update
  • 1 respostas
  • 646 Views
Martin Hope
Sébastien Clément
Asked: 2018-02-03 11:43:27 +0800 CST

Como reiniciar o servidor PostgreSQL no CentOS 7

  • 25

Instalei o PostgreSQL 10.1 em um ambiente CentOS 7.3.

O serviço é iniciado ( postmaster.pidarquivo presente em /var/lib/pgsql/10/data), mas preciso recarregar a configuração ou reiniciar o servidor após uma alteração no arquivo pg_hba.conf.

No entanto, tentando comandos diferentes, recebo o seguinte:

pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found

service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
postgresql centos-7
  • 6 respostas
  • 170680 Views
Martin Hope
Sébastien Clément
Asked: 2015-10-09 13:08:53 +0800 CST

Os pontos de verificação estão ocorrendo com muita frequência durante o pg_restore

  • 18

No PostgreSQL 9.2.2 (Windows 32 bits), tenho um pg_restorecomando que resulta sistematicamente em avisos de log sobre a frequência do ponto de verificação, por exemplo:

LOG:  checkpoints are occurring too frequently (17 seconds apart)
HINT:  Consider increasing the configuration parameter "checkpoint_segments".

O banco de dados tem cerca de 3,3 Gb de tamanho com 112 tabelas/160 exibições e restaura em cerca de 14 minutos.

É normal que isso ocorra durante um pg_restore?

postgresql restore
  • 1 respostas
  • 34568 Views
Martin Hope
Sébastien Clément
Asked: 2015-07-15 08:22:40 +0800 CST

Como permitir que os usuários executem uma função, mas não acessem os objetos que a função está acessando

  • 3

Eu tenho um procedimento armazenado PL/PgSQL que executa várias operações em tabelas ( SELECT, UPDATE, INSERT, TRUNCATE).

Quero que os usuários possam executar o procedimento armazenado, mas não executem essas mesmas operações nas tabelas.

Isso é possível?

stored-procedures postgresql
  • 1 respostas
  • 2861 Views
Martin Hope
Sébastien Clément
Asked: 2014-07-11 07:55:52 +0800 CST

Como registrar instruções DML executadas por uma função pl/pgsql?

  • 7

Eu tenho uma função pl/pgsql (veja abaixo) que lista alguns campos e limpa seu conteúdo usando comandos UPDATE construídos dinamicamente.

Quando defino log_statement = 'mod', não consigo ver nada no log durante a execução da função com SELECT fnct_clear_temp_fields();. Quando defino log_statement = 'all'e executo a função, posso ver SELECT fnct_clear_temp_fields();no log, mas não os comandos UPDATE subjacentes.

Existe uma maneira de fazer com que os comandos UPDATE apareçam no log também?

Para informações, aqui está a função:

CREATE OR REPLACE FUNCTION fnct_clear_temp_fields() RETURNS VOID AS $$
DECLARE
    --Put into a cursor a view dynamically listing all user-defined fields beginning with 'temp_'
    dataset_1 CURSOR FOR 
        SELECT 
            column_name,
            table_name
        FROM information_schema.tables 
        NATURAL JOIN information_schema.columns 
        WHERE 
            table_schema='public'
            AND table_type='BASE TABLE'
            AND column_name ~ '^temp_'
        ORDER BY table_name,column_name;

    --Record variable to go through each line of the view above
    dataset_1_row RECORD;

BEGIN
    OPEN dataset_1; --Open the cursor
    FETCH dataset_1 INTO dataset_1_row; --first row of the view

    WHILE FOUND LOOP
        RAISE NOTICE 'Table: %, Column: %',  dataset_1_row.table_name,dataset_1_row.column_name;

        --Set to NULL the contents of the current 'temp_' column
        EXECUTE 'UPDATE '||dataset_1_row.table_name||' SET '||dataset_1_row.column_name||'=NULL WHERE '||dataset_1_row.column_name||' IS NOT NULL';

        FETCH dataset_1 INTO dataset_1_row; --next row please.
    END LOOP; --while end

    CLOSE dataset_1;

    RETURN;
END;
$$ LANGUAGE plpgsql;
postgresql functions
  • 3 respostas
  • 6953 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