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
Miro
Asked: 2024-03-21 00:09:48 +0800 CST

Índice Postgres BRIN para tabela de série temporal

  • 6

Tenho várias tabelas de série temporal com Pkey na timestampcoluna.

Gostaria de testar a melhoria do desempenho se alterar o índice BRINpara BTREE.

No entanto, eu também gostaria de ter uma restrição UNIQUE na timestampcoluna (que, até onde eu sei, é baseada BTREE).

Quais são minhas opções?

  • Devo adicionar um BRINíndice adicional a BTREE? Neste caso qual índice será escolhido durante as buscas/junções?
  • Devo descartar a chave e adicionar apenas a UNIQUErestrição? Neste caso como vai funcionar?

Meu cenário de uso é que preciso executar FULL OUTER JOINs em uma timestampcoluna para fazer consultas de várias tabelas juntas e essas consultas às vezes podem ser executadas por 30 minutos ou mais.

postgresql
  • 1 respostas
  • 46 Views
Martin Hope
Radioleao
Asked: 2024-03-20 21:29:10 +0800 CST

Backup diferencial do MS SQL: como localizar a fonte de backup completo

  • 5

Esta manhã realizei um backup diferencial do meu banco de dados, denominado "MW". Agora preciso restaurar o backup (completo+diferencial) em outro banco de dados, denominado "bak_MW".

Recebi um erro ao tentar restaurar o banco de dados com backup completo + backup diferencial.

O erro é:

Falha na restauração do banco de dados 'bak_MW'. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------ INFORMAÇÕES ADICIONAIS:

System.Data.SqlClient.SqlError: O conjunto de backup contém um backup de um banco de dados diferente do banco de dados 'bak_MW' existente. (Microsoft.SqlServer.SmoExtended)

Acho que o erro está relacionado ao arquivo de origem errado do backup completo. Algum processo fez um backup completo mais recente que o meu.

Como posso obter o nome do arquivo referenciado pelo MSSQL Backup para backup completo?

Existe alguma maneira de encontrar o log do backup completo realizado, com o caminho do arquivo de destino?

Obrigado.

sql-server
  • 2 respostas
  • 39 Views
Martin Hope
MiH
Asked: 2024-03-20 18:05:22 +0800 CST

Como configurar a sincronização do mongo com apenas dois nós?

  • 5

Estou tentando instalar dois nós do mongo, cada um localizado em um local diferente com baixa latência. A arquitetura deve ser:

  • Um nó em DC e o outro nó em DR. Supõe-se que apenas um nó seja o primário por vez (nó no DC); se o DC estiver inativo, o nó no DR pode ser o mestre (pode propô-lo manualmente como primário).

  • Quando o nó no DR é alterado manualmente para ser primário, posso ter tempo para trazer novamente o nó no DC, esperar que os dados sejam sincronizados com o DC e, em seguida, diminuir o nó no DR, alterar o nó no DC para ser primário novamente.

Não tenho certeza se o conjunto de réplicas pode ser aplicado a isso. Por favor me ajude com uma solução para isso.

Obrigado.

mongodb
  • 1 respostas
  • 16 Views
Martin Hope
Edvin Guromin
Asked: 2024-03-20 15:25:00 +0800 CST

Precisa criar uma tabela duplicada em um esquema separado automaticamente sempre que uma nova tabela estiver sendo criada

  • 5

Sempre que uma nova tabela está sendo criada no Esquema 'A', preciso que a tabela seja duplicada no Esquema 'B'. Isso deve acontecer automaticamente. Procurei o conceito de gatilho, mas ele não funcionará em instruções DDL como instruções 'CREATE' ou 'ALTER'. Como faço para conseguir isso sem gatilhos? Por favor me ajude.

stored-procedures
  • 1 respostas
  • 43 Views
Martin Hope
life777eternal
Asked: 2024-03-20 11:44:33 +0800 CST

Como importar arquivos do banco de dados MySQL RAW sem erro de conexão

  • 6

infelizmente não criei um arquivo 'dump' com o processo de backup (exportação de dados) no MySQL Workbench 8.0.26.

Quando copio os arquivos de banco de dados antigos para o novo diretório Data, o servidor não inicia com a mensagem:

Could not connect to MySQL: Can't connect to MySQL server on 'localhost' (10061) (code 2003)

Tentei fazer uma instalação limpa do MySQL Server 8.0.26 e Workbench 8.0.26 no Windows Web Server 2008 R2. Depois disso, instale o servidor MySQL funciona bem. Mas então, quando eu paro o servidor e copio os arquivos antigos do banco de dados para o novo diretório Data, o servidor MySQL não inicia depois disso. Embora eu tenha lido que esta não é a maneira usual de 'fazer backup' e restaurar um banco de dados MySQL, embora eu não soubesse disso antes.

