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
Cezar
Asked: 2024-07-18 16:59:17 +0800 CST

É melhor executar o MariaDB em vários servidores menores ou em um grande?

  • 6

Tenho três clientes que usam MariaDB para seus aplicativos.

Por questão de segurança, criei uma VM para cada um deles que possui 2vCPU e 4GB de RAM.

Mas eu queria saber se fundir seus servidores seria uma má ideia, já que eles se beneficiariam de um servidor MUITO mais poderoso e isso me custaria um pouco menos em taxas de nuvem.

Quais seriam os benefícios em termos de potência versus segurança?

mariadb
  • 1 respostas
  • 63 Views
Martin Hope
fumblinggravy
Asked: 2024-07-18 13:53:05 +0800 CST

A replicação transacional está tentando atualizar uma linha que ainda não existe. Por que?

  • 5
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado há 6 dias .

Estou mexendo no SQL Server 2019 e na replicação transacional há algum tempo e me deparei com um obstáculo. Olhando para o monitor de replicação, estou vendo o erro "A linha não foi encontrada no Assinante ao aplicar o comando UPDATE replicado para a Tabela '[dbo].[MessageQueue]' com Chave(s) Primária(s): [Id] = 6039250" . Este erro ocorre logo no primeiro lote que o distribuidor envia ao assinante.

Eu sei que a linha acima foi adicionada após meu backup do editor, mas eu esperava que o INSERT fosse replicado antes do UPDATE.

Editor/distribuidor: padrão local do SQL Server 2019

Assinante: Instância Gerenciada de SQL

Estou usando o método de backup/restauração para inicializar, pois quando coloco isso em produção, estou lidando com um banco de dados de 2 TB. Meu banco de dados de teste tem apenas 150 GB.

Abaixo está o processo que segui para levantar as coisas:

  • Crie o editor, fiz isso através do assistente SSMS.
  • Defina as opções de assinatura da publicação para "Permitir inicialização de arquivos de backup" = True
  • Faça backup do banco de dados em uma conta de armazenamento do Azure. Usei uma chave de acesso da conta de armazenamento como credencial. Também não queria quebrar a cadeia de log do meu servidor DPM, então usei o COPY_ONLY.
CREATE CREDENTIAL [credential_name_here]
WITH IDENTITY = '<storage account name>',
SECRET = '<redacted>'

BACKUP DATABASE [myDatabase] TO  URL = N'https://<redacted>.blob.core.windows.net/backups/myDatabase_replication.bak' 
WITH CREDENTIAL = 'credential_name_here'
,COMPRESSION, COPY_ONLY, STATS = 5
  • Então, no meu SQL MI, executo o comando de restauração
use master
RESTORE DATABASE [myDatabase] 
FROM URL = N'https://<redacted>.blob.core.windows.net/backups/myDatabase_replication.bak'
  • Finalmente, criei a assinatura usando algum SQL.

Observe que tenho algumas opções comentadas. Tentei usar @sync_type, @backupdevicetype& @backupdevicenamemas não consegui superar o erro 'Não é possível abrir o dispositivo de backup' https://redacted.blob.core.windows.net/backups/myDatabase_replication.bak '. Erro 86 do sistema operacional (A senha de rede especificada não está correta). '.

Por alguma razão desconhecida, sp_addsubscription não suporta a passagem de uma credencial... bem, pelo que pude encontrar de qualquer maneira.

USE [myDatabase]
GO
EXEC sp_addsubscription 
@publication = N'pub_myDatabase', 
@subscriber = '<redacted>.<redacted>.database.windows.net', 
@destination_db = N'myDatabase',
@sync_type = 'replication support only',
--@sync_type = 'initialize with backup',
--@backupdevicetype ='URL',
--@backupdevicename = 'https://<redacted>.blob.core.windows.net/backups/myDatabase_replication.bak',
@article = N'all',
@update_mode = N'read only',
@subscriber_type = 0

