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

Channa's questions

Martin Hope
shiwanginio
Asked: 2023-12-09 17:34:09 +0800 CST

ERRO: a classe do operador não existe para o método de acesso “btree”

  • 5

Encontrei um problema ao tentar executar um script. Aqui está o cenário:


-- Script to create collation
CREATE COLLATION case_insensitive 
(PROVIDER = icu, LOCALE ='und-u-ks-level2', DETERMINISTIC = FALSE);

-- Followed by adding an index using the collation
CREATE UNIQUE INDEX col1_idx ON my_table (col1 case_insensitive);

Lamentavelmente, durante o processo de indexação, encontrei o seguinte erro:


SQL Error [42704]: ERROR: operator class "case_insensitive" does not exist for access method "btree"

Eu verifiquei a pg_opclasstabela e ela não existia lá:

SELECT * FROM pg_opclass WHERE opcname = 'case_insensitive';

Alguma ideia do que estou fazendo de errado/perdendo aqui? Eu ficaria imensamente grato por qualquer informação ou assistência em relação a isso.

postgresql
  • 1 respostas
  • 28 Views
Martin Hope
Channa
Asked: 2021-06-09 12:00:41 +0800 CST

ERRO 1180 (HY000): Erro 5 durante COMMIT

  • 1

Estamos usando o cluster Galera e estou executando a instrução abaixo para fazer uma nova tabela:

   create table tab2 select distinct id , report from my_table ;

Ele é executado por algum tempo e depois disso falha/cancela com este erro:

   ERROR 1180 (HY000): Got error 5 during COMMIT

Procurei por esse erro e descobri que, se definirmos a variável global binlog_row_image=minimal, o problema deveria ter desaparecido. No entanto, tal coisa não aconteceu no meu caso. Corri abaixo e mesmo depois quando verifiquei - estava em FULL binlog_row_image.

   mysql> select @@binlog_row_image;
  +--------------------+
  | @@binlog_row_image |
  +--------------------+
  | FULL               |
  +--------------------+
  1 row in set (0.00 sec)

  mysql> SET GLOBAL binlog_row_image=minimal;
  Query OK, 0 rows affected (0.00 sec)

E, como não mudou mesmo depois disso, minha nova consulta de criação de tabela está falhando. Alguma outra forma de fazer? Eu só preciso criar minha nova tabela a tabela existente.

Desde já, obrigado!

mysql mysql-5.7
  • 1 respostas
  • 1222 Views
Martin Hope
Channa
Asked: 2020-07-09 11:07:27 +0800 CST

Não é possível criar índices parciais usando bloom

  • 0

Sou novo em bloom índices e atualmente minha tabela tem 3 índices parciais para a mesma coluna na WHEREcláusula e com diferentes combinações de colunas para a mesma tabela. Eu estava tentando substituí-los todos por 1 índice de flor.

No entanto, quando crio um índice de bloom com WHEREcláusula usando a sintaxe abaixo, recebo o erro abaixo:

CREATE EXTENSION bloom;

CREATE INDEX idx_bloom_bar ON message USING bloom  
(s, p, c, m, e, id) 
WHERE (islatest = true)
WITH (length=56, col1=4, col2=4, col3=4, col4=4, col5=4, col6=4);
SQL Error [42601]: ERROR: syntax error at or near "WITH"
Position: 165

No entanto, sem WHEREcláusula, consigo criar esse índice com sucesso.

Por favor, deixe-me saber se podemos usá-los como uma substituição de vários índices parciais ou não para reduzir o número de índices na minha tabela.

postgresql index
  • 1 respostas
  • 34 Views
Martin Hope
Channa
Asked: 2019-12-07 02:31:33 +0800 CST

Comportamento da tabela de partição para Postgres

  • 0

Eu criei uma tabela particionada com 1 partição. abaixo está o script para o mesmo:

