DBCC CHECKDB ei ole viime aikoina suoritettu

Kun SQL Server kirjoittaa tietoja asemille, se olettaa, että kaikki on kunnossa, kunnes se joutuu lukemaan tiedot takaisin.

Epäonnekseen tallennustilan vahingoittuessa tallennustila ei ole niin kiltti, että se hälyttäisi SQL Serveriä. Ja joskus SQL Serverin tiedetään jopa korruptoivan itsensä.

Meidän on tarkistettava säännöllisesti, että levyllä olevat tiedot ovat edelleen järkeviä, ja tässä kohtaa DBCC CHECKDB tulee kuvaan. Se tarkistaa sekä allokaatiovirheet että konsistenssivirheet. Lisäksi, jos ongelmia esiintyy, virheilmoitukset palauttavat tietoja siitä, missä virheitä esiintyy, virheen vakavuusaste sekä ehdotettu korjausvaihtoehto.

On tärkeää ajaa CHECKDB säännöllisesti virheiden löytämiseksi, jos niitä esiintyy, koska jos korruptiota esiintyy, se on korjattava ennen kuin viimeisetkin hyvät varmuuskopiot katoavat.

Vian löytämiseksi tarkistamme jokaisesta tietokannasta, että DBCC CHECKDB on suorittanut onnistuneen tarkistuksen viimeisten kahden viikon aikana.

Etkö usko sitä?

”Mutta minä suoritan CHECKDB:n koko ajan”, saatat sanoa – no, otetaanpa selvää:

Transact-SQL

1
DBCC DBINFO(’StackOverflow’) WITH TABLERESULTS

Tässä se. Mutta tuloste on painajainen. Siinä on noin 80 riviä tavaraa, josta et luultavasti koskaan välitä. Noin rivillä 50 on se, mitä etsit.

Hei, olen hölynpölyä.

Ja todennäköisesti näet tämän! Päivämäärä 1900-01-01 jne. Se tarkoittaa ei koskaan. Jos suoritat DBCC CHECKDB:n tietokantaan, ehkä näin:

Transact-SQL

1
DBCC CHECKDB(’StackOverflow’) WITH NO_INFOMSGS, ALL_ERRORMSGS

Ja suorita sitten uudelleen komento DBCC DBINFO, päivämäärämme on nyt päivitetty nykyiseksi:

KATSO, KUINKA PALJON HIENOA MEILLÄ ON

Jos päiväys ei päivity, se tarkoittaa yhtä kahdesta asiasta:

Ongelman korjaaminen

Päättele, haluatko käyttää sisäänrakennettuja ylläpitosuunnitelmia vai ilmaista työkalua, kuten Ola Hallengrenin ilmaisia CHECKDB-skriptejä. Pari näkökohtaa:

  • Huoltosuunnitelmissa on graafinen käyttöliittymä, jos et osaa T-SQL:ää.
  • Ola Hallengrenin ilmaiset skriptit huolehtivat hienosäädetyistä asetuksista, kuten data_purity-tarkistusten automaattisesta suorittamisesta (mikä on hyvä asia).

How to Set Up Regular Maintenance to Check for Corruption

Vaihtoehto 1: Käytä ylläpitosuunnitelmaa DBCC CHECKDB:n suorittamiseen

Jos käytät ylläpitosuunnitelmia, voit muokata ylläpitosuunnitelmia SQL Server Management Studiossa kohdassa Management, Maintenance Plans. Palvelimellasi voi olla useita ylläpitosuunnitelmia, jotka suorittavat CHECKDB:n erityyppisille tietokannoille, esimerkiksi yksi järjestelmätietokannoille ja yksi käyttäjätietokannoille.

Taivuta SSMS:n Management-solmua, napsauta hiiren kakkospainikkeella Maintenance Plans (Ylläpitosuunnitelmat) -kohtaa ja valitse New Plan (Uusi suunnitelma).

Työkalupakki-ikkunasta, joka joskus jää piiloon vasemmalle, vedä Check Database Integrity Task (Tarkista tietokannan eheys -tehtävä) Maintenance Plan (Ylläpitosuunnitelma) -välilehdelle.

Kun kaksoisnapsautat Check Database Integrity Task (Tarkista tietokannan eheys -tehtävä) -ruutua Maintenance Plan (Ylläpitosuunnitelma) -välilehdellä, voit valita, mitkä tietokannat haluat tarkastettavan prosessin aikana.

Sen jälkeen jäljellä on enää sen aikatauluttaminen, joka on aivan kuten agenttitehtävän aikatauluttaminen.

Kun olet tallentanut ja sulkenut ylläpitosuunnitelman, varmista, että etsit siihen liittyvän tehtävän SQL Server Agentissa ja määritä Ilmoitusominaisuudet, jotta operaattori saa tiedon, jos tehtävä epäonnistuu.

Vaihtoehto 2: Määritä SQL Agent -työt suorittamaan DBCC CHECKDB käyttäen Ola Hallengrenin ilmaisia skriptejä

Jos otat eheyden tarkistukset käyttöön ensimmäistä kertaa, harkitse Ola Hallengrenin ilmaisten ylläpitoskriptien käyttöä. Ne eivät ole aivan yhtä helppoja kuin ylläpitosuunnitelmat, mutta ne ovat paljon joustavampia. Niissä on myös mahdollisuus jakaa DBCC-operaatiot pienempiin osiin suuria tietokantoja varten. Hyvin suurissa tietokannoissa CHECKDB voi viedä huomattavan paljon aikaa ja resursseja – WITH PHYSICAL_ONLY -vaihtoehto on nopeampi, mutta jättää loogiset tarkistukset pois.

Kun agenttitehtävät on otettu käyttöön, voit ajoittaa ne ajettaviksi yhtä yksinkertaisesti kuin ylläpitosuunnitelmat, tai voit hienosäätää niitä täällä dokumentoiduilla lisäasetuksilla.

Vastaa

Sähköpostiosoitettasi ei julkaista.