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
Change
Asked: 2024-11-16 22:31:13 +0800 CST

MariaDB - É seguro excluir um arquivo temporário grande?

  • 5

Estou executando o MariaDB Windows Server 2022 Standarde estou ficando sem espaço em disco no disco do sistema.

Encontrei um arquivo chamado ib534F.tmpcom 65 GB relacionado ao MariaDB no caminho:

C:\Windows\ServiceProfiles\MariaDB_PROJECT\AppData\Local\Temp

De acordo com o Windows, este arquivo foi editado pela última vez em 04.10.2022, mas não tenho certeza se isso é verdade.

Captura de tela da pasta

É seguro excluir este arquivo?

O que pode acontecer no pior dos casos?

mariadb
  • 1 respostas
  • 19 Views
Martin Hope
SE1986
Asked: 2024-11-16 00:57:28 +0800 CST

Como a resolução de nomes funciona com procedimentos armazenados temporários?

  • 8

Digamos que eu tenha os dois bancos de dados a seguir

USE [master]
CREATE DATABASE Jack
GO

CREATE DATABASE Jill
GO

USE Jack
GO
CREATE TABLE JacksTable
(
    Id INT
)
INSERT INTO JacksTable VALUES (1)

Se eu criar o seguinte procedimento armazenado temporário no contexto do banco de dados Jack:

USE Jack
GO

CREATE PROC #Temp
AS
    SELECT  *
    FROM    JacksTable
GO

e então execute no banco de dados Jack:

USE Jack
GO
EXEC #Temp

Eu obtive o resultado1

Se eu então executar no contexto do banco de dados Jill:

USE Jill
GO
EXEC #Temp

Eu entendo1

Agora, se eu abandonar o procedimento

DROP PROC #Temp

e crie o procedimento novamente no contexto do banco de dados Jill:

USE Jill
GO

CREATE PROC #Temp
AS
    SELECT  *
    FROM    JacksTable 
GO

e execute-o

USE Jill
GO    
EXEC #Temp

Recebo um erro

Msg 208, Level 16, State 1, Procedure #Temp, Line 4 [Batch Start Line 74]
Invalid object name 'JacksTable'.

Se eu tentar executá-lo a partir do banco de dados Jack:

USE Jack
GO
EXEC #Temp

Eu entendo

Msg 208, Level 16, State 1, Procedure #Temp, Line 4 [Batch Start Line 74]
Invalid object name 'JacksTable'.

Se eu então abandonar o procedimento

DROP PROC #Temp

Recrie novamente no contexto do banco de dados Jill

USE Jill
GO

CREATE PROC #Temp
AS
    SELECT  *
    FROM    JacksTable 
GO

e desta vez executado a partir do banco de dados Jack

USE Jack
GO
EXEC #Temp

Recebo o mesmo erro de ligação

Msg 208, Level 16, State 1, Procedure #Temp, Line 4 [Batch Start Line 74]
Invalid object name 'JacksTable'.

isso me diz que o SQL Server tenta vincular os objetos no procedimento temporário ao banco de dados que estava no contexto quando o procedimento armazenado temporário foi criado.

este artigo sugere

Quando um procedimento armazenado é executado pela primeira vez, o processador de consulta lê o texto do procedimento armazenado na exibição do catálogo sys.sql_modules e verifica se os nomes dos objetos usados ​​pelo procedimento estão presentes.

Em qual banco de dados essa verificação é realizada? Eu diria que seria tempdb, pois esse é o banco de dados no qual a definição de procedimentos armazenados temporários é persistida? Se for, essa resolução falharia em todos os casos (a menos que criássemos as tabelas em tempdb), então não pode ser isso.

Com base no que vi acima, parece ser o banco de dados que estava no escopo quando o procedimento armazenado temporário foi criado (em vez do banco de dados em que a definição do objeto é persistida - tempdb). No entanto, se esse for realmente o caso, como o SQL Server sabe qual banco de dados é esse e onde ele está armazenado? Eu verifiquei sys.sql_expression_dependencies, sys.sql_modules, sys.objectse sys.procedurese nenhum parece ter essa informação

sql-server
  • 1 respostas
  • 70 Views
Martin Hope
Коля Курик
Asked: 2024-11-15 23:01:18 +0800 CST

Como atualizar a versão do Java no Cassandra 4.0.5

  • 6