CREATE TABLE public.ms (
id int8 NOT NULL GENERATED BY DEFAULT AS IDENTITY,
a int8 NOT NULL,
b int4 NOT NULL,
c varchar(2000) NULL,
d int2 NOT NULL,
e bool NOT NULL DEFAULT false,
f timestamp NOT NULL DEFAULT timezone('UTC'::text, CURRENT_TIMESTAMP),
g jsonb NULL,
h int2 NOT NULL DEFAULT 1,
i bool NOT NULL DEFAULT true,
j int2 NULL,
CONSTRAINT me_pkey PRIMARY KEY (id)
)PARTITION BY RANGE (id) ; 


CREATE TABLE ms3_0  PARTITION OF public.msg
FOR VALUES FROM (1) to (1000);

Agora, quando estou executando a instrução insert para isso por meio do loop abaixo, estou recebendo a mensagem de erro abaixo:

do $$
begin
for i in 1..1000
loop
INSERT INTO public.ms
(a, b, c, d, e, f,  h, i , j)
VALUES(2, 0, '', 0, false, '2019-01-28 23:59:51', 1, true, 0);
end loop;
end;$$

Erro SQL [23514]: ERRO: nenhuma partição da relação "ms" encontrada para a linha Detalhe: A chave de partição da linha com falha contém (id) = (1001).

No entanto, até o id '1000', a partição já foi criada. Depois disso, eliminei a tabela existente e recriei a mesma tabela e partição novamente. Agora, comecei a inserir registros manualmente por meio de uma única instrução 'inserir'. Então, eu poderia inserir neles.

Depois disso, criei a 2ª partição como abaixo:

CREATE TABLE ms3_1  PARTITION OF public.ms
FOR VALUES FROM (1001) to (2000);

E, novamente, executou o mesmo loop para 1000 entradas e obteve o erro abaixo:

Erro SQL [23514]: ERRO: nenhuma partição da relação "ms" encontrada para a linha Detalhe: A chave de partição da linha com falha contém (id) = (1000)

No entanto, quando eu insiro no lote de 100 , como abaixo: eu poderia inserir isso:

do $$
begin
for i in 0..100
loop
INSERT INTO public.ms
(a, b, c, d, e, f,  h, i, j)
VALUES(2, 0, '', 0, false, '2019-01-28 23:59:51', 1, true, 0);
end loop;
end;$$

De todo o cenário acima, tenho algumas dúvidas:

  1. No primeiro caso, por que não estava inserindo dados (1000 valores) na primeira partição quando a partição para os primeiros 1000 valores já foi criada?
  2. Depois de inserir 3-4 registros na primeira partição e depois de criar novamente outra partição (ms3_1) com 1000 registros, quando tento realizar a inserção em massa de 1000 registros na mesma tabela ms, por que não consigo fazer isso?

Qualquer ajuda/razão para isso será apreciada aqui. Desde então, isso me ajudará a configurar a partição de acordo com meus requisitos de negócios.

postgresql partitioning
  • 1 respostas
  • 1716 Views
Martin Hope
Channa
Asked: 2019-11-26 03:12:16 +0800 CST

Uso de FDW no postgres

  • 0

Eu preciso criar uma sequência e preciso usar a sequência para id de incremento automático para mais de 2 bancos de dados em 2 servidores separados. Estou me referindo abaixo do doc para isso (para fins de teste): https://paquier.xyz/postgresql-2/global-sequences-with-postgres_fdw-and-postgres-core/

Eu segui os passos abaixo:

    Server 1: 
CREATE DATABASE
postgres=# \c a1
You are now connected to database "a1" as user "postgres".
a1=# CREATE SEQUENCE seq;
CREATE SEQUENCE
a1=# CREATE VIEW seq_view AS SELECT nextval('seq') as a;
CREATE VIEW
a1=# \c postgres
You are now connected to database "postgres" as user "postgres".

postgres=# create database a2;
 CREATE DATABASE
 postgres=# \c a2;
You are now connected to database "a2" as user "postgres".
a2=# CREATE EXTENSION postgres_fdw;
CREATE EXTENSION
a2=# CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS
a2-# (host '192.168.xx.xxx', port '5432', dbname 'a1');
CREATE SERVER
a2=# CREATE USER MAPPING FOR PUBLIC SERVER postgres_server OPTIONS (password 
'');
CREATE USER MAPPING
a2=# CREATE FOREIGN TABLE foreign_seq_table (a bigint) SERVER
a2-# postgres_server
a2-# OPTIONS (table_name 'seq_view');
CREATE FOREIGN TABLE
a2=# select * from foreign_seq_table;
 a
