Hotfix and Security Content Publishing: 113140
Sintomas
Suponha que você habilite o controle de alterações para uma ou mais tabelas no SQL Server 2017 e defina AUTO_CLEANUP = ativado. Você percebe que nenhuma linha é excluída ou limpada em tabelas do lado ou na tabela do sistema sys. syscommittab mesmo após o período de retenção. Além disso, você observa os seguintes sintomas:
-
Se você se conectar usando uma conexão de administrador dedicada e consulta a limpeza inválida e a versão de limpeza otimizada, elas serão negativas:
Selecione * de sys. sysobjvalues onde valclass = 7 e objID = 1003--inválido
Selecione * de sys. sysobjvalues onde valclass = 7 e objID = 1004--Fortalecited
-
Se você executar o SP a seguir para limpar o sys. syscommittab manualmente, ele não fará a limpeza e retornará a versão de limpeza de proteção avançada como negativo:
sp_flush_commit_table_on_demand exec
Saída
O valor retornado por change_tracking_hardened_cleanup_version () é-nnnnnn.
-
Se você coletar sessão de evento estendido com change_tracking_cleanup de evento durante a limpeza automática do controle de alterações, você notará que o CleanupStatusChange está definido como 32 (erro) e o trabalho de limpeza existe:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
Esse problema foi corrigido na seguinte atualização cumulativa do SQL Server:
Sobre atualizações cumulativas do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Observação Para resolver esse problema, você precisa habilitar o sinalizador de rastreamento 8290 e permitir que o processo de limpeza automática seja executado. Depois que esse sinalizador de rastreamento estiver habilitado, o processo de limpeza de controle de alterações redefinirá a versão de limpeza inválida para limpar a versão com base no período de retenção. Esse sinalizador de rastreamento pode ser habilitado no nível da sessão ou no nível de inicialização. Para entender a causa raiz do motivo pelo qual a versão de limpeza se tornou negativa, é recomendável que você chame o suporte e forneça mais detalhes.
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.
Bug Information:
-
Bug #: 13312017 (sqlbuvsts01)
-
Bug #: 113039 (Content Idea)
KE: v-sidong
Author:
Writer: v-sidong
Tech reviewer: tzakir; akbarf; lzhang
Editor: v-jizho