Microsoft jakelee Microsoft SQL Server 2008 R2- tai Microsoft SQL Server 2008 -korjaukset yhtenä ladattavana tiedostona. Koska korjaukset ovat kumulatiivisia, jokainen uusi versio sisältää kaikki edelliseen SQL Server 2008 R2:n tai SQL Server 2008:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset.
Ongelman ilmenemistapa
Microsoft SQL Server 2008 R2 tai Microsoft SQL Server 2008 voi merkitä tietokannan datatiedostot hajaiksi, vaikka fyysiset tiedostot olisi merkitty tiedostojärjestelmässä ei-hajaiksi.
Muistiinpanot
Voit selvittää, onko tietokannan datatiedostot merkitty SQL Server metatiedoissa harvaksi suorittamalla seuraavan lausekkeen ja tarkistamalla sitten, onko Is_Sparse sarakkeen arvo muu kuin nolla tulosjoukossa:
Yleismerkki
<tietokannan nimi>
Valitse is_sparse physical_name sys.database_filesVoit tarkistaa fyysisten tiedostojen tilan tiedostojärjestelmässä suorittamalla seuraavan Windows-komennon, kun tietokanta on offline-tilassa:
fsutil sparse queryflag<files path>\<database file>Jos saat seuraavan tulosteen, tiedosto merkitään tiedostojärjestelmässä hajautettuna:
Tämä tiedosto on määritetty hajautettuna.
Sekä SQL Server -metatiedot että tiedostojärjestelmän metatiedot on merkittävä hajautetuiksi vain silloin, kun tietokanta datatiedostot ovat osa tietokannan tilannevedosta.
Syy
Tämä ongelma ilmenee, koska tiedostojärjestelmä merkitsee virheellisesti koko tietokannan datatiedoston hajautettavaksi sen jälkeen, kun alun perin hajautettavaksi merkitty vaihtoehtoinen tietovirta on poistettu. Vaihtoehtoinen tietovirta poistetaan, kun DBCC CHECKDB -komento päättyy.
Muistiinpanot
Sisäisen tietokannan tilannevedoksen käyttö on NTFS-ominaisuus, jota DBCC CHECKDB -komentoperheen komennot käyttävät. Kun suoritat DBCC-komentoja, tietokantamoduuli luo tietokannan tilannevedoksen vaihtoehtoisen virran ja vie sen tapahtuman johdonmukaiseen tilaan. DBCC-komento tarkistaa vaihtoehtoisen tietovirran. Vaihtoehtoinen tietovirta poistetaan, kun DBCC-komento on valmis.
Tämän ongelman aiheuttava rakenne esiteltiin Windows Server 2003:ssa. Siinä käytetään Windowsin asematason varmuuskopioita tietokantatiedostojen varmuuskopiointiin. SQL Server -metatietoihin tallennetaan kopio järjestelmätaulukoiden datatiedostojen hajautuksista. SQL Server ei kuitenkaan päivitä Is_Sparse tietoja sen jälkeen, kun hajautettu määrite on poistettu tiedostojärjestelmästä.
Tämä ongelma ilmenee myös, kun tietokanta on siirretty Windows Server 2003:sta uudempaan Windows-käyttöjärjestelmään.
Saatat esimerkiksi siirtää tietokantoja Windows Server 2003:sta Windows Server 2008:aan tai Windows Server 2008 R2:een.
Ratkaisu
Voit ratkaista tämän ongelman SQL Server 2008 R2:ssa tai SQL Server 2008:ssa asentamalla seuraavan hotfix-korjauksen ja siirtämällä tietokannan verkkoon. Kun tietokanta siirretään online-tilaan, SQL Server tarkistaa, onko fyysisen tietokantatiedoston metatiedot merkitty tiedostojärjestelmässä hajautetuiksi. Jos se on merkitty matalaksi, SQL Server -metatiedot päivitetään.
Huomautus: Jos haluat poistaa hajautetut määritteet tiedostojärjestelmästä, kopioi tietokantatiedostot ja käytä sitten tiedostojen uutta kopiota tietokannassa. Lisätietoja tästä prosessista on seuraavassa MSDN-sivustossa:
Hajautettujen määritteiden poistaminen tiedostojärjestelmästä
Kumulatiiviset päivitystiedot
SQL Server 2008 Service Pack 3
Tämän ongelman korjaus julkaistiin ensin SQL Server 2008 Service Pack 3:n kumulatiivisessa päivityspaketissa 1. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2617146 Kumulatiivinen päivityspaketti 1 SQL Server 2008 Service Pack 3:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2629969 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 3:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 3 -asennukseen on asennettava SQL Server 2008 Service Pack 3 -korjaus. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.
SQL Server 2008 Service Pack 1
Tämän ongelman korjaus julkaistiin ensin SQL Server 2008 Service Pack 1:n kumulatiivisessa päivityspaketissa 16. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2582282 Kumulatiivinen päivityspaketti 16 SQL Server 2008 Service Pack 1:lleHuomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
970365 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 1:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 1:n asennukseen on asennettava SQL Server 2008 Service Pack 1 -korjaus. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.
SQL Server 2008 Service Pack 2
Tämän ongelman korjaus julkaistiin alun perin SQL Server 2008 Service Pack 2:n kumulatiivisessa päivityspaketissa 6. Saat lisätietoja tästä kumulatiivisesta päivityspaketista napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2582285 SQL Server 2008 Service Pack 2:n kumulatiivinen päivityspaketti 6Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki SQL Server 2008:n aiempaan korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Microsoft suosittelee, että otat käyttöön uusimman kyseisen hotfix-korjauksen sisältävän korjausversion. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2402659 SQL Server 2008 -koontiversiot, jotka on julkaistu SQL Server 2008 Service Pack 2:n julkaisemisen jälkeen Microsoft SQL Server 2008:n hotfix-korjaukset on tarkoitettu tietyille SQL Server Service Pack -paketeille. SQL Server 2008 Service Pack 2:n asennuksessa on käytettävä SQL Server 2008 Service Pack 2:n hotfix-korjausta. Oletusarvoisesti kaikki SQL Server Service Pack -pakettiin sisältyvät hotfix-korjaukset seuraavaan SQL Server Service Packiin.
SQL Server 2008 R2 CU9
Tämän ongelman korjaus julkaistiin alun perin SQL Server 2008 R2:n kumulatiivisessa päivityspaketissa 9. Saat lisätietoja tämän SQL Server 2008 R2:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2567713 Kumulatiivinen päivityspaketti 9 SQL Server 2008 R2:lle Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2008 R2:n korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
981356 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2:n jälkeen
SQL Server 2008 R2 Service Pack 1 CU2
Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityspaketissa 2. Saat lisätietoja tämän SQL Server 2008 R2 SP1:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2567714 SQL Server 2008 R2 Service Pack 1:n kumulatiivinen päivityspaketti 2Huomautus Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen SQL Server 2008 R2 SP1:n korjausversioon. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2567616 SQL Server 2008 R2 -koontiversiot, jotka on julkaistu SQL Server 2008 R2 Service Pack 1:n jälkeen
Hotfix-korjauksen tiedot
Tuettu hotfix-korjaus on saatavana Microsoftilta. Tämä hotfix-korjaus on kuitenkin tarkoitettu vain tässä artikkelissa kuvatun ongelman korjaamiseen. Käytä tätä hotfix-korjausta vain järjestelmissä, joissa esiintyy tässä artikkelissa kuvattu ongelma. Tämä Hotfix-korjaus vaatii ehkä lisätestejä. Jos ongelma ei vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa tämän hotfix-korjauksen sisältävää ohjelmistopäivitystä.
Jos hotfix-korjaus on ladattavissa, Knowledge Base -artikkelin yläosassa on "Ladattavissa hotfix-korjauksia" -osio. Jos tätä osaa ei näy, ota yhteyttä Microsoftin asiakaspalveluun ja tukeen hotfix-korjauksen hankkimista varten.
Huomautus: Jos muita ongelmia ilmenee tai jos vianmääritystä tarvitaan, sinun on ehkä luotava erillinen palvelupyyntö. Tavalliset tukikustannukset veloitetaan lisäkysymyksistä ja ongelmista, jotka eivät liity tähän nimenomaiseen hotfix-korjaukseen. Täydellinen luettelo Microsoftin asiakaspalvelun ja tuen puhelinnumeroista tai erillisen huoltopyynnön luominen on seuraavassa Microsoftin verkkosivustossa:
/contactus/?ws=support Huomautus Hotfix-korjauksen lataus saatavilla -lomakkeessa näkyvät kielet, joilla hotfix-korjaus on saatavilla. Jos kieltä ei näy, sille ei ole saatavilla hotfix-korjausta.
Edellytykset
Jotta voit ottaa tämän Hotfix-korjauksen käyttöön, SQL Server 2008 R2:n on oltava asennettuna.
Uudelleenkäynnistystarve
Tietokonetta ei tarvitse käynnistää uudelleen tämän hotfix-korjauksen käyttöönoton jälkeen.
Hotfix-korjauksen korvaustiedot
Tämä hotfix-korjaus ei korvaa aiemmin julkaistua hotfix-korjausta.
Tiedostojen tiedot
Tämän hotfix-korjauksen yleisellä versiolla on seuraavassa taulukossa luetellut tiedostomääritteet (tai uudemmat tiedostomääritteet). Näiden tiedostojen päivämäärät ja kellonajat on lueteltu UTC-aikana (Matched Universal Time). Kun tarkastelet tiedoston tietoja, ne muunnetaan paikalliseksi ajaksi. Voit selvittää UTC-ajan ja paikallisen ajan välisen eron Ohjauspaneelin Päivämäärä ja aika -osion Aikavyöhyke-välilehdessä.
| Tiedoston nimi | Tiedostoversio | Tiedoston koko | Päivämäärä | Aika | Käyttöympäristö |
|---|---|---|---|---|---|
| Sqlservr.exe | 2009.100.1800.0 | 121,829,216 | 08. heinäkuuta 2011 | 11:55 | IA-64 |
| Sqlservr.exe | 2009.100.1800.0 | 62,027,616 | 08. heinäkuuta 2011 | 12:28 | x64 |
| Sqlservr.exe | 2009.100.1800.0 | 42,911,584 | 08. heinäkuuta 2011 | 13:22 | x86 |
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Lisätietoja
Seuraavassa taulukossa on lisätietoja tuotteista tai työkaluista, jotka tarkistavat tämän ehdon automaattisesti käyttämässäsi SQL Server -esiintymässä ja SQL Server -tuoteversioissa, joihin sääntöä verrataan.
| Rule Software | Säännön otsikko | Säännön kuvaus | Tuoteversiot, joihin sääntöä verrataan |
|---|---|---|---|
| System Center Advisor | SQL Server -tietokantatiedostot, jotka on merkitty hajaiksi tiedostoiksi | System Center Advisor tarkistaa, sisältääkö tämä SQL Server -esiintymä harvaksi merkittyjä tietokantatiedostoja. Vain tietokannan tilannevedostiedostot tulee merkitä tiedostoiksi. Jos normaalit tietokantatiedostot on merkitty harvaksi, Advisor luo ilmoituksen. Advisor käyttää sys.master_files luettelonäkymän is_sparse saraketta. Tarkista neuvojailmoituksen Kerättävät-osion tiedot ja tarkista, onko ongelma sisältävien tiedostojen hajautettu tila käyttöjärjestelmätasolla. Kun olet tyhjentänyt käyttöjärjestelmän hajautetun tilan, voit päivittää SQL Server -metatiedot ja synkronoida ne käyttöjärjestelmän asetusten kanssa tässä artikkelissa kuvatulla hotfix-korjauksella. |
SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 |
Viitteet
Lisätietoja DBCC-komennoista on seuraavassa MSDN-sivustossa:
Yleistä tietoa DBCC-komennoista Lisätietoja Fsutil-lausekkeesta on seuraavassa MSDN-sivustossa:
Yleistä tietoa Fsutil-lausekkeesta Saat lisätietoja tästä Windows Server 2003 -ongelmasta napsauttamalla seuraavia artikkelien numeroita, jolloin pääset lukemaan artikkelit Microsoft Knowledge Base -tietokanta -tietokannassa:
973886 Suuria tiedostoja ei voi palauttaa NTFS-tiedostojärjestelmässä, kun kaikki hajautetut määritteitä sisältävät tietovirrat on poistettu Windows XP SP2:n 64-bittisessä versiossa tai Windows Server 2003 SP2:ssa
932021 Virhesanoma suoritettaessa "chkdsk"-komentoa yhdessä /v-valitsimen kanssa Windows Server 2003 -tietokoneessa: "Korjataan hajautetun tiedostotietueen segmenttinumeroa<>"