---
 1
(1 row)

a2=# select * from foreign_seq_table;
a
---
2
(1 row)

Como pode ser visto no exemplo acima, está funcionando corretamente para 2 bancos de dados no mesmo servidor. No entanto, quando prossigo com outro servidor, fiz as etapas abaixo:

    postgres=# create database kbc;
CREATE DATABASE
 postgres=# \c kbc
You are now connected to database "kbc" as user "postgres".
kbc=#  CREATE EXTENSION postgres_fdw;
CREATE EXTENSION
kbc=# CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw 
OPTIONS
kbc-# (host '192.168.xx.xxx', port '5432', dbname 'a1');
CREATE SERVER
kbc=# CREATE USER MAPPING FOR PUBLIC SERVER postgres_server OPTIONS 
(password '');
CREATE USER MAPPING
kbc=#
kbc=# CREATE FOREIGN TABLE foreign_seq_table (a bigint) SERVER 
postgres_server OPTIONS (table_name 'seq_view');
  CREATE FOREIGN TABLE
 kbc=# select * from foreign_seq_table;
  ERROR:  could not connect to server "postgres_server"
    DETAIL:  fe_sendauth: no password supplied

O erro finalmente estou recebendo. Existe alguma coisa/qualquer passo que estou perdendo aqui. Posso facilmente fazer ping no servidor antigo (onde criei a sequência) do novo servidor (onde quero usar essa sequência). configurações do arquivo pg_hba.conf em ambos os servidores -> as entradas são md5 ou trust only. Qualquer outra entrada que eu preciso adicionar no arquivo de configuração? Qualquer documento sugerido para fdw em diferentes servidores também será útil.

Desde já, obrigado!

Observação: não posso usar o UUID devido a alguns requisitos do aplicativo. É por isso que precisamos de uma coluna numérica de incremento automático. Ele escolhe o valor de id mais alto.

postgresql sharding
  • 1 respostas
  • 611 Views
Martin Hope
Channa
Asked: 2019-09-25 10:55:26 +0800 CST

Precisa de informações detalhadas sobre sys.dm_os_buffer_descriptors

  • -2

Tentei pesquisar muito na internet sobre o dmv, mas não consegui muita coisa. Não estou conseguindo, Significado de algumas das colunas deste dmv. Que são:

  • pg_level
  • ID_unidade_alocação
  • Contagem de linhas
  • numa_node Por favor, compartilhe o significado disso, se alguém puder ter alguma idéia sobre isso.
sql-server dmv
  • 1 respostas
  • 75 Views
Martin Hope
Channa
Asked: 2019-09-20 02:27:43 +0800 CST

pg_basebackup falhando em outro servidor

  • 0

Eu quero fazer backup do meu cluster de banco de dados PostgreSQL de outro servidor. Estou usando o comando abaixo, de outro servidor:

[root@shiwangini2 pgsql]# sudo -u postgres  pg_basebackup -h 192.168.XX.XX  -p 5432  -Ft -D /var/lib/pgsql/db_file_backup

No entanto, estou recebendo a mensagem abaixo depois de executar isso:

[root@shiwangini2 pgsql]# sudo -u postgres  pg_basebackup -h 
192.168.XX.XX  -p 5432  -Ft -D /var/lib/pgsql/db_file_backup 
Password:

pg_basebackup: não foi possível obter a posição final do log write-ahead do servidor: ERRO: não foi possível abrir o arquivo "./pg_hba.conf": Permissão negada pg_basebackup: removendo o conteúdo do diretório de dados "/var/lib/pgsql/db_file_backup"

Para corrigir isso, depois de pesquisar no Google, atualizei o arquivo pg_hba.conf do meu servidor como abaixo, para permitir conexões externas:

host    all             all              0.0.0.0/0                       
md5
host    all             all              ::/0                            md5