Existe alguma maneira de converter os arquivos de banco de dados antigos em um arquivo 'dump' fora do MySQL Workbench? Ou existe alguma maneira de importar os arquivos antigos do banco de dados MySQL para o novo banco de dados sem que o servidor MySQL falhe na inicialização novamente?

Obrigado.

mysql
  • 1 respostas
  • 14 Views
Martin Hope
user23278799
Asked: 2024-03-20 10:13:20 +0800 CST

Restrição para impor que pode haver no máximo 2 instâncias de um valor (ou conjunto de valores)

  • 6

Um índice exclusivo pode ser usado para garantir que haja no máximo 1 instância de um determinado valor ou conjunto de valores. Minha pergunta é: existe uma maneira de garantir que haja no máximo duas instâncias de um valor ou conjunto de valores? Estou ciente dos gatilhos e UDFs escalares nas restrições de verificação. Não estou interessado nessas soluções.

Banco de dados: SQL Server 2017.

sql-server
  • 1 respostas
  • 67 Views
Martin Hope
Raja_mssqlDBA
Asked: 2024-03-20 10:04:55 +0800 CST

Inicializar servidor SQL de assinante transacional

  • 5

Como requisito para obter novos dados do editor para o assinante. Usei gerar um novo instantâneo, executar o leitor de log e executar o agente de distribuição.

Gostaria de saber qual opção usamos para inicializar o Assinante para todos os artigos. Posso ver as seguintes 4 opções.

A replicação está funcionando bem, mas ouvi da equipe de aplicativos que eles estão enfrentando algum problema ao comparar dados e carregar o trabalho ETL.

Usei drop and recreate e apareceu erro de relacionamento de chave primária e chave estrangeira. Então usei Truncar toda a tabela e carregar.

Esse é o método correto.

insira a descrição da imagem aqui

sql-server
  • 1 respostas
  • 16 Views
Martin Hope
juacala
Asked: 2024-03-20 07:52:53 +0800 CST

O MySQL tem uma maneira de limitar o tempo de atualização/inserção de instruções?

  • 6

Isso é semelhante ao statement_timeout do postgresql.

Estou procurando o erro de consulta se demorar mais de x segundos.

Estou ciente de SET MAX_EXECUTION_TIME, mas isso afeta apenas consultas de seleção, não consultas de atualização/inserção.

mysql
  • 1 respostas
  • 21 Views
Martin Hope
Nick Parrill
Asked: 2024-03-20 07:05:01 +0800 CST

Par de chaves estrangeiras MariaDB que faz referência ao registro de tabela com versão do sistema

  • 6

Estou alterando um sistema de reservas de código aberto para atender às necessidades do meu empregador. Gostaria de fazer com que a edição ou exclusão de um serviço não modifique ou exclua necessariamente o serviço referenciado pelos compromissos existentes (por exemplo, editar o preço de um serviço deixa o mesmo preço listado para os compromissos que foram feitos antes da alteração) .

Atualmente, eu o implementei de forma que a tabela que armazena o serviço seja versionada usando o versionamento do sistema MariaDB, e os compromissos armazenem o row_startregistro do serviço para buscá-lo como estava na criação do compromisso posteriormente. Os compromissos atualmente usam o ID do serviço como chave estrangeira, e eu gostaria de mudar isso para um par de chaves usando o ID e as row_endcolunas de forma que o compromisso faça referência ao serviço como ele existia quando o compromisso foi feito ou editado pela última vez usando row_end. Dessa forma posso excluir ou editar registros de serviço na versão "presente" da tabela de serviços sem afetar os compromissos existentes para esse serviço.

Basicamente eu tenho:

