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
RiverHeart
Asked: 2025-03-05 01:54:35 +0800 CST

Como atualizar o nó MongoDB Arbiter?

  • 5

Normalmente não faço perguntas, mas estou quase no meu limite e prevejo que vou ter dificuldades com isso por um tempo. Para os revisores de perguntas, não encontrei nenhuma pergunta referente às versões do Mongo com as quais estou tendo problemas, nem meu erro específico para o nó arbiter.

Resumo:

O árbitro está falhando em uma atualização da v6 para a v7 por causa de um inválido featureCompabilityVersionque li e que ele não deveria se importar ou usar.

Estou esquecendo de algo óbvio relacionado à configuração/atualização do nó do árbitro?

Versão longa:

Estou usando o Docker Compose para gerenciar um conjunto de réplicas de bancos de dados Mongo consistindo de 1 primário, 1 secundário e 1 árbitro. Todos eles usam a docker.io/bitnami/mongodbimagem e têm volumes para persistir quaisquer dados que precisem gravar. Minha tarefa é atualizar suas imagens de v5 para v7 usando as instruções do Mongo .

A atualização da v5 para a v6 foi tranquila, pois a v6 é compatível com versões anteriores e só exigiu a atualização da versão da imagem. Para atualizar para a v7, entrei no banco de dados de administração do nó primário e executei db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )seguido por db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1})para confirmar que a alteração foi feita.

Atualizei as versões de imagem no arquivo compose de v6 para v7 e reiniciei. Os nós primário/secundário estão bem, mas o arbiter emite esse erro antes de desligar,

