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
Daylon Hunt
Asked: 2024-10-24 05:05:49 +0800 CST

Filtros de função personalizados

  • 5

Tenho uma função que atualmente usa 3 parâmetros:

CREATE FUNCTION dbo.RatesReport (@StartTapeDate DATE, @StartFcbVersionId int, @StartSvbVersionId int)
SELECT *
FROM dbo.DataTapes t
WHERE t.TapeDate = @StartTapeDate AND t.VersionId IN(@StartFcbVersionId, @StartSvbVersionId) 

Gostaria de adicionar um parâmetro adicional (@LoanType int) que bifurque ainda mais os dados, mas ele precisaria ser derivado.
CASE WHEN t.SecId LIKE 'CD_%' THEN 1 ELSE 2

Para que minha nova consulta/função fique mais ou menos assim:

CREATE FUNCTION dbo.RatesReport (@StartTapeDate DATE, @StartFcbVersionId int, @StartSvbVersionId int, @DataType int)
SELECT *
FROM dbo.DataTapes t
WHERE t.TapeDate = @StartTapeDate AND t.VersionId IN(@StartFcbVersionId, @StartSvbVersionId) and t.SecId = @LoanType
sql-server
  • 1 respostas
  • 52 Views
Martin Hope
Dmitro
Asked: 2024-10-24 03:06:42 +0800 CST

Estou tentando configurar a replicação de mesclagem e recebo um erro 'MSmerge_ctsv_9777E7338F8248498FD', porque ele não existe ou você não tem permissão

  • 5

Meu erro é MSmerge_ctsv_9777E7338F8248498F9237E1FF3FE39Dporque ele não existe ou você não tem permissão.

Conectei-me ao banco de dados de assinantes e tentei executar a seguinte consulta:

exec sys.sp_MSaddmergetriggers N'Employees', N'dbo', null, 0 

e obteve o seguinte erro:sp_MS_marksystemobject:

Nome de objeto inválido '[dbo].[MSmerge_ins_9777E7338F8248498F9237E1FF3FE39D]' sp_MS_marksystemobject: Nome de objeto inválido '[dbo].[MSmerge_upd_9777E7338F8248498F9237E1FF3FE39D]' sp_MS_marksystemobject: Nome de objeto inválido '[dbo].[MSmerge_del_9777E7338F8248498F9237E1FF3FE39D]' Msg 15151, Nível 16, Estado 1, Linha 20 Não é possível encontrar o objeto 'MSmerge_ctsv_9777E7338F8248498F9237E1FF3FE39D', porque ele não existe ou você não existe não tem permissão. Falha ao criar gatilhos de replicação de mesclagem para o objeto '[dbo].[Employees]'.

Tempo de conclusão: 2024-10-23T15:03:16.5001483-04:00

Quais autorizações eu preciso?

Talvez o seguinte tenha algum efeito: se eu executar a seguinte consulta nos editores:

SELECT *
FROM sys.objects WHERE name = 'MSmerge_ctsv_9777E7338F8248498F9237E1FF3FE39D';

Eu recebo um registro, se eu executar esta consulta no assinante, não encontro um único registro

sql-server
  • 1 respostas
  • 64 Views
Martin Hope
Tobia
Asked: 2024-10-22 22:26:57 +0800 CST

Como posso desabilitar o MaxScale readwriterouter para consultas específicas?

  • 5

Estou usando uma replicação Galera e um MaxScale readwriterouter.

Estou enfrentando um problema porque o aplicativo foi desenvolvido com este fluxo:

  1. iniciar transação
  2. atualizar um registro
  3. comprometer-se
  4. leia esse registro

O resultado é que o registro é atualizado usando o servidor de gravação e a próxima leitura é feita no servidor de leitura. Ele não obtém os dados que acabaram de ser atualizados devido ao atraso de replicação.

Infelizmente, é um pouco difícil refatorar todo o aplicativo e estou procurando se existe alguma solução para forçar uma leitura no servidor de gravação para que eu possa ter certeza de obter os dados que acabaram de ser atualizados.

mariadb
  • 1 respostas
  • 16 Views
Martin Hope
lifeisajourney
Asked: 2024-10-22 21:19:11 +0800 CST

Como determinar se um procedimento armazenado está sendo recompilado em cada execução no SQL Server 2012

  • 10

Que consulta posso usar para determinar se um procedimento armazenado está sendo recompilado toda vez que é executado no SQL Server 2012? Suspeito que alguns dos nossos procedimentos armazenados podem estar sendo recompilados, mas não tenho certeza de como verificar. Obrigado!