-- Configure the Distribution Agent job
exec [myDatabase]..sp_addpushsubscription_agent 
     @publication = N'pub_myDatabase', 
     @subscriber = '<redacted>.<redacted>.database.windows.net', 
     @subscriber_db = N'myDatabase', 
     @job_login = NULL, @job_password = NULL, 
     @subscriber_security_mode = 0, 
     @subscriber_login = '<redacted>', @subscriber_password = '<redacted>',
     @frequency_type = 64, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0 -- Continuous
GO

-- Start Distribution agent
exec [myDatabase]..sp_startpushsubscription_agent 
     @publication = N'pub_myDatabase', 
     @subscriber = '<redacted>.<redacted>.database.windows.net', 
     @subscriber_db = N'myDatabase'
GO

É nesse ponto que verifico o monitor de replicação e vejo o erro citado anteriormente. Qualquer dica e/ou orientação seria muito apreciada!

sql-server
  • 1 respostas
  • 46 Views
Martin Hope
Kevin Meredith
Asked: 2024-07-18 09:52:24 +0800 CST

Impacto no desempenho do índice parcial em INSERTs que não envolvem a correspondência parcial

  • 5

Dado:

postgres=# create table testing(a int primary key, b int not null);
CREATE TABLE
postgres=# create index on testing (b) where b = 0;
CREATE INDEX
postgres=# \d testing
              Table "public.testing"
 Column |  Type   | Collation | Nullable | Default 
--------+---------+-----------+----------+---------
 a      | integer |           | not null | 
 b      | integer |           | not null | 
Indexes:
    "testing_pkey" PRIMARY KEY, btree (a)
    "testing_b_idx" btree (b) WHERE b = 0

Ao INSERTinserir uma nova linha onde b!= 0, pagarei a penalidade de atualizar o índice?

Idealmente, gostaria de acelerar as consultas com um valor b= 1sem adicionar atraso na inserção de novas linhas onde b!= 0.

postgresql
  • 1 respostas
  • 28 Views
Martin Hope
Darrell
Asked: 2024-07-18 03:50:05 +0800 CST

Reorganizar ou reconstruir índices espaciais

  • 1

Haverá uma maneira de excluir ou incluir apenas índices espaciais da ferramenta IndexOptimize ?

sql-server
  • 1 respostas
  • 75 Views
Martin Hope
Johnny Urdin
Asked: 2024-07-17 23:41:01 +0800 CST

Criei um evento, mas ele nunca é executado. Por que?

  • 5

Preciso chamar um procedimento armazenado a cada 10 minutos e estou utilizando um evento recorrente, o problema é que ele não é executado ou não sei como posso ver se há algum erro

Procedimento:

CREATE DEFINER=`root`@`%` PROCEDURE `simertg`.`estados_parqueos`()
BEGIN
set @HORA:= DATE_FORMAT(NOW( ),"%H:%i:00");
set @FECHA:= DATE_FORMAT(NOW( ),"%Y-%m-%d");
set @ID:=0;
select @ID:= estacionamiento_id from Estacionamiento_parqueo where tiempo_salida_t=@HORA and fecha=@FECHA;
UPDATE Estacionamiento_usuario_estacionamiento set estado=0 where estacionamiento_id=@ID;
END

Evento:

CREATE EVENT actualizar
ON SCHEDULE EVERY 10 MINUTE
STARTS '2024-07-17 00:00:00.000'
ON COMPLETION PRESERVE
DISABLE ON SLAVE
DO CALL estados_parqueos()

Quando tento ver o status, fica assim:

+-------------+---------+---------------------+ 
| EVENT_NAME  | STATUS  | LAST_EXECUTED       | 
+-------------+---------+---------------------+ 
| actualizar  | SLAVESIDE_DISABLED| 2024-07-17 11:15:55 | 
+-------------+---------+---------------------+

insira a descrição da imagem aqui

mysql
  • 1 respostas
  • 33 Views
Martin Hope
John Little
Asked: 2024-07-17 22:07:56 +0800 CST

Postgres: existe uma maneira de acelerar a mudança do tipo de coluna de int4 para int8?

  • 5

Temos cerca de 100 alterações simples para fazer em nosso esquema de banco de dados, como esta:

alter table transactions alter customer_sport_id type bigint;

Antes era int4. A maioria das colunas alteradas possui um ou mais índices.