PROBLEMA DE ATUALIZAÇÃO: Foi encontrado um documento featureCompatibilityVersion inválido (ERRO: Location4926900: Documento featureCompatibilityVersion inválido em admin.system.version: { _id: "featureCompatibilityVersion", versão: "5.0" }. Consulte https://docs.mongodb.com/master/release-notes/6.0-compatibility/#feature-compatibility . :: causado por :: Valor de versão de compatibilidade de recurso inválido '5.0'; esperado '6.0' ou '6.3' ou '7.0'. Consulte https://docs.mongodb.com/master/release-notes/6.0-compatibility/#feature-compatibility. ). Se o featureCompatibilityVersion atual for inferior a 6.0, consulte a documentação sobre atualização em https://docs.mongodb.com/master/release-notes/6.0/#upgrade-procedures .

Agora eu li que o árbitro não deve conter dados e que o árbitro ignora o FCV em favor da compatibilidade com versões anteriores relatada pelos binários, que se for verdade, deve ser v6, não v5 como o erro declara. Eu tentei autenticar no árbitro para definir o FCV lá, mas eu recebo command setFeatureCompatibilityVersion requires authentication.

Estou esquecendo de algo óbvio relacionado à configuração/atualização do nó do árbitro?

mongodb
  • 1 respostas
  • 7 Views
Martin Hope
Mikko Ohtamaa
Asked: 2025-03-04 20:00:53 +0800 CST

PostgreSQL: mapeando consultas e aplicações SQL para uso de CPU

  • 5

Temos um PostgreSQL (com extensão TimescaleDB) em execução em um servidor Ubuntu, cuja carga tem aumentado constantemente ao longo do ano.

insira a descrição da imagem aqui

Gostaríamos de manter a carga sob controle. Para CPU, ou carga, gostaríamos de identificar consultas que estão causando o aumento na carga, pois algumas das consultas são provavelmente desnecessárias; a frequência pode ser diminuída, e assim por diante.

Qual seria a melhor maneira de mapear consultas e/ou aplicações PostgreSQL para uso de CPU? Especificamente, como essa não é uma consulta única, deve haver algum tipo de coleta de estatísticas por um período maior de tempo.

Atualmente, estamos usando o Datadog para monitorar o PostgreSQL e o servidor, mas ficaremos felizes em considerar quaisquer opções.

postgresql
  • 1 respostas
  • 19 Views
Martin Hope
Bacelo
Asked: 2025-03-03 20:54:54 +0800 CST

Extrair/mover valor de um campo para outro e mesclar

  • 7

Preciso de ajuda com isso...

Dentro de uma tabela "posts", tenho duas colunas onde preciso extrair/mover um valor de um campo para outro e mesclá-lo com o valor existente.

Table name: posts
-------------------
post_title       | post_name
-------------------------------
Title            | ashgt-36548
Some title       | ahrgz-46587
Some other title | kkahe-55486

Os valores de post_name estão todos no mesmo formato: 5 letras com um traço "-" e cerca de 5 dígitos (-DIGITS).

Então o que preciso ganhar é:

Remova "-DIGITS" de post_name e injete isso no campo post_title (mesclar valores) no início (primeira posição), remova o "-" e coloque o número de 5 dígitos entre colchetes [DIGITS]+SPACE

Então o resultado deve ser parecido com:

Table name: posts
--------------------------------------
post_title               | post_name
--------------------------------------
[36548] Title            | ashgt
[46587] Some title       | ahrgz
[55486] Some other title | kkahe

A sintaxe SQL que tenho até agora para remover o traço e os dígitos de post_name é (eu seleciono por meio de outra coluna "maschinen"):

UPDATE posts
SET `post_name`= mid(`post_name`, 1,length(`post_name`)-6)
WHERE `post_name` LIKE '%-%' AND `post_type` LIKE 'maschinen';

Qualquer ajuda sobre isso seria ótima. Obrigado.

mysql
  • 1 respostas
  • 90 Views
Martin Hope
peppy
Asked: 2025-03-03 07:48:55 +0800 CST

Como truncar tabelas no cron job enquanto mysqldump está em execução? Prevenir erro 1412 "Table Definition Has Changed"

  • 6

Tenho um script de tarefa cron de manutenção que é executado a cada 5 minutos que TRUNCA uma tabela, a preenche novamente com dados de manutenção e, em seguida, a TRUNCA no final. Também executo um script mysqldump diário que faz backup de todas as minhas tabelas. Percebi recentemente que algumas das tabelas estavam faltando no backup. Após uma investigação mais aprofundada, descobri que o mysqldump está gerando este erro:

Error 1412 "Table Definition Has Changed"

Depois de investigar mais a fundo, aparentemente o problema é porque meu script de tarefa cron está usando TRUNCATE para esvaziar a tabela no meio de um backup do mysqldump.

Estou usando a opção --single-transaction, mas isso não faz diferença.

Existe alguma maneira de permitir que o mysqldump continue mesmo se uma tabela for truncada enquanto o mysqldump estiver em execução (e ainda fazer backup dessa tabela)? Isso precisa ser feito sem a opção --ignore-table. Descobri como fazer isso, mas prefiro incluir todas as minhas tabelas de manutenção no backup, caso o banco de dados precise ser completamente restaurado de um backup.

A única outra coisa que consegui pensar foi usar "DELETE FROM table" em vez de "TRUNCATE table", mas eu teria que passar por todos os meus scripts em todos os meus sites para mudar isso.

mysql
  • 1 respostas
  • 37 Views
Martin Hope
muttBunch
Asked: 2025-03-02 05:45:07 +0800 CST

Como recuperar dados com base no acumulado do ano no Postgres?

  • 10

Gostaria de recuperar dados de "year to date" na minha consulta abaixo. Eu esperava algo simples no 'INTERVAL', mas não consegui encontrar nada.

Eu tenho o seguinte:

SELECT
    "status_id", date_part('epoch', time) * 1000 as time,
    COUNT(time) as "count"
FROM evStatus
WHERE time >= NOW() - Interval '{1}'
GROUP BY "status_id", time

Gostaria de obter dados de janeiro de qualquer ano até a data atual.

Testei isso abaixo e parece funcionar, mas quer ter certeza de que essa é a maneira correta?

SELECT
    "status_id", date_part('epoch', time) * 1000 as time,
    COUNT(time) as "count"
WHERE time BETWEEN date_trunc('year', now()) AND CURRENT_TIMESTAMP
postgresql
  • 2 respostas
  • 369 Views
Martin Hope
Jesper
Asked: 2025-03-02 03:59:40 +0800 CST

Azure Db - Bloqueio de porta 1433 - Macbook não conecta

  • 5

É assim, eu movi meu aplicativo web Blazor do computador Windows para o Mac Pro m4

É assim que toda vez que tento criar acesso ao banco de dados ele me dá um erro. É assim que eu tentei executar o aplicativo no meu computador da versão anterior sem problemas, mas assim que preciso acessar o banco de dados, tenho problemas que não consigo de forma alguma obter permissão para acessar o banco de dados.

Pesquisei na internet para ver se sou o único que tem esse problema ou não.

A única coisa que consegui descobrir é que seu IP deveria ser adicionado ao firewall. Posso dizer que está feito e também me certifiquei de que ele está lá várias vezes.

Erro: Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor: TCP Provider, erro: 26 - Erro ao localizar servidor/instância especificado)