Quero atualizar a versão do Java de 8 para 11 no meu cluster Cassandra. Qual a melhor maneira de fazer isso? Posso atualizar a versão do Java nó por nó. Por exemplo:

  • Pare 1 nó
  • Atualizar Java
  • Iniciar 1 nó

E repita para outros nós esses passos, ou eu precisarei reparar nós após a atualização. Agora nós:

  • Cassandra 4.0.5
  • Java 8

Ficarei feliz com seus conselhos.

cassandra
  • 2 respostas
  • 73 Views
Martin Hope
J. Mini
Asked: 2024-11-15 22:44:15 +0800 CST

Que tipos de espera o desempenho ruim do RCSI pode causar?

  • 5

O Read Committed Snapshot Isolation (RCSI) é bem compreendido. A principal maneira pela qual ele pode causar gargalos de desempenho é se as cadeias de versão ficarem muito longas. Existe algum tipo de espera que indique esse problema específico? Ou ele é mostrado apenas por outros tipos de espera (e se sim, quais?).

sql-server
  • 2 respostas
  • 112 Views
Martin Hope
Sidharth Samant
Asked: 2024-11-15 21:47:21 +0800 CST

MySQL order by com cláusulas condicionais

  • 6

Eu tenho essas 2 mesas

CREATE TABLE `users` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `status` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=330031656 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ;


CREATE TABLE `user_meta` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` bigint NOT NULL,
  `meta_id` bigint NOT NULL,
  `value` bigint NOT NULL,
  PRIMARY KEY (`id`),
  KEY `usermeta_user_id_meta_type_meta_value` (`user_id`,`meta_id`,`value`),
  CONSTRAINT `user_meta_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16728 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ;

O requisito do cliente é que ele queira classificar com base em value, para um meta_id. Por exemplo, digamos que há 10 meta_ids, e o cliente seleciona meta_id=1111. Nesse caso, todos os usuários que se meta_id=1111associaram devem ser classificados pelo valueprimeiro, e os outros usuários que não se associaram meta_id=1111podem vir em qualquer ordem na parte inferior.

Perguntas semelhantes foram feitas e tentei formular perguntas com base nas respostas, mas elas não parecem funcionar para mim.

Esta resposta e esta também falam sobre o uso de instruções if-elseand case-when-then, mas quando tento qualquer uma delas

select u.id, um.meta_id, um.value from users u
inner join user_meta um on um.user_id = u.id
order by if(um.meta_id=1111, value, 1);

select u.id, um.meta_id, um.value from users u
inner join user_meta um on um.user_id = u.id
order by case um.meta_id
when 1111 then value else 1 end;

select u.id, um.meta_id, um.value from users u
inner join user_meta um on um.user_id = u.id
order by case 
when um.meta_id = 1111 then value else u.id end;

Eu entendo isso

+-----------+---------+------------+
| id        | meta_id | value      |
+-----------+---------+------------+
| 326480529 |     200 | 1730358000 |
| 326850494 |    1111 | 1730185200 |
| 326785127 |    1111 | 1730271600 |
| 326833934 |    1111 | 1730358000 |
| 326467136 |    1111 | 1730358000 |
| 328079379 |    1111 | 1730793600 |
+-----------+---------+------------+

Quero que todos os usuários com meta_id=1111venham no topo, mas eles não vêm no topo, nem são classificados dentro de si mesmos. Da mesma forma, para descordem, os com meta_id=1111devem vir no topo, classificados em ordem decrescente, e todos os outros podem vir na parte inferior, como este

+-----------+---------+------------+
| id        | meta_id | value      |
+-----------+---------+------------+
| 328079379 |    1111 | 1730793600 |
| 326833934 |    1111 | 1730358000 |
| 326467136 |    1111 | 1730358000 |
| 326785127 |    1111 | 1730271600 |
| 326850494 |    1111 | 1730185200 |
| 326480529 |     200 | 1730358000 |
+-----------+---------+------------+

Eu realmente apreciaria qualquer ajuda ou direção para fazer isso direito. Muito obrigado!

Também estou postando algumas INSERTinstruções para ambas as tabelas para facilitar a replicação em suas máquinas locais