sql-server
  • 1 respostas
  • 448 Views
Martin Hope
Speedcat
Asked: 2024-10-22 10:29:52 +0800 CST

Como posso executar sp_refreshview em todas as visualizações no meu banco de dados SQL Server

  • 8

Estou usando o SQL Server e recebi um erro indicando que uma ou mais das minhas exibições SQL estão fora de sincronia com a tabela SQL subjacente.

'MySQLServerName' retornou dados que não correspondem ao comprimento de dados esperado para a coluna 'MyColumnName'. O comprimento de dados esperado (máximo) é 50, enquanto o comprimento de dados retornado é 52.

Isso ocorre se você atualizar a definição da tabela SQL subjacente, mas esquecer de atualizar a(s) visualização(ões) SQL associada(s). Uma correção rápida para esse erro é executar sp_refreshview :

use MySQLDatabaseName
go
 
EXECUTE sp_refreshview N'MyViewName';

Mas e se eu tiver uma longa lista de visualizações quebradas, ou nem mesmo souber quais visualizações estão quebradas, ou não souber quais definições de tabela subjacentes não correspondem mais a essas visualizações? E se eu quiser economizar tempo executando sp_refreshview em todas as visualizações do meu banco de dados. Qual é uma maneira fácil de realizar essa tarefa?

sql-server
  • 2 respostas
  • 143 Views
Martin Hope
Mark Sowul
Asked: 2024-10-22 03:46:24 +0800 CST

Detectando um SID alterado para login do Windows

  • 5

Imagine que você criou um login para um grupo local do Windows, por exemplomachine_name\group_name

Você reconstrói o servidor (nova máquina física) com o mesmo nome de máquina ( machine_name), anexa as unidades antigas a ele, incluindo o SQL server. O grupo também foi recriado.

Mas é uma nova instalação de SO. Como tal, o novo machine_name\group_nameterá um novo SID e não funcionará de fato.

Como podemos detectar que o SID do login não é mais válido para sabermos que precisamos recriá-lo?

SELECT SUSER_SID(machine_name\group_name)ainda está retornando o SID antigo (conforme armazenado em sys.server_principals). [sys].[sp_validatelogins]também não relata nada.

Parece que isso SUSER_SIDacontece à sys.server_principalsprimeira vista, então não sabemos como detectar isso.

sql-server
  • 2 respostas
  • 59 Views
Martin Hope
Ben Adams
Asked: 2024-10-22 01:45:54 +0800 CST

Erro 15581 e 9001 ao migrar o banco de dados TDE para um novo servidor

  • 5

Estamos migrando um banco de dados com TDE habilitado de uma máquina SQL 2016 SP3 para uma máquina SQL 2022 CU17.

Nova configuração do servidor: para preparar o novo servidor, restaurei a chave mestra do serviço e a chave mestra do banco de dados mestre (com chave privada), bem como o certificado TDE armazenado no mestre. Eu tive um problema muito cedo com a chave mestra do serviço, mas consegui resolvê-lo executando o novo serviço SQL como a mesma conta do Windows AD do servidor anterior. Posso fornecer os scripts que usei para fazer qualquer/toda essa configuração, mas não queria desorganizar muito o post

Quando restauro o banco de dados no novo servidor, estou executando:

USE [master]
GO

Open Master Key Decryption by password = '8675309'

RESTORE DATABASE mysecuredb FROM
DISK = '\\myshare\mysecuredbbackup.bak'
WITH REPLACE

USE [mysecuredb]

OPEN MASTER KEY DECRYPTION BY PASSWORD = '12345'

ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '54321'

Ambos os comandos são bem-sucedidos, então parece que a chave está acessível como esperado após a restauração. DBCC CHECKDB também aparece limpo.

Quando restauro o banco de dados, ele executa as etapas de atualização para 2022 e fica online, mas quando executo ALTER DATABASE mysecuredb SET ENCRYPTION ON, recebo o seguinte conjunto de erros

Informações: Iniciando verificação de criptografia do banco de dados 'mysecuredb'.

Erro 15581: Crie uma chave mestra no banco de dados ou abra a chave mestra na sessão antes de executar esta operação.

Erro 9001: O log do banco de dados 'mysecuredb' não está disponível. Verifique o log de erros do sistema operacional para mensagens de erro relacionadas. Resolva quaisquer erros e reinicie o banco de dados.