Tentei abrir o terminal: nc -v xxxxx.database.windows.net 1433. ele me deu sucesso.

Eu tentei copiar as strings de conexão do ODBC e ADO.net no meu banco de dados que está no Azure e ambos falharam. E removi a antiga que estava no site, mas então adicionei a que está na página do Azure.

Não, estou tentando conectar ao banco de dados por meio da minha página Blazor. Mas ele não me deixa fazer isso.

Server=tcp:xxxx.database.windows.net,1433;Initial Catalog=sxxx;Persist Security Info=False;User ID=xxx;Password=xxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

então eu também uso EF (entity framework) para falar com meu banco de dados. Eu tenho:

microsoft entityframeworkcore design, + sqldesign e ferramenta

azure-sql-database
  • 1 respostas
  • 19 Views
Martin Hope
ElRojo
Asked: 2025-02-28 07:07:40 +0800 CST

Esquema removido e esquema padrão alterado - Permissões perdidas pelo usuário

  • 7

Como remover um esquema vazio e alterar o esquema padrão removeu a função db_owner de um usuário de banco de dados?

Eu determinei limpar os esquemas extras que foram criados ao longo dos anos. Alguns esquemas foram criados por padrão e têm o mesmo nome de um Login do Banco de Dados SQL. Eu pesquisei por esquemas que não continham nenhum objeto com esta consulta:

SELECT 
    db_name() AS DatabaseName
    ,ds.SCHEMA_NAME AS SchemaName
    ,du.name AS UserName
    ,'USE  ' + db_name() + '; ALTER USER [' + ds.SCHEMA_NAME + '] WITH DEFAULT_Schema=dbo; drop schema if exists [' + ds.SCHEMA_NAME + ']; ' as Fix
FROM INFORMATION_SCHEMA.SCHEMATA ds
JOIN sys.database_principals du ON du.name = ds.SCHEMA_NAME
    AND du.default_schema_name = ds.SCHEMA_NAME
    AND ds.SCHEMA_OWNER = du.name
WHERE NOT EXISTS (
        SELECT 1
        FROM sys.objects o
        JOIN sys.schemas ss ON ss.schema_id = o.schema_id
        WHERE ss.name = ds.SCHEMA_NAME
        )
    AND ds.SCHEMA_NAME NOT IN (
        'dbo'
        ,'guest'
        ,'sys'
        ,'INFORMATION_SCHEMA'
        )

Em seguida, usei esta consulta (como exemplo) para limpá-los:

USE  SecondaryDatabase; 
ALTER USER [User2] WITH DEFAULT_Schema=dbo; 
drop schema if exists [User2]; 

Primeiro, alterei o esquema padrão para o padrão " dbo ". Depois, removi o esquema que tinha o mesmo nome do usuário.

Remover o esquema ou alterar o esquema padrão removeu a função db_owner do User2 . A alteração que nosso fornecedor fez para consertar foi conceder a função db_owner ao User2.

Não consigo entender como remover um esquema que não tinha objetos e alterar o esquema padrão poderia alterar as permissões deste usuário. Alguma ideia?

O que fiz e pesquisei até agora:

  • https://learn.microsoft.com/en-us/sql/relational-databases/security/authentication-access/ownership-and-user-schema-separation?view=sql-server-ver16
    • Noções básicas sobre usuários e esquemas.
  • Qual é o propósito do "Proprietário do Esquema"?
    • O que eu entendo disso é que ser um proprietário de esquema só concede permissões a objetos naquele esquema. Se não houvesse objetos no esquema, remover o esquema não deveria ter alterado as permissões dos usuários.
  • Restaurou uma cópia do banco de dados para outro servidor. Reexecutou a consulta "fix" para ver se ela removeria o usuário da função db_owner. Não removeu.
  • Restaurei uma segunda cópia do banco de dados no mesmo outro servidor. Usei o Schema Compare no Visual Studio para comparar o original restaurado com a cópia restaurada após executar a "correção". Não observei nenhuma alteração inesperada. Comparei as cópias restauradas com o banco de dados de produção.
  • A versão específica do SQL Server é 2019 15.0.4410.1.
sql-server
  • 1 respostas
  • 54 Views
Martin Hope
Luna
Asked: 2025-02-28 03:30:54 +0800 CST

Falha na restauração do PostgreSQL 15 devido ao tratamento incorreto de UUID no dump

  • 6
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Database Administrators Stack Exchange. Migrada há 5 dias .

