KB4538365 – KORJAUS: Muutosten jäljityksen puhdistus ei toimi, kun virheellinen puhdistus ja kovennettu puhdistusversio ovat negatiivisia SQL Server 2017:ssä ja 2019:ssä

Käytetään kohteeseen
SQL Server 2017 on Windows SQL Server 2019 on Windows

Ongelman ilmenemistapa

Oletetaan, että otat muutosten jäljityksen käyttöön vähintään yhdelle taulukolle Microsoft SQL Server 2017:ssä tai 2019:ssä ja olet määrittänyt AUTO_CLEANUP = KÄYTÖSSÄ. Huomaat, että rivejä ei poisteta tai puhdisteta sivutaulukoista tai sys.syscommittab-järjestelmätaulukosta edes säilytysjakson jälkeen. Lisäksi havaitset seuraavia oireita:

  1. Jos muodostat yhteyden käyttämällä erillistä Hallinta-yhteyttä ja teet kyselyn virheellisestä siivous- ja karaistusta siivousversiosta, löydät ne negatiiviseksi:
    select * from sys.sysobjvalues, where valclass = 7 and objid = 1003 -- invalid
    select * from sys.sysobjvalues where valclass = 7 and objid = 1004 -- Hardened

  2. Jos suoritat seuraavan SP:n sys.syscommittabin manuaaliseksi puhdistamiseksi, se ei tee siivousta ja palauttaa kovennetun puhdistuksen version negatiiviseksi:
    Johtaja sp_flush_commit_table_on_demand
    Esitystapa
    change_tracking_hardened_cleanup_version()-funktion palauttama arvo on -nnnnnn.

  3. Jos keräät laajennetun tapahtumaistunnon, jossa on tapahtuma - change_tracking_cleanup muutosten jäljityksen automaattisen puhdistuksen aikana, huomaat, että CleanupStatusChange-asetuksena on 32 (virhe) ja puhdistustyö on olemassa:

    Capture.PNG

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Ratkaisu

Tämä ongelma on korjattu seuraavissa SQL Server kumulatiivisissa päivityksissä:

Tietoja SQL Server:n kumulatiivisista päivityksistä:

Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:

Huomautus Voit ratkaista tämän ongelman ottamalla jäljitysmerkinnän 8290 käyttöön ja antamalla automaattisen puhdistusprosessin toimia. Kun tämä seurantamerkintä on otettu käyttöön, muutosten seurannan automaattinen siivous palauttaa virheellisen siivousversion puhdistusversioksi säilytysajan perusteella. Tämä jäljitysmerkintä voidaan ottaa käyttöön istuntotasolla tai käynnistystasolla. Jotta ymmärtäisit perimmäisen syyn siihen, miksi puhdistusversio muuttui negatiiviseksi, on suositeltavaa soittaa tukeen ja antaa lisätietoja.

Viitteet

Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.