Depois disso, reiniciei os serviços do PotgreSQL. E, novamente, quando estou tentando fazer backup de outro servidor, ainda estou recebendo o mesmo erro. Por favor, deixe-me saber se algo de errado eu estou fazendo aqui. Ou qualquer outra forma de fazer backup de outro servidor.

postgresql backup
  • 2 respostas
  • 1931 Views
Martin Hope
Channa
Asked: 2019-08-31 06:00:29 +0800 CST

localização do arquivo postgresql recovery.conf em 11.5

  • 0

Sou novo no postgres. Precisamos fazer backups incrementais para bancos de dados postgres, assim como devemos ser capazes de executar PITR. Pesquisei muito na internet e tentei descobrir algum método de referenciamento de artigos para incremental + PITR para postgres 11.5. No entanto, não consegui encontrar muito e encontrei https://www.scalingpostgres.com/tutorials/postgresql-backup-point-in-time-recovery/

significativo. Comecei a trabalhar em torno das etapas mencionadas lá. No entanto, em #add recovery.conf

    # add recovery.conf
    nano /var/lib/postgresql/10/main/recovery.conf 

O artigo diz para criar o recovery.conf no diretório principal. No entanto, de acordo com a instalação do 11.5, não há diretório principal. A estrutura de diretórios é como:

    /var/lib/pgsql/11/data
    [root@local-pos-52 data]# ls -ltr
      total 96
      -rw-------. 1 postgres postgres 23971 Aug 30 16:05 postgresql.conf
      drwx------. 6 postgres postgres    50 Aug 30 16:07 base
      -rw-------. 1 postgres postgres  4370 Aug 30 16:12 pg_hba.conf
       drwx------. 2 postgres postgres     6 Aug 30 16:12 pg_replslot
       drwx------. 2 postgres postgres    17 Aug 30 19:04 pg_notify
       -rw-------. 1 postgres postgres    58 Aug 30 19:04 postmaster.opts
       -rw-------. 1 postgres postgres    30 Aug 30 19:04 current_logfiles
        drwx------. 2 postgres postgres     6 Aug 30 19:04 pg_stat
        drwx------. 4 postgres postgres    65 Aug 30 19:04 pg_logical
        drwx------. 3 postgres postgres  4096 Aug 30 19:04 pg_wal
       -rw-------. 1 postgres postgres    96 Aug 30 19:04 postmaster.pid
        drwx------. 2 postgres postgres  4096 Aug 30 19:04 global
        drwx------. 2 postgres postgres    60 Aug 30 19:19 pg_stat_tmp
        -rw-------. 1 postgres postgres     3 Aug 30  2019 PG_VERSION
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_twophase
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_tblspc
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_snapshots
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_serial
        drwx------. 4 postgres postgres    34 Aug 30  2019 pg_multixact
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_dynshmem
        drwx------. 2 postgres postgres     6 Aug 30  2019 pg_commit_ts
        -rw-------. 1 postgres postgres 23891 Aug 30  2019 postgresql.conf- 
       bak
       -rw-------. 1 postgres postgres    88 Aug 30  2019 
       postgresql.auto.conf
       -rw-------. 1 postgres postgres  1636 Aug 30  2019 pg_ident.conf
      -rw-------. 1 postgres postgres  4269 Aug 30  2019 pg_hba.conf-bak
       drwx------. 2 postgres postgres    17 Aug 30  2019 pg_xact
       drwx------. 2 postgres postgres    17 Aug 30  2019 pg_subtrans
       drwx------. 2 postgres postgres    31 Aug 30  2019 log

Além disso, não há nenhuma pasta chamada "postgresql" criada nesta instalação no local /var/lib.

Eu tentei criar recovery.conf apenas neste caminho "/var/lib/pgsql/11/data". No entanto, depois disso, quando reiniciei os serviços postgres, não funcionou.

Será apreciado, se alguém especificar onde criar recovery.conf, para que ele realmente funcione ou compartilhe o doc/link para implementar backups incrementais, bem como PITR para postgres 11.5

Agradeço por qualquer ajuda desde já!

postgresql backup
  • 1 respostas
  • 2058 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