A rövid válasz: igen. A hosszabb alább:
Ma egy igen érdekes keresési kulcsszóval érkeztek az oldalamara Arra keresett valaki rá, hogy kell e a master adatbázison futtatni a DBCC CHECKDB parancsot. Gondolkodjunk el ezen egy picit: vajon kell e rendszer adatbázisokat ellenőrizni? Vajon kell e mentést csinálni róluk? Vajon különböznek e ezek az adatbázisok, bármely más adatbázistól? A válaszok:
- Kell e ellenőrizni/menteni: igen, ugyan úgy, mint bármely más adatbázist. A master adatbázisban nagyon sok instance szintű információ van, ami miatt az ellenőrzés és a mentés kötelező (ilyen adat pl. a login infó, kivéve Partially Contained Database). Az msdb adatbázisban vannak az Agent, Database Mail és egyéb szolgáltatások adatai, beállításai. Azt gondolom ezen sem árt a DBCC CHECKDB és a mentés. A model adatbázis az adatbázisok “őse”. Ebből készül az összes user adatbázis. Ezt sem árt ellenőrizni, főleg akkor, amikor saját kód, adat is van benne. A tempdb a kakukktojás: ezt az adatbázist nem szoktam menteni. Az ok igen egyszerű: minden service induláskor ez az adatbázis újra és újra létrejön.
- Különböznek e: igen is meg nem is. Abban mindenképpen különböznek, hogy pl. a master adatbázis helyreállítása nagyobb szakértelmet igényel, a tempdb pedig minden service induláskor újra létrejön, igen. Abban nem, hogy ugyan úgy lehet fizikai vagy logikai inkonzisztencia, változnak az adatok bennük és az ügyfél által igényelt RPO/RTO-hoz ezek az adatbázisok igencsak megütik a kritikus szintet.
Látható, hogy a válasz nem igazán egzakt, de azért remélem segít azoknak akik arra keresik a választ, hogy kell e DBCC CHECKDB a master, msdb adatbázisokon avagy sem. Az megint megér egy külön cikket, hogy mikor és hogyan futtassuk ezt a parancsot.