parent nodes: RepararFallosCheckearIntegridad | SQLapuntes

RepararFallosCheckearIntegridad

Check integrity, repair...


Sept/2009

Si está marcada la opción de intentar corregir errores menores la base de datos deberá estar en single user mode para poder hacer las reparaciones. Si no dará un error en los logs.

Para corregirlo hay que insertar dos jobs dentro del test integrity job

El primero, se hará antes del test de integridad y pondrá las bases de datos en modo single user:
ALTER DATABASE SIGC_COL     SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE SIGC_GRANADA SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE SIGC_SEVILLA SET SINGLE_USER WITH ROLLBACK IMMEDIATE
el otro las dejará en la configuración multiusuario, original:
ALTER DATABASE SIGC_COL     SET MULTI_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE SIGC_GRANADA SET MULTI_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE SIGC_SEVILLA SET MULTI_USER WITH ROLLBACK IMMEDIATE

Para comprobarlo desde el analizador de consultas se puede lanzar este script desde sigc1 (local), notar que los nombres de las bases de datos son distintos a los de producción.
ALTER DATABASE COLANDALUCIA SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB ( 'COLANDALUCIA', REPAIR_FAST ) WITH NO_INFOMSGS

ALTER DATABASE colANDALUCIA SET MULTI_USER WITH ROLLBACK IMMEDIATE
Hacerlo conectado con la aplicación a la base de datos, para que no funcione a no ser que se cargue la conexión (primera línea del script).