CREATE TABLE `services` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name` varchar(256) DEFAULT NULL,
  `duration` int(11) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `price` decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci WITH SYSTEM VERSIONING;

INSERT INTO `services` VALUES
(1, 'Service', 30, 'This is a description', 20.00);

CREATE TABLE `appointments` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `start_datetime` datetime DEFAULT NULL,
  `end_datetime` datetime DEFAULT NULL,
  `id_services` int(11) DEFAULT NULL,
  `service_timestamp` timestamp(6) NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

INSERT INTO `appointments` VALUES
(1, '2024-03-19 11:30:00', '2024-03-19 12:00:00', 1, '2038-01-18 21:14:07.999999');

ALTER TABLE appointments 
ADD CONSTRAINT `appointments_services` 
FOREIGN KEY (`id_services`, `service_timestamp`) 
REFERENCES services(`id`, `row_end`) 
ON DELETE CASCADE ON UPDATE CASCADE;

E eu gostaria do resultado de:

UPDATE `services` SET `price`=30.00 WHERE `id` = 1

Nas nomeações a serem:

table : appointments
+-------+---------------------+---------------------+-------------+----------------------------+
|    id |      start_datetime |        end_datetime | id_services |          service_timestamp |
+-------+---------------------+---------------------+-------------+----------------------------+
|     1 | 2024-03-19 11:30:00 | 2024-03-19 12:00:00 |           1 | (When the update happened) |
+-------+---------------------+---------------------+-------------+----------------------------+

Em vez disso, recebo:

table : appointments
+-------+---------------------+---------------------+-------------+----------------------------+
|    id |      start_datetime |        end_datetime | id_services |          service_timestamp |
+-------+---------------------+---------------------+-------------+----------------------------+
|     1 | 2024-03-19 11:30:00 | 2024-03-19 12:00:00 |           1 | 2038-01-18 21:14:07.999999 |
+-------+---------------------+---------------------+-------------+----------------------------+

E tentar atualizar service_timestamp para row_end da versão do serviço antes que a atualização quebre a restrição de chave estrangeira.

Eu gostaria de continuar usando o controle de versão do sistema MariaDB, pois acho que ele supera em muito qualquer coisa que eu mesmo pudesse criar, mas se houver outra maneira de registrar alterações nos serviços e recuperar certas versões deles, estou aberto a sugestões.

Existe uma maneira de criar uma restrição de chave estrangeira que faça referência a toda a tabela com versão do sistema, em vez de apenas à versão atual, de modo que, quando um registro de serviço for atualizado ou excluído, a chave estrangeira faça referência ao registro antes de ser atualizado ou excluído? Não tenho muita experiência com bancos de dados, então qualquer conselho é bem-vindo.

mariadb
  • 2 respostas
  • 31 Views
Martin Hope
javery
Asked: 2024-03-20 05:27:03 +0800 CST

Extra `CASE WHEN` remove texto de string criada dinamicamente

  • 5

Estou tentando gerar uma CREATE TABLEinstrução baseada em uma determinada tabela no meu banco de dados SQL-SERVER usando as INFORMATION_SCHEMAtabelas, mas quando tento concatenar a DEFAULTparte de uma declaração de campo, meu código só agora exibe o campo com um DEFAULT, apesar de estar concatenado como as outras partes da declaração de campo até agora.

Considere esta tabela:

CREATE TABLE FOO (
    ID int PRIMARY KEY NOT NULL,
    BAR NVARCHAR(50) NULL,
    CREATED_DATE DATETIME DEFAULT (GETDATE())
);

O código abaixo gera a instrução, mas não leva em consideração os padrões e também assume que você possui apenas uma chave primária e nenhuma chave estrangeira. Se você adicionar a linha comentada, de repente ela incluirá apenas o campo que tem um padrão, e não consigo entender por que isso está acontecendo.

DECLARE @TableName NVARCHAR(128) = 'FOO'; 
DECLARE @sql NVARCHAR(MAX) = 'CREATE TABLE ' + @TableName + ' (' + CHAR(13);
DECLARE @primaryKey NVARCHAR(128) = '';

-- Find primary key
SELECT @primaryKey = COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME = @TableName AND CONSTRAINT_NAME LIKE 'PK%';

-- build the string
SELECT @sql = @sql + '  [' + COLUMN_NAME + '] ' + 
    DATA_TYPE + 
    CASE 
        WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL THEN '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) + ')' 
        WHEN DATA_TYPE IN ('decimal', 'numeric') THEN '(' + CAST(NUMERIC_PRECISION AS VARCHAR) + ', ' + CAST(NUMERIC_SCALE AS VARCHAR) + ')'
        ELSE '' 
    END +
    CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE ' NULL' END +
    CASE WHEN COLUMN_NAME = @primaryKey THEN ' PRIMARY KEY' ELSE '' END +
    -- Uncomment below for weird behavior:
    --CASE WHEN COLUMN_DEFAULT IS NOT NULL THEN ' DEFAULT ' + UPPER(COLUMN_DEFAULT) ELSE '' END +
    ',' + CHAR(13)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
ORDER BY ORDINAL_POSITION;

-- clean up ending
SET @sql = LEFT(@sql, LEN(@sql) - 2) + CHAR(13) + ');';
PRINT @sql;

Aqui está a saída com a linha comentada (portanto, quaisquer DEFAULTs são deixados de fora):

CREATE TABLE FOO (
  [ID] int NOT NULL PRIMARY KEY,
  [BAR] nvarchar(50) NULL,
  [CREATED_DATE] datetime NULL
);

E então com a linha:

CREATE TABLE FOO (
  [CREATED_DATE] datetime NULL DEFAULT (GETDATE())
);

Por que meu código está gerando respostas tão diferentes?

sql-server
  • 1 respostas
  • 54 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