Cada um leva cerca de 30 a 45 minutos em uma poderosa instância RDS dedicada (db.r6i.4xlarge) sem outra carga.

Temos que confirmar após cada linha para evitar o uso de todo o armazenamento.

O problema é que é lento, levará dias para fazer as alterações e não podemos ficar inativos por tanto tempo.

Há algo que possamos fazer para acelerar isso? Por exemplo

  1. descartando índices e criando-os novamente depois? (isso aceleraria?)
  2. desabilitando o WAL? Não tenho certeza se isso é viável ou arriscado (por exemplo, o banco de dados pode ser corrompido se a migração falhar no meio do caminho)
  3. Criar uma nova tabela e, de alguma forma, copiar todos os dados antigos para a nova tabela (poderíamos fazer isso em SQL ou exigiria um procedimento armazenado?), eliminar a tabela antiga e criar as sequências e índices na nova tabela ?

Aparentemente, colocamos aspirador uma vez por semana.

Aqui estão as estatísticas de desempenho do banco de dados da última hora (você pode ver no lançamento do armazenamento que duas instruções foram concluídas):

insira a descrição da imagem aqui

postgresql
  • 2 respostas
  • 53 Views
Martin Hope
Martin Karouš
Asked: 2024-07-17 05:00:17 +0800 CST

Alta utilização de CPU em uma instância ociosa do SQL Server sem tráfego de usuário [duplicado]

  • 5
Essa pergunta já tem resposta aqui :
Armazenamento de consultas quebrado (1 resposta)
Fechado há 3 horas .

Temos um SQL Server 2022 CU13 Enterprise em uma VM Windows 2022 com 8 vCPU. O processo sqlserver.exe mostra uma alta utilização da CPU entre 10-15%, mesmo quando não há carga gerada pelo usuário (o que significa que não há conexão do usuário no momento, até mesmo o SQL Server Agent é interrompido para eliminar toda carga que não seja do sistema) em o servidor. O tipo de espera dominante é SOS_SCHEDULER_YELD nesse tempo ocioso.

Essa atividade do servidor também bloqueia a interrupção do serviço SQL Server. Uma tentativa de interromper o serviço resulta em uma espera interminável e o processo de serviço do Windows precisa ser encerrado para "parar". Após a reinicialização, a utilização funciona perfeitamente por algum tempo (o servidor inativo tem */- 0 utilização de CPU), mas após algum período de tempo (algumas horas ou alguns dias no máximo) com a carga do usuário em execução, o problema volta novamente . Significa que a utilização é maior do que deveria ser com a carga do usuário gerada e, novamente, após a carga ser interrompida (sem conexões do usuário), a utilização permanece alta conforme mencionado acima...

Não há mensagens suspeitas no log de erros, na sessão de integridade do XE, no log de eventos do Windows...

Aqui está a visualização do Activity Monitor no servidor durante o período ocioso descrito acima: insira a descrição da imagem aqui

Após alguma investigação, provavelmente identifiquei o SPID, que causa essa utilização. Parece ser um SPID do sistema (SPID 37 no momento da investigação) e consome cerca de 10 segundos de tempo de CPU em um período de 10 segundos (veja a saída da Consulta 4 abaixo). O database_id do SPID parece estar mudando entre o mestre (database_id = 1) e um dos bancos de dados do usuário (database_id = 10). Apenas os IDs de bancos de dados 1 e 10 parecem estar envolvidos nesta atividade SPID. O SPID também está gerando uma alocação cada vez maior no tempdb (veja a saída da Consulta 3 abaixo).

Aqui está a saída do sys.dm_exec_request ao mesmo tempo em que a imagem do Activity Monitor acima foi tirada (o spid problemático é o 37): Consulta 1

Aqui está a saída de sp_WhoIsActive ao mesmo tempo: Consulta 2

Aqui está um cálculo do tempo de CPU consumido para o SPID durante o período de 10 segundos: Consulta 3