Estou enfrentando um problema ao restaurar um dump de banco de dados PostgreSQL 15. Durante o processo de restauração, encontro os seguintes erros:

ERROR:  trailing junk after numeric literal at or near "..."
ERROR:  invalid command \N
ERROR:  invalid command \N
.
.
.
ERROR:  out of memory

O erro ocorre após o processamento dos UUIDs no arquivo de despejo. Parece que os UUIDs estão sendo interpretados incorretamente, possivelmente como literais numéricos, o que causa problemas subsequentes com comandos inválidos como \N, levando a um erro de falta de memória.

Aqui está o comando que estou usando para criar o dump:

pg_dump -h <host> -p 5432 -U <username> <dbname> > new.dump

E o comando de restauração:

psql postgresql://<user>:<password>@<host>/<dbname> < new.dump

Alguém poderia aconselhar sobre a melhor maneira de criar um arquivo de despejo que manipule corretamente UUIDs durante o processo de restauração para evitar esses problemas? Especificamente, quero garantir que UUIDs sejam tratados como UUIDs e não interpretados como literais numéricos, o que leva a comandos inválidos e erro de falta de memória.

Qualquer ajuda ou melhores práticas seriam muito apreciadas!

Obrigado!

Informações adicionais:

Estou restaurando para uma instância do PostgreSQL 15.

SO e versão: Debian 12

pg_dump -V retorna:

pg_dump (Postgresql) 16.2
postgresql
  • 1 respostas
  • 43 Views
Martin Hope
Rune
Asked: 2025-02-27 19:57:30 +0800 CST

(espaço não separável) não é considerado espaço em branco pelo Postgres?

  • 6

Funções de string no Postgres não reconhecem espaços não separáveis ​​como espaços em branco, nem ao cortar nem ao usar expressões regulares:

select 'x' ||  test || 'x', 'x' ||  trim(test) || 'x', 'x' ||  regexp_replace(test, '\s+', '') || 'x' from 
(values
(''),
(' '),
('   y   '),
('s s s s')
) as foo(test)

(Não tenho certeza se o não separável ( ) sobrevive no código acima, mas as duas últimas linhas contêm nbsp) Demonstração do Onecompiler SQL

É uma coisa do Postgres não lidar com isso, ou é um bug? Eu sei de char(160) para nbsp, mas preferiria uma maneira geral de remover todos os espaços em branco

A ordenação em uso é en_US.utf8

postgresql
  • 1 respostas
  • 35 Views
Martin Hope
ventiseis
Asked: 2025-02-27 00:37:25 +0800 CST

Como depurar: "O gatilho retornou um conjunto de resultados e/ou estava sendo executado com SET NOCOUNT OFF"?

  • 5

Tenho um problema com o gatilho que produz a seguinte mensagem de erro

O gatilho retornou um conjunto de resultados e/ou estava sendo executado com SET NOCOUNT OF

O gatilho é estruturado assim:

CREATE TRIGGER TRIG_FOO ON FOO FOR INSERT, UPDATE, DELETE AS BEGIN

    DECLARE @AFFECTED CURSOR
    SET NOCOUNT ON
    IF EXISTS (SELECT * FROM INSERTED)
        SET @AFFECTED = CURSOR FOR SELECT ID FROM INSERTED
    ELSE
        SET @AFFECTED = CURSOR FOR SELECT ID FROM DELETED    

    OPEN @AFFECTED
    FETCH NEXT FROM @AFFECTED INTO @BAZ
    WHILE @@FETCH_STATUS = 0 BEGIN
    
        --- trigger logic
        
        FETCH NEXT FROM @AFFECTED INTO @BAZ
    END
    
    SET NOCOUNT OFF -- (*)
END

O gatilho não falha se eu remover a última linha ( SET NOCOUNT OFF). Usamos esse tipo de gatilho em muitas tabelas por muitos anos e sempre funcionou corretamente (mesmo se um cursor for usado). Tentei encontrar a fonte do erro com:

  • fechando e desalocando o cursor
  • usando um cursor de avanço rápido
  • saída de depuração e uma tabela de log separada
  • SQL Server Profiler (rastrear instruções executadas, mensagens e erros)
  • Eventos estendidos (eventos de log de instruções executadas)

Em nenhum lugar encontrei uma pista em qual parte do gatilho o outro conjunto de resultados é criado. Nenhum outro gatilho é definido para esta tabela.

Quero entender a causa da mensagem de erro - o que posso fazer? E é seguro remover a última linha do gatilho?

sql-server
  • 2 respostas
  • 82 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