Preskočiť na obsah
Skript

DBCC CHECKDB – šablóna s dry-run

Bezpečná šablóna na DBCC CHECKDB jednej databázy: najprv len vypíše príkaz, skutočne ho spustí až po prepnutí @Execute = 1.

dbcc-checkdb-sablona-s-dry-run.sql 14 riadkov · T-SQL
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | DBCC CHECKDB – šablóna s dry-run
   Účel:  Bezpečná šablóna na DBCC CHECKDB jednej databázy: najprv len vypíše príkaz, skutočne ho spustí až po prepnutí @Execute = 1.
   Režim: DRY RUN (predvolene), po @Execute = 1 náročné na I/O | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;

DECLARE @DatabaseName sysname = N'{{DatabaseName}}';
DECLARE @Execute bit = 0; -- zmena na 1 = SKUTOČNÉ spustenie CHECKDB
IF DB_ID(@DatabaseName) IS NULL
    THROW 51002, 'Neexistujuca databaza; uprav @DatabaseName.', 1;
DECLARE @sql nvarchar(max) = N'DBCC CHECKDB (' + QUOTENAME(@DatabaseName) + N') WITH NO_INFOMSGS, ALL_ERRORMSGS;';
SELECT @sql AS planned_command, @Execute AS will_execute;
IF @Execute = 1 EXEC sys.sp_executesql @sql;
## Kedy použiť

Po incidente úložiska, po chybách 823 / 824 alebo podľa plánu údržby – vždy s ohľadom na kapacitu a čas.

## Ako čítať výsledok

S `@Execute = 0` sa len zobrazí pripravený príkaz. Po spustení hľadaj chyby v záložke **Messages**; bez chýb nevypíše nič (NO_INFOMSGS).

> [!WARNING]
> CHECKDB spotrebuje veľa I/O, CPU a tempdb – na veľkej produkčnej databáze ho spúšťaj mimo špičky alebo na obnovenej kópii. `REPAIR_ALLOW_DATA_LOSS` tu zámerne nie je – pred akoukoľvek opravou maj overenú zálohu.

**Oprávnenia:** Člen `sysadmin` alebo `db_owner` v cieľovej databáze.  
**Režim:** DRY RUN (predvolene), po @Execute = 1 náročné na I/O · **Verzia:** SQL Server 2016 – 2022

## Súvisiace recepty

- [Suspect pages](script.php?id=32&s=suspect-pages-evidovane-poskodene-stranky)
- [Priebeh BACKUP / RESTORE / DBCC](script.php?id=21&s=priebeh-backup-restore-dbcc)