O banco de dados não se torna suspeito como eu esperaria com corrupção, mas sys.dm_database_encryption_keys mostra que o banco de dados está preso no estado 2 (Criptografia em andamento), aparentemente sem nenhuma maneira de continuar ou reverter a ação de criptografia. Pode valer a pena notar que o banco de dados também tem criptografia de célula habilitada para algumas colunas, no entanto, consigo descriptografar esses dados usando as chaves SYM/ASYM após a restauração (mas enquanto o TDE está desabilitado).

Esta é a minha primeira vez interagindo com o TDE, pois o antigo dono desta infraestrutura navegou para pastos mais verdes, mas não tenho certeza do que estou perdendo na documentação disponível da MS. Qualquer ajuda é bem-vinda!

sql-server
  • 1 respostas
  • 15 Views
Martin Hope
Leon
Asked: 2024-10-21 15:22:22 +0800 CST

A variável de ambiente $PGUSER NÃO tem efeito com o cliente Postgresql?

  • 5

Por muitos anos, usei a variável de ambiente $PGUSERquando trabalhei com ferramentas de cliente, como psql/pg_dump/pg_restore.

Recentemente eu montei um novo servidor PG13, a env var $PGUSERNÃO entra em vigor , quando eu tento usar as ferramentas do cliente em um terminal do servidor. Eu recebo uma mensagem como esta:

leon@mamba:~$ echo $PGUSER

postgres

leon@mamba:~$ psql

psql: erro: falha na conexão com o servidor no soquete "/var/run/postgresql/.s.PGSQL.5432":

FATAL: papel "leon" não existe

Se eu usar as ferramentas em um terminal de outro computador físico, a variável env entra em vigor normalmente.

Claro, a var foi definida em ambas as máquinas.

Meu pg_hba.conf:

# TIPO MÉTODO DE ENDEREÇO ​​DE USUÁRIO DO BANCO DE DADOS

hospedar todos todos 127.0.0.1/32 confiança

hospedar todos todos 192.168.xx/16 md5

# Conexões locais IPv6:

hospedar todos todos ::1/128 confiança

postgresql
  • 1 respostas
  • 28 Views
Martin Hope
J. Mini
Asked: 2024-10-20 07:34:23 +0800 CST

Considerando que exigem bloqueios de modificação de esquema, por que colunas esparsas são consideradas uma alternativa ao EAV?

  • 6

Pro SQL Server Relational Database Design and Implementation: Best Practices for Scalability and Performance é uma fonte muito confiável de boas ideias de design de banco de dados. Como alternativa ao Entity-Attribute-Value, ele sugere usar SQL dinâmico para permitir que seus usuários adicionem novas colunas esparsas a uma tabela.

Para mim, essa ideia fede. Adicionar novas colunas requer um bloqueio de modificação de esquema. Esse é um bloqueio muito sério e eu preferiria que meus usuários não tivessem a capacidade de obtê-lo.

Existe alguma propriedade de colunas esparsas que faz com que permitir que os usuários assumam um bloqueio tão sério não seja tão terrível quanto seria para outros tipos de coluna?

sql-server
  • 2 respostas
  • 70 Views
Martin Hope
hz lin
Asked: 2024-10-19 23:18:00 +0800 CST

É possível compactar ou particionar uma tabela enorme existente no local para o mariadb?

  • 6

Tenho um banco de dados mariadb configurado para registrar dados de experimentos. Em uma das tabelas, armazeno imagens brutas enormes em cada linha. Com alguns milhões de linhas, cada uma contendo 3 imagens de 512*512px, fico sem espaço em disco. Tenho 12 TB de disco e o banco de dados consumiu ~10 TB. A diferença entre as imagens é pequena, então acredito que há muito espaço para compactação. Quero considerar a compactação do banco de dados, mas com espaço livre limitado, quero um método para compactá-lo no lugar. Uso o mariadb 10.3.39 no Ubuntu 20.04. Não sou especialista em banco de dados, mas ficarei feliz em aprender mais. Eu tentei:

ALTER TABLE images ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 ALGORITHM=INPLACE;

e eu obtive:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALGORITHM=INPLACE' at line 1 

Também considerei que talvez eu possa particionar minha tabela em pedaços e compactar cada partição individualmente. No entanto, também não tenho certeza se particionar uma tabela existente requer mais espaço. Gostaria de obter alguma recomendação antes de tentar às cegas.

mariadb
  • 2 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