- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Solução de problemas de erros de inicialização
Antes de atualizar
Se você usar o Active Directory (AD) e estiver planejando atualizar para a versão 2023.4.0, é altamente recomendável que você pule diretamente para a versão 2023.4.3, pois 2023.4.0, 2023.4.1 e 2023.4.2 são impactados por um problema do AD.
Please make sure to perform these steps before you upgrade to 2023.4+. They help ensure that, once the upgrade is done, you can get started in no time, with zero issues.
-
Faça backup de seu banco de dados para remover eliminar riscos de perda de dados.
-
Execute o script de manutenção do banco de dados de pré-atualização abaixo.
Este script remove todas as concessões expiradas ou consumidas do banco de dados. Isso ajuda a acelerar a recriação do índice e da chave primária[identity].[PersistedGrants]
e, como tal, a migração do banco de dados.DECLARE @Now DATETIME2 = GETUTCDATE() DECLARE @ConsumedGrantsGracePeriod DATETIME2 = DATEADD(hour, -2, @Now) DECLARE @ConsumedDeleted int = 1 DECLARE @ExpiredDeleted int = 1 DECLARE @BatchSize int = 500 DECLARE @ConsumedBatchesDeleted int = 0 DECLARE @ExpiredBatchesDeleted int = 0 SET LOCK_TIMEOUT 0 SET DEADLOCK_PRIORITY LOW WHILE (@ConsumedDeleted=1 OR @ExpiredDeleted=1) BEGIN IF @ConsumedDeleted=1 BEGIN BEGIN TRY DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedGrantsGracePeriod AND [Type] <> 'reference_token' IF @@ROWCOUNT = 0 SET @ConsumedDeleted=0 ELSE SET @ConsumedBatchesDeleted = @ConsumedBatchesDeleted + 1 END TRY BEGIN CATCH PRINT 'Failed to delete consumed grants' END CATCH END IF @ExpiredDeleted=1 BEGIN BEGIN TRY DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [Expiration] < @Now AND [Type] <> 'reference_token' IF @@ROWCOUNT = 0 SET @ExpiredDeleted=0 ELSE SET @ExpiredBatchesDeleted = @ExpiredBatchesDeleted + 1 END TRY BEGIN CATCH PRINT 'Failed to delete expired grants' END CATCH END PRINT 'Consumed batches deleted: ' + CONVERT(nvarchar(32), @ConsumedBatchesDeleted) PRINT 'Expired batches deleted: ' + CONVERT(nvarchar(32), @ExpiredBatchesDeleted) -- Wait for 10 seconds between deletes IF (@ExpiredDeleted=1 OR @ConsumedDeleted=1) WAITFOR DELAY '00:00:05.000' END
DECLARE @Now DATETIME2 = GETUTCDATE() DECLARE @ConsumedGrantsGracePeriod DATETIME2 = DATEADD(hour, -2, @Now) DECLARE @ConsumedDeleted int = 1 DECLARE @ExpiredDeleted int = 1 DECLARE @BatchSize int = 500 DECLARE @ConsumedBatchesDeleted int = 0 DECLARE @ExpiredBatchesDeleted int = 0 SET LOCK_TIMEOUT 0 SET DEADLOCK_PRIORITY LOW WHILE (@ConsumedDeleted=1 OR @ExpiredDeleted=1) BEGIN IF @ConsumedDeleted=1 BEGIN BEGIN TRY DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [ConsumedTime] IS NOT NULL AND [ConsumedTime] < @ConsumedGrantsGracePeriod AND [Type] <> 'reference_token' IF @@ROWCOUNT = 0 SET @ConsumedDeleted=0 ELSE SET @ConsumedBatchesDeleted = @ConsumedBatchesDeleted + 1 END TRY BEGIN CATCH PRINT 'Failed to delete consumed grants' END CATCH END IF @ExpiredDeleted=1 BEGIN BEGIN TRY DELETE TOP(@BatchSize) FROM [identity].[PersistedGrants] WHERE [Expiration] < @Now AND [Type] <> 'reference_token' IF @@ROWCOUNT = 0 SET @ExpiredDeleted=0 ELSE SET @ExpiredBatchesDeleted = @ExpiredBatchesDeleted + 1 END TRY BEGIN CATCH PRINT 'Failed to delete expired grants' END CATCH END PRINT 'Consumed batches deleted: ' + CONVERT(nvarchar(32), @ConsumedBatchesDeleted) PRINT 'Expired batches deleted: ' + CONVERT(nvarchar(32), @ExpiredBatchesDeleted) -- Wait for 10 seconds between deletes IF (@ExpiredDeleted=1 OR @ConsumedDeleted=1) WAITFOR DELAY '00:00:05.000' END -
Migre suas pastas clássicas para pastas modernas, para garantir execuções ininterruptas.
Estas são as mudanças que você pode esperar neste ponto no processo de remoção de pastas clássicas.