INSERT INTO `users` (`id`,`status`) VALUES (328079379,'active');
INSERT INTO `users` (`id`,`status`) VALUES (326833934,'active');
INSERT INTO `users` (`id`,`status`) VALUES (326467136,'deleted');
INSERT INTO `users` (`id`,`status`) VALUES (326785127,'inactive');
INSERT INTO `users` (`id`,`status`) VALUES (326850494,'removed');
INSERT INTO `users` (`id`,`status`) VALUES (326480529,'active');


INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13155,328079379,1111,1730793600);
INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13045,326833934,1111,1730358000);
INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13009,326467136,1111,1730358000);
INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13010,326785127,1111,1730271600);
INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13051,326850494,1111,1730185200);
INSERT INTO `user_meta` (`id`,`user_id`,`meta_id`,`value`) VALUES (13008,326480529,200,1730358000);
mysql
  • 1 respostas
  • 26 Views
Martin Hope
Mark Kaz
Asked: 2024-11-14 20:46:23 +0800 CST

Como posso criar uma tabela particionada com a adição de um índice exclusivo no SQL Server?

  • 9

Estou criando uma tabela particionada chamada TestArticles, especificando vários grupos de arquivos de acordo com o ano de sua publicação (publishDate). Este código (excluindo as partes comentadas) é executado corretamente. Minha tarefa é adicionar um índice exclusivo ao campo 'hash'. Quando tento fazer isso no código de criação da tabela, recebo o seguinte erro:

'A coluna 'publishDate' é uma coluna de particionamento do índice 'UQ_Articles_hash. Colunas de particionamento de um índice exclusivo devem ser um subconjunto da chave do índice.'

Posso criar uma chave primária composta de (id, publishDate, hash) - mas não é isso que é exigido de mim.

Existe alguma maneira de especificar o hash como um índice exclusivo para cada grupo de arquivos criado ou designá-lo como tal ao inicializar a tabela inteira?

USE Articles;
GO

ALTER DATABASE Articles
ADD FILEGROUP Articles2024;

ALTER DATABASE Articles
ADD FILEGROUP Articles2025;

ALTER DATABASE Articles
ADD FILEGROUP Articles2026;

ALTER DATABASE Articles
ADD FILEGROUP Articles2027;


CREATE PARTITION FUNCTION PF_Articles_PublishDate (DATETIME)
AS RANGE RIGHT FOR VALUES 
(
'2024-01-01', 
'2025-01-01',
'2026-01-01'
);

CREATE PARTITION SCHEME PS_Articles_PublishDate
AS PARTITION PF_Articles_PublishDate
TO 
(
Articles2024,
Articles2025,
Articles2026,
Articles2027
);

CREATE TABLE TestArticles (
    id INT NOT NULL,
    path VARCHAR(200) NULL,
    description VARCHAR(100) NOT NULL,
    publishDate DATETIME NOT NULL,
    hash BIGINT NOT NULL,
    authorId INT NOT NULL,
    CONSTRAINT PK_Articles PRIMARY KEY CLUSTERED (id, publishDate),
    CONSTRAINT FK_Articles_Authors FOREIGN KEY (authorId) REFERENCES dbo.Authors(id)
    --,CONSTRAINT UQ_Articles_hash UNIQUE NONCLUSTERED (hash)
) ON PS_Articles_PublishDate (publishDate);

Banco de dados: MS SQL Server 2022 Versão: 16.0.1000.6 Detalhes do erro: Msg 1908; Nível 16; Estado 1.

sql-server
  • 2 respostas
  • 238 Views
Martin Hope
Areeb
Asked: 2024-11-14 19:37:55 +0800 CST

Réplica não inicia

  • 4

Estou tentando configurar uma réplica primária-secundária. Isso é para fazer uma migração sem tempo de inatividade do primeiro nó para o segundo nó nos próximos dias.

O nó primário foi configurado, a configuração foi atualizada, adicionei o keyfile. Fiz o mesmo com o nó secundário.

Também inicializei a replicação, adicionei o nó secundário à replicação. Posso ver um ping e uptime, mas o nó secundário está preso em “STARTUP”.

No entanto, não há configuração de réplica no nó secundário. Além disso, ele está vomitando isso em todo o log de erros repetidamente.

Nó Secundário (Logs):

