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 / 问题

All perguntas(dba)

Martin Hope
s.k
Asked: 2024-08-28 14:25:59 +0800 CST

pg_restore: erro: não foi possível executar a consulta: ERRO: o esquema "my_schema" não existe

  • 5

Tenho um arquivo de despejo do PostgreSQL 13 feito com este comando:

$ sudo -u postgres pg_dump --no-privileges -Fc -n my_schema --file="/path/to/my_schema.sql" my_database

Mas quando tento restaurá-lo em um novo banco de dados (PG15), enfrento um problema inesperado por causa da --clean --if-existsopção:

$ sudo -u postgres pg_restore  --single-transaction --clean --if-exists --schema=my_schema --no-owner --role="app-user" --dbname=my_database /path/to/my_schema.sql
pg_restore: error: could not execute query: ERROR:  schema "my_schema" does not exist
LINE 1: CREATE TABLE my_schema.my_table (
                     ^
Command was: CREATE TABLE my_schema.my_table (
    id integer NOT NULL,
    name character varying(128),
    description text
);

O esquema não deveria ser recriado antes que as tabelas sejam realmente criadas?

Se isso puder ajudar, aqui está o cabeçalho relevante do arquivo de despejo (desculpe, é um formato binário personalizado):

$ head -n27 my_schema.sql
PGDMP0my_database13.16 (Debian 13.16-0+deb11u1)13.16 (Debian 13.16-0+deb11u1)-=0ENCODINENCODINGSET client_encoding = 'UTF8';
false=00
STDSTRINGS
STDSTRINGS(SET standard_conforming_strings = 'on';
false=00
SEARCHPATH
SEARCHPATH8SELECT pg_catalog.set_config('search_path', '', false);
false=126217698my_databasDATABASEgCREATE DATABASE my_database WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE = 'en_US.UTF-8';
"DROP DATABASE my_database;
postgresfalse2615200013my_schemaSCHEMACREATE SCHEMA my_schema;
DROP SCHEMA my_schema;
app-userfalseo12592000138my_tableTABLECREATE TABLE my_schema.my_table (
    id integer NOT NULL,
    name character varying(128),
    description text
);
!DROP TABLE my_schema.my_table;
my_schemaheaapp-userfalse14p12592000144my_table_id_seSEQUENCE}CREATE SEQUENCE my_schema.my_table_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
+DROP SEQUENCE my_schema.my_table_id_seq;
my_schemaapp-userfalse62314=00my_table_id_seqSEQUENCE OWNED BYMALTER SEQUENCE my_schema.my_table_id_seq OWNED BY my_schema.my_table.id;

Há algo que eu possa fazer e por que esse erro está ocorrendo?

postgresql
  • 1 respostas
  • 21 Views
Martin Hope
merlin2011
Asked: 2024-08-28 03:44:23 +0800 CST

É possível mostrar linhas e segundos ao executar o mysql com `-e`?

  • 8

Ao executar qualquer consulta no mysqlmodo interativo, a saída inclui uma linha como a seguinte:

1 row in set (0.07 sec)

Entretanto, se eu executar qualquer consulta com mysql -e "select * from foo;", essa linha estará faltando.

É possível obter essa linha mesmo quando estou executando com -e?

mysql
  • 3 respostas
  • 35 Views
Martin Hope
Andrei
Asked: 2024-08-28 02:05:25 +0800 CST

Como somar e atualizar um valor por chave no PostgreSQL sem causar inchaço na tabela?

  • 5

Estou trabalhando com um banco de dados PostgreSQL onde preciso armazenar um valor numérico associado a uma chave específica.

Com o tempo, adicionarei continuamente esse valor com base na chave.

Quero garantir que a tabela não fique inchada com várias versões de linhas ou tuplas inativas, especialmente porque essa operação de atualização será frequente (como 100 req/s).

  1. Quais são as melhores práticas no PostgreSQL para fazer isso?

  2. Devo usar INSERT ON CONFLICT, um gatilho ou outra abordagem?

  3. Como posso garantir que minha tabela permaneça eficiente e não sofra com inchaço excessivo devido a atualizações frequentes?

postgresql
  • 1 respostas
  • 22 Views
Martin Hope
Racer SQL
Asked: 2024-08-28 00:36:11 +0800 CST

Proc tendo problemas de chave após mover o banco de dados de um servidor para outro

  • 5

Depois de mover um banco de dados de um servidor para outro, começamos a ter um problema:

> Msg 15581, Level 16, State 7, Procedure xxxxx, Line 24 [Batch Start Line 2]
Please create a master key in the database or open the master key in the session before performing this operation.

Msg 15315, Level 16, State 1, Procedure xxxxx, Line 62 [Batch Start Line 2]
The key '<CustomKeyName>' is not open. Please open the key before using it.

O procedimento em questão tem:

 OPEN SYMMETRIC KEY MySymKey
 DECRYPTION BY CERTIFICATE MySymCert; 

Posso verificar que depois de mover o banco de dados, posso ver a symmetric keye a certificateconsultando sys.symmetric_keyse sys.certificates. insira a descrição da imagem aqui

Nós, sim, não temos a chave mestra. Estou curioso para saber se esse processo funcionaria:

  1. No servidor antigo (no escopo do BD):

ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'a_cool_pass';

  1. backup do BD novamente

  2. Restaurar o BD no novo servidor novamente (com substituição)

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'the_cool_Pass'

ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY

essa seria uma solução adequada para essa situação?

OU posso simplesmente remover a symmetric_key e o cert e recriá-los?

edição: REGENERATINGa chave mestra passou no servidor antigo, backup/restauração no novo, OPEN MASTER KEY DECRYPTION BY PASSWORD =tive o problema The key is not encrypted using the specified decryptor.(o que eu achei estranho. Tentarei novamente amanhã.

(precisaria fazer uma restauração de backup do certificado?

sql-server-2017
  • 1 respostas
  • 31 Views
Martin Hope
Mark Storey-Smith
Asked: 2024-08-27 22:21:13 +0800 CST

Arredondamento DATEDIFF

  • 12

Implementando um esquema de partição rotativa, por kejser.org/table-pattern-rotating-log-ring- . Tive um problema com DATEDIFF arredondando valores:

DECLARE @Partitions INT = 15;

SELECT
    a1.dt
    , dtTrunc 
    , dtDiff
    , PartitionKey = CAST(DATEDIFF(DAY, 0, dtDiff) % @Partitions AS TINYINT)
FROM
    (
    VALUES
        ('2024-08-17 23:59:59.997')
        , ('2024-08-17 23:59:59.998')
        , ('2024-08-17 23:59:59.999')
        , ('2024-08-18 00:00:00.000')
    )
    AS v(dt)
CROSS APPLY
    (
    SELECT
        dt = CAST(v.dt AS DATETIME2(3))
    ) a1
CROSS APPLY
    (
    SELECT
        dtTrunc = CAST(a1.dt AS DATE)
        , dtDiff = DATEDIFF(day, 0, a1.dt)
    ) a2

Consulta 1 Saída

Problema resolvido com elenco até o momento:

DECLARE @Partitions INT = 15;

SELECT
    a1.dt
    , dtTrunc 
    , dtDiff
    , PartitionKey = CAST(DATEDIFF(DAY, 0, dtDiff) % @Partitions AS TINYINT)
FROM
    (
    VALUES
        ('2024-08-17 23:59:59.997')
        , ('2024-08-17 23:59:59.998')
        , ('2024-08-17 23:59:59.999')
        , ('2024-08-18 00:00:00.000')
    )
    AS v(dt)
CROSS APPLY
    (
    SELECT
        dt = CAST(v.dt AS DATETIME2(3))
    ) a1
CROSS APPLY
    (
    SELECT
        dtTrunc = CAST(a1.dt AS DATE)
        , dtDiff = DATEDIFF(day, 0, CAST(a1.dt AS DATE))
    ) a2

Saída da Consulta 2

Esse é um comportamento esperado/documentado? Se sim, onde?

sql-server
  • 2 respostas
  • 693 Views
Martin Hope
DaPeda
Asked: 2024-08-27 17:25:58 +0800 CST

Índice MongoDB não usado dependendo da formulação da consulta

  • 5

Vemos em um de nossos serviços que certas consultas sempre resultam em um COLLSCAN, em vez do índice apropriado ser usado. Os dados têm o formato

{_id: DocumentID, "field": {"child": "Cross-App-ID"}}

com um Índice {"field.child":1}.

Executar a consulta para "field.child", ou seja, db.collection.find({"field.child":"CA-ID"})funciona como esperado com o índice sendo usado. No entanto, por algum motivo, o aplicativo que acessa o banco de dados cria as consultas como db.collection.find({"field":{"child":"CA-ID"}}), o que resulta em um COLLSCANem vez de um IXSCAN.

2 perguntas para mim a partir disto:

  • Essas consultas não deveriam ser equivalentes e, portanto, tratadas da mesma forma?
  • Como posso criar um índice para o segundo caso de uso? Todos os exemplos que encontrei criam o índice como já fizemos.
index
  • 1 respostas
  • 15 Views
Martin Hope
Yves
Asked: 2024-08-27 15:40:32 +0800 CST

A ordem das inserções simultâneas pode ser garantida com alguma coluna

  • 5

Tenho alguns serviços que podem ser executados insertpara inserir novos elementos em uma tabela do meu banco de dados (Postgresql). Então, na visão do banco de dados, muitos inserts são executados concorrentemente.

Minha pergunta é se é possível manter a ordem de inserção com alguma coluna da tabela.

Por exemplo, existem três inserts:

INSERT INTO Users (UserName, Id) VALUES ('Tom', 1);
INSERT INTO Users (UserName, Id) VALUES ('Jerry', 2);
INSERT INTO Users (UserName, Id) VALUES ('Joey', 3);

Eles estão sendo executados simultaneamente.

Por algum motivo, o segundo insertestá atrasado. Neste caso, quando o terceiro insertestá sendo executado, estou esperando um dos dois resultados abaixo:

  1. as insertfalhas;
  2. ter insertsucesso com um novo Id 2.

Existe algum mecanismo para conseguir isso?

Por que preciso disso?

Há um gerador de ID que gera IDs com algoritmo snowflake. Concurrents insertsão executados em multi-threads. Ao ler dados da tabela, quero fazer consultas de intervalo como esta:

select * from my_table where Id > a limit 5
select * from my_table where Id > b limit 5
select * from my_table where Id > c limit 5
...

a, be csão os últimos Id vindos do anterior select.

| --- a --- | --- b --- | --- c --- |

O problema é que quando o segundo selectestá em execução, ainda pode ser possível fazer um insertna azona por causa de concurrent insert. Se isso acontecer, não terei chance de ler os dados inseridos atrasados.

postgresql
  • 1 respostas
  • 65 Views
Martin Hope
user1068636
Asked: 2024-08-27 01:07:19 +0800 CST

Como abrir um arquivo *.pgerd e visualizar o diagrama do banco de dados?

  • 5

Tenho um arquivo *.pgerd que quero abrir e visualizar o diagrama do banco de dados. Quais ferramentas gratuitas posso usar? Também tenho acesso ao IntellJ Ultimate Edition, então se alguém souber de plugins que eu possa usar, isso também seria útil.

Para sua informação: usei https://app.diagrams.net/ para abrir o arquivo *.pgerd, e parece funcionar (ou seja, consigo ver o diagrama do banco de dados, mas ele parece mal formatado). Então, estou pensando se há alguma ferramenta melhor por aí além do app.diagrams.net?

postgresql
  • 1 respostas
  • 13 Views
Martin Hope
Cezar
Asked: 2024-08-26 22:24:19 +0800 CST

Um escravo de replicação MySQL precisa ser tão poderoso quanto o mestre?

  • 8

Quero fazer backup do meu servidor MySQL em outro servidor em outro local (para segurança dos dados). O problema é que o outro servidor tem metade da potência do servidor principal.

Não preciso que o servidor seja 100% replicado. Mesmo uma hora de diferença seria suficiente para o meu caso de uso, mas quero ter certeza de que não perderei nenhum desempenho.

Minha configuração faz sentido?

mysql
  • 1 respostas
  • 115 Views
Martin Hope
J. Mini
Asked: 2024-08-25 11:04:05 +0800 CST

REORGANIZAR páginas compactas e respeitar o fator de preenchimento?

  • 4

Sempre me disseram que isso REORGANIZEnão faz nada para corrigir o preenchimento deficiente da página, porque tudo o que faz é reordenar as páginas no disco. Para investigar isso, li a documentação. No entanto, descobri que isso se contradiz. Otimize a manutenção do índice para melhorar o desempenho da consulta e reduzir as reclamações de consumo de recursos

A reorganização também compacta as páginas de índice para tornar a densidade da página igual ao fator de preenchimento do índice.

e os documentos para ALTER INDEXapoiar isso

A reorganização também compacta as páginas de índice. A compactação é baseada no valor do fator de preenchimento existente.

mas isso é contradito pela documentação do fator de preenchimento

Uma configuração explícita FILLFACTORse aplica somente quando o índice é criado ou reconstruído pela primeira vez. O Mecanismo de Banco de Dados não mantém dinamicamente a porcentagem especificada de espaço vazio nas páginas.

Então, o que está acontecendo? As páginas compactam e respeitam REORGANIZEo fator de preenchimento? Ou é apenas mover páginas de folhas e não compactar?

sql-server
  • 1 respostas
  • 20 Views
Prev
Próximo

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