Pelo que entendi, parece ser uma atividade do Service Broker. No entanto, não há Service Broker habilitado no banco de dados mestre nem no banco de dados do usuário. Não usamos ativamente o Service Broker em nossos bancos de dados. Não tenho ideia do que possa ser essa atividade do corretor e com que atividade do sistema ela pode estar conectada. Não há nenhum recurso "incomum" usado no servidor ou no banco de dados do usuário, apenas um "conjunto básico de recursos comuns", o único "recurso incomum" é o TDE habilitado.

Alguma idéia de como posso investigar melhor a causa raiz desse problema (do que se trata essa atividade do corretor) e como posso me livrar dele?

sql-server
  • 1 respostas
  • 64 Views
Martin Hope
Don
Asked: 2024-07-16 06:30:58 +0800 CST

Por que o grupo de arquivos PRIMARY está crescendo?

  • 5

Executando o SQL Server 2019 Enterprise. Eu tenho um grupo de arquivos PRIMÁRIO, mas também adicionei quatro arquivos ndf em um grupo de arquivos Data1 que criei. Como esperado, tive que aumentar o espaço disponível no grupo de arquivos Data1 à medida que mais dados eram adicionados, mas o grupo de arquivos PRIMARY mdf permaneceu relativamente estático em tamanho. Nos últimos meses tive que aumentar o espaço no grupo de arquivos PRIMARY. Começou com 5 GB e expandi para 10 GB há algumas semanas. Fiquei sem espaço novamente e acabei de chegar a 15 GB. O grupo de arquivos Data1 é o grupo de arquivos padrão. Por que o grupo de arquivos PRIMARY estaria crescendo repentinamente agora, quando não é o padrão? Cada um dos arquivos Data1 está configurado para 160 GB, então PRIMARY ainda é consideravelmente menor. Gostaria de saber se existe uma maneira de determinar por que ele está crescendo inesperadamente quando estava estagnado no passado.

insira a descrição da imagem aqui

sql-server-2019
  • 1 respostas
  • 40 Views
Martin Hope
John
Asked: 2024-07-16 05:33:23 +0800 CST

A duplicação de tabelas do banco de dados1 para o banco de dados2 LIKE no mesmo servidor falha, erro 1064

  • 5

Tenho lido o manual e os tutoriais do MariaDB e aparentemente isso deve funcionar:

EXPLAIN CREATE TABLE `prefix_database2`.`table1` LIKE `prefix_database1`.`table1`;`

O LIKEoperador deve duplicar as colunas e chaves da tabela. Não sei por que estou recebendo o erro de sintaxe.

Como duplico uma tabela em um segundo banco de dados do primeiro, mantendo exatamente as mesmas colunas, chaves, etc.?

mariadb
  • 1 respostas
  • 9 Views
Martin Hope
John
Asked: 2024-07-15 05:24:36 +0800 CST

O mesmo usuário global funciona localmente, mas falha no servidor ativo para consulta UPDATE do banco de dados information_schema

  • 5
  • Eu tenho dois servidores de banco de dados, locais e ativos.
  • O servidor local está executando o MariaDB 10.11.6, o servidor ativo está executando o 10.11.8.
  • Eu tenho exatamente o mesmo usuário global, example@ localhostnos servidores locais e ativos.
  • Executei exatamente a mesma consulta SQL ( UPDATE information_schema.TABLES ...) em ambos os servidores.
  • As estruturas de banco de dados/tabela/coluna são exatamente as mesmas.
  • A consulta funcionou 100% perfeita no servidor local.
  • Recebi o seguinte erro no servidor ativo:

Acesso negado ao usuário 'example'@'localhost' ao banco de dados 'information_schema'

  • Eu pesquisei e encontrei exatamente os mesmos resultados usando SELECT * FROM mysql.global_priv WHERE 'User'='example';.
  • O usuário tem permissões globais, não limitadas a bancos de dados específicos nos servidores locais e ativos.
  • No mysql.dbbanco de dados/tabela não há menção ao exampleusuário porque, novamente, ele possui permissões globais .
  • No mysql.dbbanco de dados/tabela não há menção ao information_schemabanco de dados em nenhum dos servidores.

Como faço para forçar o MariaDB a permitir que o exampleusuário execute minha UPDATE information_schema.TABLES ...consulta no servidor ativo?

mariadb
  • 1 respostas
  • 21 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