{"t":{"$date":"2024-11-14T11:35:14.018+00:00"},"s":"I",  "c":"CONNPOOL", "id":22576,   "ctx":"ReplNetwork","msg":"Connecting","attr":{"hostAndPort":"Ubuntu-2204-jammy-amd64-base:27017"}}
{"t":{"$date":"2024-11-14T11:35:14.818+00:00"},"s":"W",  "c":"SHARDING", "id":7012500, "ctx":"QueryAnalysisConfigurationsRefresher","msg":"Failed to refresh query analysis configurations, will try again at the next interval","attr":{"error":"PrimarySteppedDown: No primary exists currently"}}
{"t":{"$date":"2024-11-14T11:35:15.000+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [local.oplog.rs] not found."},"stats":{},"cmd":{"aggregate":"oplog.rs","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"local"}}}
{"t":{"$date":"2024-11-14T11:35:15.000+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [config.transactions] not found."},"stats":{},"cmd":{"aggregate":"transactions","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"config"}}}
{"t":{"$date":"2024-11-14T11:35:15.001+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [config.image_collection] not found."},"stats":{},"cmd":{"aggregate":"image_collection","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"config"}}}
{"t":{"$date":"2024-11-14T11:35:15.018+00:00"},"s":"I",  "c":"CONNPOOL", "id":22576,   "ctx":"ReplNetwork","msg":"Connecting","attr":{"hostAndPort":"Ubuntu-2204-jammy-amd64-base:27017"}}
{"t":{"$date":"2024-11-14T11:35:16.000+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [local.oplog.rs] not found."},"stats":{},"cmd":{"aggregate":"oplog.rs","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"local"}}}
{"t":{"$date":"2024-11-14T11:35:16.000+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [config.transactions] not found."},"stats":{},"cmd":{"aggregate":"transactions","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"config"}}}
{"t":{"$date":"2024-11-14T11:35:16.001+00:00"},"s":"W",  "c":"QUERY",    "id":23799,   "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [config.image_collection] not found."},"stats":{},"cmd":{"aggregate":"image_collection","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"config"}}}
{"t":{"$date":"2024-11-14T11:35:16.018+00:00"},"s":"I",  "c":"CONNPOOL", "id":22576,   "ctx":"ReplNetwork","msg":"Connecting","attr":{"hostAndPort":"Ubuntu-2204-jammy-amd64-base:27017"}}

rs.config() no primário

{
  set: 'rs0',
  date: ISODate('2024-11-14T11:36:01.498Z'),
  myState: 1,
  term: Long('3'),
  syncSourceHost: '',
  syncSourceId: -1,
  heartbeatIntervalMillis: Long('2000'),
  majorityVoteCount: 1,
  writeMajorityCount: 1,
  votingMembersCount: 1,
  writableVotingMembersCount: 1,
  optimes: {
    lastCommittedOpTime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
    lastCommittedWallTime: ISODate('2024-11-14T11:36:01.474Z'),
    readConcernMajorityOpTime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
    appliedOpTime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
    durableOpTime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
    writtenOpTime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
    lastAppliedWallTime: ISODate('2024-11-14T11:36:01.474Z'),
    lastDurableWallTime: ISODate('2024-11-14T11:36:01.474Z'),
    lastWrittenWallTime: ISODate('2024-11-14T11:36:01.474Z')
  },
  lastStableRecoveryTimestamp: Timestamp({ t: 1731584157, i: 2 }),
  electionCandidateMetrics: {
    lastElectionReason: 'electionTimeout',
    lastElectionDate: ISODate('2024-11-14T09:11:55.719Z'),
    electionTerm: Long('3'),
    lastCommittedOpTimeAtElection: { ts: Timestamp({ t: 0, i: 0 }), t: Long('-1') },
    lastSeenWrittenOpTimeAtElection: { ts: Timestamp({ t: 1731575489, i: 10 }), t: Long('2') },
    lastSeenOpTimeAtElection: { ts: Timestamp({ t: 1731575489, i: 10 }), t: Long('2') },
    numVotesNeeded: 1,
    priorityAtElection: 1,
    electionTimeoutMillis: Long('10000'),
    numCatchUpOps: Long('0'),
    newTermStartDate: ISODate('2024-11-14T09:11:55.790Z'),
    wMajorityWriteAvailabilityDate: ISODate('2024-11-14T09:11:55.803Z')
  },
  members: [
    {
      _id: 0,
      name: 'Ubuntu-2204-jammy-amd64-base:27017',
      health: 1,
      state: 1,
      stateStr: 'PRIMARY',
      uptime: 8656,
      optime: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
      optimeDate: ISODate('2024-11-14T11:36:01.000Z'),
      optimeWritten: { ts: Timestamp({ t: 1731584161, i: 5 }), t: Long('3') },
      optimeWrittenDate: ISODate('2024-11-14T11:36:01.000Z'),
      lastAppliedWallTime: ISODate('2024-11-14T11:36:01.474Z'),
      lastDurableWallTime: ISODate('2024-11-14T11:36:01.474Z'),
      lastWrittenWallTime: ISODate('2024-11-14T11:36:01.474Z'),
      syncSourceHost: '',
      syncSourceId: -1,
      infoMessage: '',
      electionTime: Timestamp({ t: 1731575515, i: 1 }),
      electionDate: ISODate('2024-11-14T09:11:55.000Z'),
      configVersion: 10,
      configTerm: 3,
      self: true,
      lastHeartbeatMessage: ''
    },
    {
      _id: 1,
      name: 'XXXXXXXXXXXXXXX:27017',
      health: 1,
      state: 0,
      stateStr: 'STARTUP',
      uptime: 1925,
      optime: { ts: Timestamp({ t: 0, i: 0 }), t: Long('-1') },
      optimeDurable: { ts: Timestamp({ t: 0, i: 0 }), t: Long('-1') },
      optimeWritten: { ts: Timestamp({ t: 0, i: 0 }), t: Long('-1') },
      optimeDate: ISODate('1970-01-01T00:00:00.000Z'),
      optimeDurableDate: ISODate('1970-01-01T00:00:00.000Z'),
      optimeWrittenDate: ISODate('1970-01-01T00:00:00.000Z'),
      lastAppliedWallTime: ISODate('1970-01-01T00:00:00.000Z'),
      lastDurableWallTime: ISODate('1970-01-01T00:00:00.000Z'),
      lastWrittenWallTime: ISODate('1970-01-01T00:00:00.000Z'),
      lastHeartbeat: ISODate('2024-11-14T11:36:00.038Z'),
      lastHeartbeatRecv: ISODate('1970-01-01T00:00:00.000Z'),
      pingMs: Long('9'),
      lastHeartbeatMessage: '',
      syncSourceHost: '',
      syncSourceId: -1,
      infoMessage: '',
      configVersion: -2,
      configTerm: -1
    }
  ],
  ok: 1,
  '$clusterTime': {
    clusterTime: Timestamp({ t: 1731584161, i: 5 }),
    signature: {
      hash: Binary.createFromBase64('XXXXXXXXXX', 0),
      keyId: Long('XXXXXXXXXXXX')
    }
  },
  operationTime: Timestamp({ t: 1731584161, i: 5 })
}

rs.config() no Secundário

MongoServerError[NotYetInitialized]: no replset config has been received  
replication
  • 1 respostas
  • 15 Views
Martin Hope
Saran
Asked: 2024-11-13 18:15:58 +0800 CST

Truncar partição e mesclá-la SQL server

  • 6

Esta postagem dá continuidade à sugestão de design de partição de tabela .

Tentei truncar a partição mais antiga e mesclá-la. Mas estou recebendo um erro "Número de partição inválido 8 especificado para a tabela 'dbo.STYTOTAL_RAW', o número da partição pode variar de 1 a 6." Parece que, depois de mesclar, o loop while está ficando inválido para o número máximo de partição.

Para testes, usei 3 dias, mas o requisito original é excluir a partição com mais de 90 dias.

Conforme @DanGuzman adicionando PF também. O script completo está disponível. no meu primeiro post. Eu também coloquei o link no topo deste post.

--Create function, copy from your script
CREATE PARTITION FUNCTION PF_myDateRange ( [datetime2](7))
AS RANGE RIGHT FOR VALUES 
(
'2024-06-01 23:59:59.9999999',
'2024-07-01 23:59:59.9999999',
'2024-08-01 23:59:59.9999999',
'2024-09-01 23:59:59.9999999',
'2024-10-01 23:59:59.9999999',
'2024-10-21 23:59:59.9999999' -- take the max day and round with 12 AM ex: 2024-10-21 00:00:00.0000000
)
GO
use DB_Partition

--Invalid partition number 8 specified for table 'dbo.STYTOTAL_RAW', partition number can range from 1 to 6.

-- We can loop through the partition number directly from the table
--TRUNCATE TABLE [STYTOTAL_RAW] WITH (PARTITIONS (4));

declare @cmd_1 nvarchar(max)
declare @cmd_2 nvarchar(max)
DECLARE @partition_no bigint
DECLARE @PartitionFunction_name nvarchar(128)
DECLARE @PartitionFunction_Upper_value datetime2(7)
DECLARE @minrow int
DECLARE @maxrow int


select  @minrow = MIN(p.partition_number), @maxrow  = MAX(p.partition_number)
    from sys.indexes i  
    join sys.partitions p ON i.object_id=p.object_id AND i.index_id=p.index_id  
    join sys.partition_schemes ps on ps.data_space_id = i.data_space_id  
    join sys.partition_functions pf on pf.function_id = ps.function_id  
    left join sys.partition_range_values rv on rv.function_id = pf.function_id AND rv.boundary_id = p.partition_number
    join sys.allocation_units au  ON au.container_id = p.hobt_id   
    join sys.filegroups fg  ON fg.data_space_id = au.data_space_id  
    where i.object_id = object_id('STYTOTAL_RAW') 
    and rv.value < DATEADD(DAY, -3, SYSDATETIME()) 
    

select @minrow,@maxrow


while (@minrow <=@maxrow)
 begin

select  @partition_no=partition_number,@PartitionFunction_name=pf.name,@PartitionFunction_Upper_value=cast(rv.value as datetime2(7))
    from sys.indexes i  
    join sys.partitions p ON i.object_id=p.object_id AND i.index_id=p.index_id  
    join sys.partition_schemes ps on ps.data_space_id = i.data_space_id  
    join sys.partition_functions pf on pf.function_id = ps.function_id  
    left join sys.partition_range_values rv on rv.function_id = pf.function_id AND rv.boundary_id = p.partition_number
    join sys.allocation_units au  ON au.container_id = p.hobt_id   
    join sys.filegroups fg  ON fg.data_space_id = au.data_space_id  
    where i.object_id = object_id('STYTOTAL_RAW') 
    and rv.value < DATEADD(DAY, -3, SYSDATETIME()) 
    and p.partition_number = @minrow



SET @cmd_1 = N'TRUNCATE TABLE dbo.STYTOTAL_RAW WITH (PARTITIONS (' + convert(NVARCHAR(128),@partition_no) + N'));'
print @cmd_1
--EXEC sys.sp_executesql @cmd_1
SET @cmd_2 = N'ALTER PARTITION FUNCTION ['+ @PartitionFunction_name+ '] () merge range ('''+convert (NVARCHAR(128), @PartitionFunction_Upper_value) +''');'


print @cmd_2
--EXEC sys.sp_executesql @cmd_2

set @minrow =@minrow +1 
end

Qualquer sugestão, por favor. Obrigado pela ajuda.

sql-server
  • 1 respostas
  • 56 Views
Martin Hope
SMich
Asked: 2024-11-13 09:55:57 +0800 CST

Migração do MySQL do plugin Keyring para o componente Keyring [MY-011084] [Servidor] Falha na migração do Keyring

  • 5

Para MySQL 8.0.40 no Rocky Linux, meu banco de dados atualmente usa o plugin keyring. Quero migrar para o componente keyring. Ele mostra

[ERRO] [MY-013106] [Servidor] Não é possível executar a migração do chaveiro: Falha ao inicializar o chaveiro de destino.

Estou trabalhando com estes recursos:

  • https://dev.mysql.com/doc/refman/8.0/en/keyring-key-migration.html
  • https://blogs.oracle.com/mysql/post/keyring-components
  • https://bugs.mysql.com/bug.php?id=108197

Vejo que alguém conseguiu desativar a criptografia , mas gostaria de evitar isso.

Criei o manifesto: /usr/sbin/mysqld.my . Ele contém:

    {
      "components": "file://component_keyring_file"
    }

Verifiquei se o arquivo do componente existe:

ls /usr/lib64/mysql/plugin/component_keyring_file.so #success

Criei o arquivo de configuração do chaveiro: **/usr/lib64/mysql/plugin/component_keyring_file.cnf**. Ele diz:

    {
      "path": "/var/lib/mysql/mysql-keyring/component_keyring_file",
      "read_only": false
    }

Criei o diretório para o arquivo do chaveiro:

    mkdir /var/lib/mysql/mysql-keyring
    chown mysql:mysql /var/lib/mysql/mysql-keyring

Depois disso, parei o mysqld e tentei executar o servidor de migração. Tentei variações:

    mysqld --user=mysql --defaults-file=/etc/my.cnf --keyring-migration-to-component  --keyring-migration-source=keyring_file.so  --keyring-migration-destination=component_keyring_file.so
    
    mysqld --user=mysql --keyring-migration-to-component  --keyring-migration-source=keyring_file.so  --keyring-migration-destination=component_keyring_file.so

Entendo que o usuário que está migrando não pode ser root, então o usuário é mysql. Além disso, o component_keyring_file não pode estar no diretório de dados. Tentei dois caminhos:

/var/lib/mysql/mysql-keyring # dir for mysql files

/var/lib/mysql-keyring

Atualizei component_keyring_file.cnf e certifiquei-me de que o usuário mysql era o proprietário do diretório.

mysql
  • 1 respostas
  • 13 Views
Martin Hope
Mister_Moto
Asked: 2024-11-13 05:25:56 +0800 CST

Dependência rígida do SQL Server 2019 em drivers ODBC

  • 5

Ao instalar o SQL Server 2019, os drivers ODBC também são instalados ao mesmo tempo em que o MSSQL parece ter uma dependência rígida. O MSSQL pode ser reconfigurado para usar versões mais recentes dos drivers ODBC e as versões mais antigas removidas? As versões mais antigas dos drivers ODBC estão sendo sinalizadas pelo nosso scanner de gerenciamento de vulnerabilidades de terceiros e não parece haver uma maneira de remediar essas descobertas de forma limpa.

Detalhes até o momento em que este texto foi escrito:

  • O servidor com o qual estou trabalhando está executando o SQL Server 2019 developer edition
  • Ele está sendo executado em uma VM do Windows Server 2019 Standard Edition
  • Este servidor SQL está na versão 15.0.4405.4 (CU29)
  • Antes de instalar o CU29, este servidor estava no CU27
  • A versão ODBC instalada é 17.10.6.1
  • Todos os componentes são x64, não x86

Solução de problemas/Análise:

  • A atualização de CU27 para CU29 não atualizou a versão do driver ODBC
  • Posso instalar manualmente uma versão mais recente do driver ODBC (18.4.1.1) e ele coexistirá pacificamente com 17.10.6.1, mas não limpará a vulnerabilidade
  • Se eu remover 17.10.6.1 para limpar a vulnerabilidade, o SQL Server Agent falhará ao iniciar (Visualizador de eventos: o serviço não respondeu à solicitação de início ou controle em tempo hábil)
  • Reinstalar o ODBC 17.10.6.1 corrige o problema e permite que o agente seja iniciado - mas a vulnerabilidade reaparece
  • Reparar o SQL Server após uma instalação do driver v18.x apenas reinstala o driver ODBC para uma versão principal anterior (17.xxx), que também não é compatível e ainda aciona descobertas em nossas varreduras de vulnerabilidade.
  • Não parece haver versões mais recentes do ODBC 17 ainda, pois a MS não parece estar fazendo desenvolvimento paralelo e lançando versões mais recentes do 17.x e 18.x. Eles parecem nos empurrar para a v18, que não funciona bem com o SQL 2019 Agent.

Lições aprendidas:

  • Parece que o MSSQL 2019 tem uma dependência forte na versão 17 do driver ODBC para SQL 2019
  • As CUs não parecem atualizar esses drivers - ainda (se é que o fazem)
  • Não parece haver uma maneira de reconfigurar/ajustar o MSSQL 2019 para usar uma versão principal mais recente (por exemplo, 18.x) do driver ODBC por meio do SSMS/UI
  • Ainda não investiguei as edições do registro do sistema Windows
  • Independentemente de quais componentes eu instalo no momento da criação da instância, esses drivers são instalados, então não parece que minimizar minha área de superfície ajuda (comparei esta instância com outra instância de 2019 com uma instalação mínima realizada - ambas tinham os mesmos drivers ODBC).

Questões:

  • Alguém aqui já passou pelo(s) mesmo(s) problema(s) e há medidas que eu possa tomar para que o MSSQL veja/use drivers ODBC mais recentes?
  • As atualizações do driver ODBC serão enviadas com as CUs ou preciso atualizá-las manualmente por meio de downloads oficiais da MS?

Qualquer conselho/orientação será apreciado. Obrigado.

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