DBCC CHECKDB (Transact-SQL)DBCC CHECKDB (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2012)síAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2012)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Comprueba la integridad física y lógica de todos los objetos de la base de datos especificada mediante la realización de las siguientes operaciones:Checks the logical and physical integrity of all the objects in the specified database by performing the following operations:

  • Se ejecuta DBCC CHECKALLOC en la base de datos.Runs DBCC CHECKALLOC on the database.
  • Se ejecuta DBCC CHECKTABLE en cada tabla y vista en la base de datos.Runs DBCC CHECKTABLE on every table and view in the database.
  • Se ejecuta DBCC CHECKCATALOG en la base de datos.Runs DBCC CHECKCATALOG on the database.
  • Valida el contenido de cada vista indizada de la base de datos.Validates the contents of every indexed view in the database.
  • Valida la coherencia de nivel de vínculo entre los archivos y directorios del sistema de archivos y metadatos de tabla al almacenar varbinary (max) datos del sistema de archivos con FILESTREAM.Validates link-level consistency between table metadata and file system directories and files when storing varbinary(max) data in the file system using FILESTREAM.
  • Valida los datos de Service BrokerService Broker en la base de datos.Validates the Service BrokerService Broker data in the database.

Esto significa que los comandos DBCC CHECKALLOC, DBCC CHECKTABLE o DBCC CHECKCATALOG no tienen que ejecutarse por separado de DBCC CHECKDB.This means that the DBCC CHECKALLOC, DBCC CHECKTABLE, or DBCC CHECKCATALOG commands do not have to be run separately from DBCC CHECKDB. Para obtener información más detallada sobre las comprobaciones que realizan estos comandos, vea sus descripciones.For more detailed information about the checks that these commands perform, see the descriptions of these commands.

Nota

DBCC CHECKDB se admite en bases de datos que contienen tablas optimizadas para memoria, pero la validación solo se produce en tablas basadas en disco.DBCC CHECKDB is supported on databases that contain memory-optimized tables but validation only occurs on disk-based tables. Sin embargo, como parte de la copia de seguridad y la recuperación de bases de datos, la validación de CHECKSUM se realiza para los archivos de grupos de archivos optimizados para memoria.However, as part of database backup and recovery, a CHECKSUM validation is done for files in memory-optimized filegroups.

Puesto que las opciones de reparación de DBCC no están disponibles para las tablas optimizadas para memoria, debe hacer periódicamente copia de seguridad de las bases de datos y probar dichas copias.Since DBCC repair options are not available for memory-optimized tables, you must back up your databases regularly and test the backups. Si se producen problemas de integridad de datos en una tabla optimizada para memoria, debe restaurar desde la última copia de seguridad válida conocida.If data integrity issues occur in a memory-optimized table, you must restore from the last known good backup.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

DBCC CHECKDB     
    [ ( database_name | database_id | 0    
        [ , NOINDEX     
        | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]    
    ) ]    
    [ WITH     
        {    
            [ ALL_ERRORMSGS ]    
            [ , EXTENDED_LOGICAL_CHECKS ]     
            [ , NO_INFOMSGS ]    
            [ , TABLOCK ]    
            [ , ESTIMATEONLY ]    
            [ , { PHYSICAL_ONLY | DATA_PURITY } ]    
            [ , MAXDOP  = number_of_processors ]    
        }    
    ]    
]    

ArgumentosArguments

database_name | database_id | 0database_name | database_id | 0
Es el nombre o Id. de la base de datos para la que se van a ejecutar comprobaciones de integridad.Is the name or ID of the database for which to run integrity checks. Si no se especifica o se especifica 0, se utiliza la base de datos actual.If not specified, or if 0 is specified, the current database is used. Nombres de base de datos deben cumplir las reglas de identificadores.Database names must comply with the rules for identifiers.

NOINDEXNOINDEX
Especifica que no se deben realizar comprobaciones intensivas de índices no clúster para las tablas de usuario.Specifies that intensive checks of nonclustered indexes for user tables should not be performed. Esto reduce el tiempo total de ejecución.This decreases the overall execution time. NOINDEX no afecta a las tablas del sistema, porque las comprobaciones de integridad siempre se realizan en los índices de las tablas del sistema.NOINDEX does not affect system tables because integrity checks are always performed on system table indexes.

REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILDREPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
Especifica que DBCC CHECKDB repare los errores que encuentre.Specifies that DBCC CHECKDB repair the found errors. Utilice las opciones REPAIR solo como último recurso.Use the REPAIR options only as a last resort. La base de datos especificada debe estar en modo de usuario único para utilizar una de las siguientes opciones de reparación.The specified database must be in single-user mode to use one of the following repair options.

REPAIR_ALLOW_DATA_LOSSREPAIR_ALLOW_DATA_LOSS
Intenta reparar todos los errores indicados.Tries to repair all reported errors. Estas reparaciones pueden ocasionar alguna pérdida de datos.These repairs can cause some data loss.

Advertencia

La opción REPAIR_ALLOW_DATA_LOSS es una característica compatible pero no siempre es la mejor opción para poner una base de datos a un estado físicamente coherente.The REPAIR_ALLOW_DATA_LOSS option is a supported feature but it may not always be the best option for bringing a database to a physically consistent state. Si se realiza correctamente, la opción REPAIR_ALLOW_DATA_LOSS puede provocar la pérdida de datos.If successful, the REPAIR_ALLOW_DATA_LOSS option may result in some data loss. De hecho, puede producir la pérdida de más datos que si un usuario tuviera que restaurar la base de datos desde la última copia de seguridad en buen estado.In fact, it may result in more data lost than if a user were to restore the database from the last known good backup.

En MicrosoftMicrosoft siempre se recomienda que el usuario haga una restauración de la última copia de seguridad correcta como método principal para corregir los errores notificados por DBCC CHECKDB. MicrosoftMicrosoft always recommends a user restore from the last known good backup as the primary method to recover from errors reported by DBCC CHECKDB. La opción REPAIR_ALLOW_DATA_LOSS no es una alternativa para restaurar a partir de una copia de seguridad buena.The REPAIR_ALLOW_DATA_LOSS option is not an alternative for restoring from a known good backup. Es una opción de emergencia como "último recurso" que solo se recomienda utilizar si no es posible restaurar a partir de una copia de seguridad.It is an emergency “last resort” option recommended for use only if restoring from a backup is not possible.

Algunos errores, que solamente pueden repararse mediante la opción REPAIR_ALLOW_DATA_LOSS, pueden implicar desasignar una fila, una página o una serie de páginas para borrar los errores.Certain errors, that can only be repaired using the REPAIR_ALLOW_DATA_LOSS option, may involve deallocating a row, page, or series of pages to clear the errors. El usuario ya no puede acceder a los datos desasignados ni puede recuperarlos, y no se puede determinar el contenido exacto de los datos desasignados.Any deallocated data is no longer accessible or recoverable for the user, and the exact contents of the deallocated data cannot be determined. Por lo tanto, puede ser que la integridad referencial no sea precisa tras desasignar filas o páginas porque la comprobación y el mantenimiento de las restricciones de la clave externa no forman parte de esta operación de reparación.Therefore, referential integrity may not be accurate after any rows or pages are deallocated because foreign key constraints are not checked or maintained as part of this repair operation. El usuario debe inspeccionar la integridad referencial de su base de datos (DBCC CHECKCONSTRAINTS) después de usar la opción REPAIR_ALLOW_DATA_LOSS.The user must inspect the referential integrity of their database (using DBCC CHECKCONSTRAINTS) after using the REPAIR_ALLOW_DATA_LOSS option.

Antes de realizar la reparación, cree copias físicas de los archivos que pertenezcan a esta base de datos.Before performing the repair, create physical copies of the files that belong to this database. Esto incluye el archivo de datos principal (.mdf), los archivos de datos secundarios (.ndf), todos los archivos de registro de transacciones (.ldf) y otros contenedores que forman la base de datos como catálogos de texto completo, carpetas de secuencia de archivos, datos optimizados en memoria, etc.This includes the primary data file (.mdf), any secondary data files (.ndf), all transaction log files (.ldf), and other containers that form the database including full text catalogs, file stream folders, memory optimized data, etc.

Antes de realizar la reparación, plantéese cambiar el estado de la base de datos al modo EMERGENCY, intente extraer tanta información como sea posible de las tablas críticas y guarde esos datos.Before performing the repair, consider changing the state of the database to EMERGENCY mode and trying to extract as much information possible from the critical tables and save that data.

REPAIR_FASTREPAIR_FAST
La sintaxis se mantiene únicamente por compatibilidad con versiones anteriores.Maintains syntax for backward compatibility only. No se realizan acciones de reparación.No repair actions are performed.

REPAIR_REBUILDREPAIR_REBUILD
Realiza reparaciones que no tienen ninguna posibilidad de pérdida de datos.Performs repairs that have no possibility of data loss. Pueden ser reparaciones rápidas, como la reparación de las filas que faltan en índices no clúster, y reparaciones que consumen más tiempo, como regenerar un índice.This can include quick repairs, such as repairing missing rows in non-clustered indexes, and more time-consuming repairs, such as rebuilding an index.
Este argumento no repara los errores que implican datos de FILESTREAM.This argument does not repair errors involving FILESTREAM data.

Importante

Puesto que se puede registrar y recuperar completamente DBCC CHECKDB junto con cualquiera de las opciones de REPAIR, en MicrosoftMicrosoft siempre se recomienda que el usuario utilice CHECKDB con las opciones de REPAIR dentro de una transacción (ejecute BEGIN TRANSACTION antes de ejecutar el comando) para que el usuario pueda confirmar si quiere aceptar los resultados de la operación.Since DBCC CHECKDB with any of the REPAIR options are completely logged and recoverable, MicrosoftMicrosoft always recommends a user use CHECKDB with any REPAIR options within a transaction (execute BEGIN TRANSACTION before running the command) so that the user can confirm he/she wants to accept the results of the operation. A continuación, el usuario puede ejecutar COMMIT TRANSACTION para confirmar todo el trabajo realizado por la operación de reparación.Then the user can execute COMMIT TRANSACTION to commit all work done by the repair operation. Si el usuario no desea aceptar el resultado de la operación, puede ejecutar ROLLBACK TRANSACTION para deshacer los efectos de las operaciones de reparación.If the user does not want to accept the results of the operation, he/she can execute a ROLLBACK TRANSACTION to undo the effects of the repair operations.

Para reparar errores, se recomienda restaurar a partir de una copia de seguridad.To repair errors, we recommend restoring from a backup. Las operaciones de reparación no tienen en cuenta ninguna de las restricciones que puede haber en las tablas o entre ellas.Repair operations do not consider any of the constraints that may exist on or between tables. Si la tabla especificada está implicada en una o más restricciones, se recomienda ejecutar DBCC CHECKCONSTRAINTS tras una operación de reparación.If the specified table is involved in one or more constraints, we recommend running DBCC CHECKCONSTRAINTS after a repair operation. Si debe utilizar REPAIR, ejecute DBCC CHECKDB sin una opción de reparación para localizar el nivel de reparación que se va a utilizar.If you must use REPAIR, run DBCC CHECKDB without a repair option to find the repair level to use. Si utiliza el nivel REPAIR_ALLOW_DATA_LOSS, se recomienda realizar una copia de seguridad de la base de datos antes de ejecutar DBCC CHECKDB con esta opción.If you use the REPAIR_ALLOW_DATA_LOSS level, we recommend that you back up the database before you run DBCC CHECKDB with this option.

ALL_ERRORMSGSALL_ERRORMSGS
Muestra todos los errores notificados por objeto.Displays all reported errors per object. De forma predeterminada, se muestran todos los mensajes de error.All error messages are displayed by default. Especificar u omitir esta opción no tiene ningún efecto.Specifying or omitting this option has no effect. Mensajes de error se ordenan por identificador de objeto, excepto para los mensajes generados desde base de datos tempdb.Error messages are sorted by object ID, except for those messages generated from tempdb database.

EXTENDED_LOGICAL_CHECKSEXTENDED_LOGICAL_CHECKS
Si el nivel de compatibilidad es 100 ( SQL Server 2008SQL Server 2008) o superior, realiza comprobaciones de coherencia lógica en una vista indizada, en índices XML y en índices espaciales, en caso de que los haya.If the compatibility level is 100 ( SQL Server 2008SQL Server 2008) or higher, performs logical consistency checks on an indexed view, XML indexes, and spatial indexes, where present.
Para obtener más información, consulte realizar comprobaciones lógicas de coherencia en índices, en la comentarios sección más adelante en este tema.For more information, see Performing Logical Consistency Checks on Indexes, in the Remarks section later in this topic.

NO_INFOMSGSNO_INFOMSGS
Suprime todos los mensajes de información.Suppresses all informational messages.

TABLOCKTABLOCK
Hace que DBCC CHECKDB obtenga bloqueos en lugar de utilizar una instantánea de base de datos interna.Causes DBCC CHECKDB to obtain locks instead of using an internal database snapshot. Se incluye un bloqueo exclusivo (X) a corto plazo en la base de datos.This includes a short-term exclusive (X) lock on the database. TABLOCK hace que DBCC CHECKDB se ejecute más rápido en una base de datos con mucha carga, pero disminuye la simultaneidad disponible en la base de datos mientras DBCC CHECKDB está en ejecución.TABLOCK will cause DBCC CHECKDB to run faster on a database under heavy load, but decreases the concurrency available on the database while DBCC CHECKDB is running.

Importante

TABLOCK limita las comprobaciones que se llevan a cabo; DBCC CHECKCATALOG no se ejecuta en la base de datos y los datos de Service BrokerService Broker no se validan.TABLOCK limits the checks that are performed; DBCC CHECKCATALOG is not run on the database, and Service BrokerService Broker data is not validated.

ESTIMATEONLYESTIMATEONLY
Muestra la cantidad estimada de espacio de tempdb que se requiere para ejecutar DBCC CHECKDB con todas las demás opciones especificadas.Displays the estimated amount of tempdb space that is required to run DBCC CHECKDB with all the other specified options. No se realiza la comprobación real de la base de datos.The actual database check is not performed.

PHYSICAL_ONLYPHYSICAL_ONLY
Limita la comprobación a la integridad de la estructura física de los encabezados de página y registro y la coherencia de la asignación de la base de datos.Limits the checking to the integrity of the physical structure of the page and record headers and the allocation consistency of the database. Esta comprobación se ha diseñado para proporcionar una pequeña comprobación de sobrecarga de la coherencia física de la base de datos; también detecta páginas rasgadas, errores de suma de comprobación y errores de hardware comunes que pueden comprometer los datos del usuario.This check is designed to provide a small overhead check of the physical consistency of the database, but it can also detect torn pages, checksum failures, and common hardware failures that can compromise a user's data.
La ejecución completa de DBCC CHECKDB puede tardar mucho más tiempo en completarse que en versiones anteriores.A full run of DBCC CHECKDB may take considerably longer to complete than earlier versions. Este comportamiento se produce porque:This behavior occurs because:

  • Las comprobaciones lógicas son más exhaustivas.The logical checks are more comprehensive.
  • Algunas de las estructuras subyacentes que hay que comprobar son más complejas.Some of the underlying structures to be checked are more complex.
  • Se han agregado muchas comprobaciones nuevas para incluir las nuevas características.Many new checks have been introduced to include the new features.
    Por lo tanto, el uso de la opción PHYSICAL_ONLY puede llevar mucho menos tiempo para DBCC CHECKDB en bases de datos grandes y es por esa razón por la que se recomienda para un uso frecuente en sistemas de producción.Therefore, using the PHYSICAL_ONLY option may cause a much shorter run-time for DBCC CHECKDB on large databases and is recommended for frequent use on production systems. Aun así, se recomienda realizar periódicamente una ejecución completa DBCC CHECKDB.We still recommend that a full run of DBCC CHECKDB be performed periodically. La frecuencia de estas ejecuciones depende de factores específicos de cada empresa y de los entornos de producción.The frequency of these runs depends on factors specific to individual businesses and production environments.
    Este argment siempre implica NO_INFOMSGS y no se permite con cualquiera de las opciones de reparación.This argment always implies NO_INFOMSGS and is not allowed with any one of the repair options.

Advertencia

Si se especifica PHYSICAL_ONLY, DBCC CHECKDB omite todas las comprobaciones de datos de FILESTREAM.Specifying PHYSICAL_ONLY causes DBCC CHECKDB to skip all checks of FILESTREAM data.

DATA_PURITYDATA_PURITY
Hace que DBCC CHECKDB compruebe si la base de datos contiene valores de columna que no son válidos o están fuera del intervalo correcto.Causes DBCC CHECKDB to check the database for column values that are not valid or out-of-range. Por ejemplo, DBCC CHECKDB detecta las columnas con valores de fecha y hora son superiores o inferiores el intervalo para la datetime tipo de datos; o decimal o tipo de datos numérico aproximado columnas con valores de escala o precisión que no son válidos.For example, DBCC CHECKDB detects columns with date and time values that are larger than or less than the acceptable range for the datetime data type; or decimal or approximate-numeric data type columns with scale or precision values that are not valid.
Las comprobaciones de integridad de valores de columna están habilitadas de manera predeterminada y no requieren la opción DATA_PURITY.Column-value integrity checks are enabled by default and do not require the DATA_PURITY option. De manera predeterminada, en las bases de datos actualizadas desde versiones anteriores de SQL ServerSQL Server, las comprobaciones de valores de columna no se habilitan hasta que no se ejecuta DBCC CHECKDB WITH DATA_PURITY sin errores en la base de datos.For databases upgraded from earlier versions of SQL ServerSQL Server, column-value checks are not enabled by default until DBCC CHECKDB WITH DATA_PURITY has been run error free on the database. Después, DBCC CHECKDB comprueba la integridad de los valores de columna de manera predeterminada.After this, DBCC CHECKDB checks column-value integrity by default. Para obtener más información sobre cómo podría afectar a CHECKDB la actualización de bases de datos de versiones anteriores de SQL ServerSQL Server, vea la sección Comentarios más adelante en este tema.For more information about how CHECKDB might be affected by upgrading database from earlier versions of SQL ServerSQL Server, see the Remarks section later in this topic.

Advertencia

Si se especifica PHYSICAL_ONLY, no se realizan comprobaciones de integridad de columna.If PHYSICAL_ONLY is specified, column-integrity checks are not performed.

Los errores de validación de los que informe esta opción no se pueden corregir con las opciones de reparación de DBCC.Validation errors reported by this option cannot be fixed by using DBCC repair options. Para obtener información acerca de cómo corregir manualmente estos errores, vea el artículo 923247 de Knowledge Base: solucionar el error DBCC 2570 en SQL Server 2005 y versiones posteriores.For information about manually correcting these errors, see Knowledge Base article 923247: Troubleshooting DBCC error 2570 in SQL Server 2005 and later versions.

MAXDOPMAXDOP
Se aplica a: SQL ServerSQL Server ( SQL Server 2014SQL Server 2014 SP2 a través de SQL Server 2017SQL Server 2017).Applies to: SQL ServerSQL Server ( SQL Server 2014SQL Server 2014 SP2 through SQL Server 2017SQL Server 2017).

Invalida el grado máximo de paralelismo opción de configuración de sp_configure para la instrucción.Overrides the max degree of parallelism configuration option of sp_configure for the statement. El MAXDOP puede superar el valor configurado con sp_configure.The MAXDOP can exceed the value configured with sp_configure. Si MAXDOP supera el valor configurado con el regulador de recursos, el Motor de base de datos de SQL ServerSQL Server Database Engine utiliza el valor de MAXDOP del regulador de recursos, se describe en ALTER WORKLOAD GROUP.If MAXDOP exceeds the value configured with Resource Governor, the Motor de base de datos de SQL ServerSQL Server Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP. Se pueden aplicar todas las reglas semánticas utilizadas con la opción de configuración max degree of parallelism cuando se utiliza la sugerencia de consulta MAXDOP.All semantic rules used with the max degree of parallelism configuration option are applicable when you use the MAXDOP query hint. Para obtener más información, vea Establecer la opción de configuración del servidor Grado máximo de paralelismo.For more information, see Configure the max degree of parallelism Server Configuration Option.

Advertencia

Si MAXDOP se establece en cero, a continuación, SQL Server elige el grado máximo de paralelismo para usar.If MAXDOP is set to zero then SQL Server chooses the max degree of parallelism to use.

ComentariosRemarks

DBCC CHECKDB no examina los índices deshabilitados.DBCC CHECKDB does not examine disabled indexes. Para obtener más información acerca de los índices deshabilitados, vea deshabilitar índices y restricciones.For more information about disabled indexes, see Disable Indexes and Constraints.

Si un tipo definido por el usuario se marca como ordenado por bytes, solo debe existir una serialización del tipo definido por el usuario.If a user-defined type is marked as being byte ordered, there must only be one serialization of the user-defined type. La serialización incoherente de los tipos definidos por el usuario ordenados por bytes provoca el error 2537 cuando se ejecuta DBCC CHECKDB.Not having a consistent serialization of byte-ordered user-defined types causes error 2537 when DBCC CHECKDB is run. Para obtener más información, consulte requisitos de tipo definido por el usuario.For more information, see User-Defined Type Requirements.

Dado que la base de datos de recursos es modificable sólo en modo de usuario único, DBCC CHECKDB comando no se puede ejecutar directamente en ella.Because the Resource database is modifiable only in single-user mode, the DBCC CHECKDB command cannot be run on it directly. Sin embargo, cuando se ejecuta DBCC CHECKDB en la base de datos maestra, también se ejecuta un segundo comando CHECKDB internamente en la base de datos de recursos.However, when DBCC CHECKDB is executed against the master database, a second CHECKDB is also run internally on the Resource database. Esto significa que DBCC CHECKDB puede devolver resultados adicionales.This means that DBCC CHECKDB can return extra results. El comando devuelve conjuntos de resultados adicionales cuando no se establecen opciones o cuando se establecen las opciones PHYSICAL_ONLY o ESTIMATEONLY.The command returns extra result sets when no options are set, or when either the PHYSICAL_ONLY or ESTIMATEONLY option is set.

A partir de Resultado deSQL Server 2005 SP2, ejecutar DBCC CHECKDB ya no borra la caché del plan para la instancia de SQL ServerSQL Server.Starting with Resultado deSQL Server 2005 SP2, executing DBCC CHECKDB no longer clears the plan cache for the instance of SQL ServerSQL Server. Antes de Resultado deSQL Server 2005 SP2, ejecutar DBCC CHECKDB borra la caché del plan.Before Resultado deSQL Server 2005 SP2, executing DBCC CHECKDB clears the plan cache. Al borrar la caché del plan, se provoca una recompilación de todos los planes de ejecución posteriores y puede ocasionar una disminución repentina y temporal del rendimiento de las consultas.Clearing the plan cache causes recompilation of all later execution plans and may cause a sudden, temporary decrease in query performance.

Realizar comprobaciones de coherencia lógica en índicesPerforming Logical Consistency Checks on Indexes

La comprobación de coherencia lógica en índices varía según el nivel de compatibilidad de la base de datos, tal como se indica a continuación:Logical consistency checking on indexes varies according to the compatibility level of the database, as follows:

  • Si el nivel de compatibilidad es 100 ( SQL Server 2008SQL Server 2008) o superior:If the compatibility level is 100 ( SQL Server 2008SQL Server 2008) or higher:
  • A menos que se especifique NOINDEX, DBCC CHECKDB realiza comprobaciones de coherencia física y lógica en una sola tabla y en todos sus índices no clúster.Unless NOINDEX is specified, DBCC CHECKDB performs both physical and logical consistency checks on a single table and on all its nonclustered indexes. Sin embargo, en los índices XML, índices espaciales y vistas indizadas solo se realizan comprobaciones de coherencia física de forma predeterminada.However, on XML indexes, spatial indexes, and indexed views only physical consistency checks are performed by default.
  • Si se especifica WITH EXTENDED_LOGICAL_CHECKS, se realizarán comprobaciones lógicas en una vista indizada, en índices XML e índices espaciales, en caso de que los hubiese.If WITH EXTENDED_LOGICAL_CHECKS is specified, logical checks are performed on an indexed view, XML indexes, and spatial indexes, where present. De forma predeterminada, las comprobaciones de coherencia física se realizan antes que las comprobaciones de coherencia lógica.By default, physical consistency checks are performed before the logical consistency checks. Si también se especifica NOINDEX, solamente se realizarán las comprobaciones lógicas.If NOINDEX is also specified, only the logical checks are performed.

Estas comprobaciones de coherencia lógica realizan una comprobación cruzada de la tabla de índices interna del objeto de índice con la tabla de usuario a la que hace referencia.These logical consistency checks cross check the internal index table of the index object with the user table that it is referencing. Para buscar las filas periféricas, se crea una consulta interna que lleve a cabo una intersección completa de las tablas internas y del usuario.To find outlying rows, an internal query is constructed to perform a full intersection of the internal and user tables. La ejecución de esta consulta puede afectar mucho al rendimiento y no se puede realizar el seguimiento de su progreso.Running this query can have a very high effect on performance, and its progress cannot be tracked. Por consiguiente, se recomienda especificar únicamente WITH EXTENDED_LOGICAL_CHECKS si cree que existen problemas del índice que no estén relacionados con daños físicos, o si las sumas de comprobación del nivel de página se han desactivado y sospecha que puedan existir daños de hardware de nivel de columna.Therefore, we recommend that you specify WITH EXTENDED_LOGICAL_CHECKS only if you suspect index issues that are unrelated to physical corruption, or if page-level checksums have been turned off and you suspect column-level hardware corruption.

  • Si el índice es un índice filtrado, DBCC CHECKDB realizará las comprobaciones de coherencia para comprobar que las entradas de índice satisfacen el predicado de filtro.If the index is a filtered index, DBCC CHECKDB performs consistency checks to verify that the index entries satisfy the filter predicate.
  • Si el nivel de compatibilidad es 90 o menos, a menos que se especifique NOINDEX, DBCC CHECKDB realiza las comprobaciones de coherencia física y lógica en una tabla única o vista indizada y en todos sus índices XML e índices no clúster.If the compatibility level is 90 or less, unless NOINDEX is specified, DBCC CHECKDB performs both physical and logical consistency checks on a single table or indexed view and on all its nonclustered and XML indexes. Los índices espaciales no se admiten.Spatial indexes are not supported.
  • A partir de SQL Server 2016, comprobaciones adicionales en las columnas calculadas persistentes, las columnas UDT y los índices filtrados no se ejecutarán de forma predeterminada para evitar las evaluaciones de expresiones costoso.Starting with SQL Server 2016, additional checks on persisted computed columns, UDT columns, and filtered indexes will not run by default to avoid the expensive expression evaluations. Este cambio reduce en gran medida el tiempo que dure CHECKDB en bases de datos que contiene estos objetos.This change greatly reduces the duration of CHECKDB against databases containing these objects. Sin embargo, las comprobaciones de coherencia física de estos objetos siempre se completa.However, the physical consistency checks of these objects is always completed. Cuando se especifica la opción de EXTENDED_LOGICAL_CHECKS las evaluaciones de expresiones se realizará además de las comprobaciones lógicas ya está presentes (vista indizada, índices XML e índices espaciales) como parte de la opción EXTENDED_LOGICAL_CHECKS.Only when EXTENDED_LOGICAL_CHECKS option is specified will the expression evaluations be performed in addition to already present logical checks (indexed view, XML indexes, and spatial indexes) as part of the EXTENDED_LOGICAL_CHECKS option.

Para obtener información sobre el nivel de compatibilidad de una base de datosTo learn the compatibility level of a database

Instantánea de base de datos internaInternal Database Snapshot

DBCC CHECKDB utiliza una instantánea interna de la base de datos para la coherencia transaccional necesaria para realizar estas comprobaciones.DBCC CHECKDB uses an internal database snapshot for the transactional consistency needed to perform these checks. Así se evitan problemas de bloqueo y simultaneidad cuando se ejecutan estos comandos.This prevents blocking and concurrency problems when these commands are executed. Para obtener más información, vea ver el tamaño del archivo disperso de una instantánea de base de datos ( Transact-SQL ) y la sección uso de instantáneas de base de datos interna DBCC en DBCC ( Transact-SQL ) .For more information, see View the Size of the Sparse File of a Database Snapshot (Transact-SQL) and the DBCC Internal Database Snapshot Usage section in DBCC (Transact-SQL). Si no se puede crear una instantánea o se especifica TABLOCK, DBCC CHECKDB adquiere bloqueos para obtener la coherencia necesaria.If a snapshot cannot be created, or TABLOCK is specified, DBCC CHECKDB acquires locks to obtain the required consistency. En este caso, se requiere un bloqueo exclusivo de base de datos para realizar las comprobaciones de asignación y se requieren bloqueos compartidos de tabla para realizar las comprobaciones de tabla.In this case, an exclusive database lock is required to perform the allocation checks, and shared table locks are required to perform the table checks. DBCC CHECKDB produce un error cuando se ejecuta en master si no se puede crear una instantánea de base de datos interna.DBCC CHECKDB fails when run against master if an internal database snapshot cannot be created. Ejecutar DBCC CHECKDB en tempdb no realiza ninguna comprobación de asignación ni de catálogos y debe adquirir bloqueos de tabla compartidos para llevar a cabo comprobaciones de la tabla.Running DBCC CHECKDB against tempdb does not perform any allocation or catalog checks and must acquire shared table locks to perform table checks. Esto es debido a que, por motivos de rendimiento, las instantáneas de base de datos no están disponibles en tempdb.This is because, for performance reasons, database snapshots are not available on tempdb. Eso significa que no es posible obtener la coherencia transaccional necesaria.This means that the required transactional consistency cannot be obtained. En Microsoft SQL Server 2012 o una versión anterior de SQL Server, puede encontrar mensajes de error al ejecutar el comando DBCC CHECKDB para una base de datos que tenga los archivos ubicados en un volumen con formato ReFS.In Microsoft SQL Server 2012 or an earlier version of SQL Server, you may encounter error messages when you run the DBCC CHECKDB command for a database that has its files located on an ReFS-formatted volume. Para obtener más información, vea el artículo de Knowledge Base 2974455: comportamiento de DBCC CHECKDB cuando la base de datos de SQL Server se encuentra en un volumen ReFS.For more information, see Knowledge Base article 2974455: DBCC CHECKDB behavior when the SQL Server database is located on an ReFS volume.

Comprobar y reparar datos de FILESTREAMChecking and Repairing FILESTREAM Data

Cuando se habilita FILESTREAM para una base de datos y una tabla, puede almacenar opcionalmente varbinary (max) objetos binarios grandes (BLOB) en el sistema de archivos.When FILESTREAM is enabled for a database and table, you can optionally store varbinary(max) binary large objects (BLOBs) in the file system. Al utilizar DBCC CHECKDB en una base de datos que almacena BLOB en el sistema de archivos, DBCC comprueba la coherencia de nivel de vínculo entre el sistema de archivos y la base de datos.When using DBCC CHECKDB on a database that stores BLOBs in the file system, DBCC checks link-level consistency between the file system and database. Por ejemplo, si una tabla contiene una varbinary (max) columna que utiliza el atributo FILESTREAM, DBCC CHECKDB comprobará que existe una asignación uno a uno entre los directorios de sistema de archivos y archivos y filas de tablas, columnas y columnas valores.For example, if a table contains a varbinary(max) column that uses the FILESTREAM attribute, DBCC CHECKDB will check that there is a one-to-one mapping between file system directories and files and table rows, columns, and column values. DBCC CHECKDB puede reparar el daño producido si se especifica la opción de REPAIR_ALLOW_DATA_LOSS.DBCC CHECKDB can repair corruption if you specify the REPAIR_ALLOW_DATA_LOSS option. Para reparar el daño producido en FILESTREAM, DBCC eliminará las filas de tabla que sean datos del sistema de archivos que faltan.To repair FILESTREAM corruption, DBCC will delete any table rows that are missing file system data.

Procedimientos recomendadosBest Practices

Se recomienda utilizar la opción PHYSICAL_ONLY si se usa con frecuencia en sistemas de producción.We recommend that you use the PHYSICAL_ONLY option for frequent use on production systems. El uso de PHYSICAL_ONLY puede reducir mucho el tiempo de ejecución de DBCC CHECKDB en bases de datos grandes.Using PHYSICAL_ONLY can greatly shorten run-time for DBCC CHECKDB on large databases. También se recomienda ejecutar DBCC CHECKDB sin opciones de forma periódica.We also recommend that you periodically run DBCC CHECKDB with no options. La frecuencia con que se deben realizar estas ejecuciones varía en función de la empresa y su entorno de producción.How frequently you should perform these runs depends on individual businesses and their production environments.

Comprobar objetos en paraleloChecking Objects in Parallel

De forma predeterminada, DBCC CHECKDB realiza comprobaciones paralelas de los objetos.By default, DBCC CHECKDB performs parallel checking of objects. El grado de paralelismo se determina automáticamente mediante el procesador de consultas.The degree of parallelism is automatically determined by the query processor. El grado máximo de paralelismo se configura igual que las consultas paralelas.The maximum degree of parallelism is configured just like parallel queries. Para restringir el número máximo de procesadores disponibles para las comprobaciones DBCC, use sp_configure.To restrict the maximum number of processors available for DBCC checking, use sp_configure. Para obtener más información, vea Establecer la opción de configuración del servidor Grado máximo de paralelismo.For more information, see Configure the max degree of parallelism Server Configuration Option. La comprobación del paralelismo se puede deshabilitar utilizando el marcador de seguimiento 2528.Parallel checking can be disabled by using trace flag 2528. Para obtener más información, vea Marcas de seguimiento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

Nota

Esta característica no está disponible en todas las ediciones de SQL ServerSQL Server.This feature is not available in every edition of SQL ServerSQL Server. Para obtener más información, ver coherencia en paralelo, consulte en la sección de facilidad de uso de RDBMS de características compatibles con las ediciones de SQL Server 2016.For more information, see parallel consistency check in the RDBMS Manageability section of Features Supported by the Editions of SQL Server 2016.

Descripción de los mensajes de error de DBCCUnderstanding DBCC Error Messages

Cuando finaliza el comando DBCC CHECKDB, se escribe un mensaje en el registro de errores de SQL ServerSQL Server.After the DBCC CHECKDB command finishes, a message is written to the SQL ServerSQL Server error log. Si el comando DBCC se ejecuta correctamente, el mensaje lo indica, así como el tiempo de ejecución del comando.If the DBCC command successfully executes, the message indicates success and the amount of time that the command ran. Si el comando DBCC se detiene antes de finalizar la comprobación debido a un error, el mensaje indica que el comando se ha cancelado, un valor de estado y el tiempo de ejecución del comando.If the DBCC command stops before completing the check because of an error, the message indicates that the command was terminated, a state value, and the amount of time the command ran. En la tabla siguiente se muestran y describen los valores de estado que pueden aparecer en el mensaje.The following table lists and describes the state values that can be included in the message.

StateState DescriptionDescription
00 Se ha generado el error número 8930.Error number 8930 was raised. Esto indica que se interrumpió la ejecución del comando DBCC a causa de daños en los metadatos.This indicates a corruption in metadata that terminated the DBCC command.
11 Se ha generado el error número 8967.Error number 8967 was raised. Error DBCC interno.There was an internal DBCC error.
22 Error durante una reparación de base de datos en modo de emergencia.A failure occurred during emergency mode database repair.
33 Esto indica que se interrumpió la ejecución del comando DBCC a causa de daños en los metadatos.This indicates a corruption in metadata that terminated the DBCC command.
44 Se ha detectado una infracción de acceso o aserción.An assert or access violation was detected.
55 Error desconocido que cancela el comando DBCC.An unknown error occurred that terminated the DBCC command.

Informes de erroresError Reporting

Un archivo de volcado (SQLDUMP*nnnn*.txt) se crea en el SQL ServerSQL Server directorio de registro cada vez que DBCC CHECKDB detecta un error por daños.A dump file (SQLDUMP*nnnn*.txt) is created in the SQL ServerSQL Server LOG directory whenever DBCC CHECKDB detects a corruption error. Cuando el uso de características la recopilación de datos y informe de errores de características están habilitadas para la instancia de SQL ServerSQL Server, el archivo se reenvía automáticamente a MicrosoftMicrosoft.When the Feature Usage data collection and Error Reporting features are enabled for the instance of SQL ServerSQL Server, the file is automatically forwarded to MicrosoftMicrosoft. Los datos recopilados se utilizan para mejorar la funcionalidad de SQL ServerSQL Server.The collected data is used to improve SQL ServerSQL Server functionality. El archivo de volcado contiene los resultados del comando DBCC CHECKDB y los resultados del diagnóstico adicional.The dump file contains the results of the DBCC CHECKDB command and additional diagnostic output. Acceso está limitado a la SQL ServerSQL Server cuenta y los miembros del rol sysadmin de servicio.Access is limited to the SQL ServerSQL Server service account and members of the sysadmin role. De forma predeterminada, la función sysadmin contiene todos los miembros de las ventanas BUILTIN\Administrators grupo y el grupo de administradores local.By default, the sysadmin role contains all members of the Windows BUILTIN\Administrators group and the local administrator's group. El comando DBCC no producirá error en caso de que se produzca un error en el proceso de recopilación de datos.The DBCC command does not fail if the data collection process fails.

Resolver erroresResolving Errors

Si DBCC CHECKDB informa de errores, se recomienda restaurar la base de datos a partir de una copia de seguridad en lugar de ejecutar REPAIR con una de sus opciones.If any errors are reported by DBCC CHECKDB, we recommend restoring the database from the database backup instead of running REPAIR with one of the REPAIR options. Si no hay ninguna copia de seguridad, al ejecutar REPAIR se corrigen los errores notificados.If no backup exists, running repair corrects the errors reported. La opción de reparación que se debe utilizar se especifica al final de la lista de errores notificados.The repair option to use is specified at the end of the list of reported errors. No obstante, la corrección de errores mediante la opción REPAIR_ALLOW_DATA_LOSS puede requerir eliminar algunas páginas y, por tanto, también algunos datos.However, correcting the errors by using the REPAIR_ALLOW_DATA_LOSS option might require deleting some pages, and therefore some data.

En algunas circunstancias, es posible que la base de datos contenga valores que no son válidos o que no están comprendidos en el intervalo correcto de acuerdo con el tipo de datos de la columna.Under some circumstances, values might be entered into the database that are not valid or out-of-range based on the data type of the column. DBCC CHECKDB puede detectar valores de columna que no son válidos para todos los tipos de datos de columna.DBCC CHECKDB can detect column values that are not valid for all column data types. Por tanto, al ejecutar DBCC CHECKDB con la opción DATA_PURITY en bases de datos que se han actualizado desde versiones anteriores de SQL ServerSQL Server, pueden desvelarse errores de valores de columna que ya existían.Therefore, running DBCC CHECKDB with the DATA_PURITY option on databases that have been upgraded from earlier versions of SQL ServerSQL Server might reveal preexisting column-value errors. Dado que SQL ServerSQL Server no puede reparar estos errores de forma automática, será necesario actualizar el valor de la columna de forma manual.Because SQL ServerSQL Server cannot automatically repair these errors, the column value must be manually updated. Si CHECKDB detecta un error de este tipo, devuelve una advertencia, el número de error 2570 e información para identificar la fila afectada y corregir el error manualmente.If CHECKDB detects such an error, CHECKDB returns a warning, the error number 2570, and information to identify the affected row and manually correct the error.

La reparación se puede realizar en una transacción de usuario para permitirle revertir los cambios realizados.The repair can be performed under a user transaction to let the user roll back the changes that were made. Si se revierten las reparaciones, la base de datos aún contendrá errores por lo que se debe restaurar a partir de una copia de seguridad.If repairs are rolled back, the database will still contain errors and must be restored from a backup. Una vez finalizadas las reparaciones, realice una copia de seguridad de la base de datos.After repairs are completed, back up the database.

Resolver errores en modo de emergencia de base de datosResolving Errors in Database Emergency Mode

Cuando una base de datos se ha establecido en modo de emergencia mediante el uso de la ALTER DATABASE instrucción, DBCC CHECKDB puede realizar algunas reparaciones especiales en la base de datos si se especifica la opción REPAIR_ALLOW_DATA_LOSS.When a database has been set to emergency mode by using the ALTER DATABASE statement, DBCC CHECKDB can perform some special repairs on the database if the REPAIR_ALLOW_DATA_LOSS option is specified. Estas reparaciones pueden permitir que bases de datos que normalmente no se pueden recuperar vuelvan a estar en línea con un estado físicamente coherente.These repairs may allow for ordinarily unrecoverable databases to be brought back online in a physically consistent state. Estas reparaciones solo deben utilizarse como último recurso y solo cuando no se puede restaurar la base de datos a partir de una copia de seguridad.These repairs should be used as a last resort and only when you cannot restore the database from a backup. Cuando la base de datos se establece en modo de emergencia, la base de datos está marcada como READ_ONLY, el registro está deshabilitado y acceso está limitado a los miembros del rol fijo de servidor sysadmin.When the database is set to emergency mode, the database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role.

Nota

No se puede ejecutar el comando DBCC CHECKDB en modo de emergencia dentro de una transacción de usuario y revertir la transacción tras la ejecución.You cannot run the DBCC CHECKDB command in emergency mode inside a user transaction and roll back the transaction after execution.

Cuando la base de datos está en modo de emergencia y se ejecuta DBCC CHECKDB con la cláusula REPAIR_ALLOW_DATA_LOSS, se realizan las siguientes acciones:When the database is in emergency mode and DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause is run, the following actions are taken:

  • DBCC CHECKDB utiliza páginas marcadas como inaccesibles debido a errores de suma de comprobación o de E/S como si los errores no se hubieran producido.DBCC CHECKDB uses pages that have been marked inaccessible because of I/O or checksum errors, as if the errors have not occurred. De esta manera aumentan las posibilidades de recuperación de datos de la base de datos.Doing this increases the chances for data recovery from the database.
  • DBCC CHECKDB intenta recuperar la base de datos utilizando las técnicas habituales de recuperación basadas en el registro.DBCC CHECKDB attempts to recover the database using regular log-based recovery techniques.
  • Si la recuperación de la base de datos no puede realizarse debido a daños en el registro de transacciones, dicho registro de transacciones volverá a generarse.If, because of transaction log corruption, database recovery is unsuccessful, the transaction log is rebuilt. Volver a generar el registro de transacciones puede provocar la pérdida de coherencia transaccional.Rebuilding the transaction log may result in the loss of transactional consistency.

Advertencia

La opción REPAIR_ALLOW_DATA_LOSS es una característica compatible con SQL ServerSQL Server.The REPAIR_ALLOW_DATA_LOSS option is a supported feature of SQL ServerSQL Server. No obstante, puede que no siempre sea la mejor opción para llevar una base de datos a un estado físicamente coherente.However, it may not always be the best option for bringing a database to a physically consistent state. Si se realiza correctamente, la opción REPAIR_ALLOW_DATA_LOSS puede provocar la pérdida de datos.If successful, the REPAIR_ALLOW_DATA_LOSS option may result in some data loss. De hecho, puede producir la pérdida de más datos que si un usuario tuviera que restaurar la base de datos desde la última copia de seguridad en buen estado.In fact, it may result in more data lost than if a user were to restore the database from the last known good backup. En MicrosoftMicrosoft siempre se recomienda que el usuario haga una restauración de la última copia de seguridad correcta como método principal para corregir los errores notificados por DBCC CHECKDB. MicrosoftMicrosoft always recommends a user restore from the last known good backup as the primary method to recover from errors reported by DBCC CHECKDB. La opción REPAIR_ALLOW_DATA_LOSS es no alternativa para restaurar a partir de una copia de seguridad buena conocida.The REPAIR_ALLOW_DATA_LOSS option is not an alternative for restoring from a known good backup. Es una opción de emergencia como "último recurso" que solo se recomienda utilizar si no es posible restaurar a partir de una copia de seguridad.It is an emergency “last resort” option recommended for use only if restoring from a backup is not possible.

Después de volver a generar el registro, no hay ninguna garantía ACID completa.After rebuilding the log, there is no full ACID guarantee.

Después de volver a generar el registro, DBCC CHECKDB se ejecutará automáticamente, informará de los problemas de coherencia física y los corregirá.After rebuilding the log, DBCC CHECKDB will be automatically performed and will both report and correct physical consistency issues.

Las restricciones reguladas por la lógica empresarial y por la coherencia de datos lógicos se deben validar manualmente.Logical data consistency and business logic enforced constraints must be validated manually.

El tamaño del registro de transacciones conservará su tamaño predeterminado y debe ajustarse manualmente a su tamaño reciente.The transaction log size will be left to its default size and must be manually adjusted back to its recent size.

Si el comando DBCC CHECKDB se ejecuta correctamente, la base de datos está en un estado físicamente coherente y se establece su estado en ONLINE.If the DBCC CHECKDB command succeeds, the database is in a physically consistent state and the database status is set to ONLINE. No obstante, la base de datos puede contener una o más incoherencias transaccionales.However, the database may contain one or more transactional inconsistencies. Le recomendamos que ejecute DBCC CHECKCONSTRAINTS para identificar los errores de lógica de negocios e inmediatamente realizar una copia de la base de datos.We recommend that you run DBCC CHECKCONSTRAINTS to identify any business logic flaws and immediately back up the database. Si el comando DBCC CHECKDB produce un error, no se puede reparar la base de datos.If the DBCC CHECKDB command fails, the database cannot be repaired.

Ejecutar DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS en bases de datos replicadasRunning DBCC CHECKDB with REPAIR_ALLOW_DATA_LOSS in Replicated Databases

La ejecución del comando DBCC CHECKDB con la opción REPAIR_ALLOW_DATA_LOSS puede afectar a las bases de datos de usuario (bases de datos de publicaciones y suscripciones) y a la base de datos de distribución utilizada por la replicación.Running the DBCC CHECKDB command with the REPAIR_ALLOW_DATA_LOSS option can affect user databases (publication and subscription databases) and the distribution database used by replication. Las bases de datos de publicaciones y suscripciones incluyen tablas publicadas y tablas de metadatos de replicación.Publication and subscription databases include published tables and replication metadata tables. Debe tener en cuenta los siguientes problemas potenciales en estas bases de datos:Be aware of the following potential issues in these databases:

  • Tablas publicadas.Published tables. Puede que no se repliquen las acciones realizadas por el proceso CHECKDB para reparar datos de usuario dañados:Actions performed by the CHECKDB process to repair corrupt user data might not be replicated:
  • La replicación de mezcla utiliza desencadenadores para realizar el seguimiento de los cambios en tablas publicadas.Merge replication uses triggers to track changes to published tables. Si el proceso CHECKDB inserta, actualiza o elimina filas, no se activan los desencadenadores, por lo que el cambio no se replica.If rows are inserted, updated, or deleted by the CHECKDB process, triggers do not fire; therefore, the change is not replicated.
  • La replicación transaccional utiliza el registro de transacciones para realizar el seguimiento de los cambios en tablas publicadas.Transactional replication uses the transaction log to track changes to published tables. Posteriormente, el Agente de registro del LOG mueve estos cambios a la base de datos de distribución.The Log Reader Agent then moves these changes to the distribution database. Es posible que el Agente de registro del LOG no pueda replicar algunas reparaciones de DBCC, aunque se hayan registrado.Some DBCC repairs, although logged, cannot be replicated by the Log Reader Agent. Por ejemplo, si el proceso CHECKDB cancela la asignación de una página de datos, el Agente de registro del LOG no convierte esta acción en una instrucción DELETE; por tanto, el cambio no se replica.For example, if a data page is deallocated by the CHECKDB process, the Log Reader Agent does not translate this to a DELETE statement; therefore, the change is not replicated.
  • Tablas de metadatos de replicación.Replication metadata tables. Las acciones que realiza el proceso CHECKDB para reparar tablas de metadatos de replicación dañadas requieren que se quite y se vuelva a configurar la replicación.Actions performed by the CHECKDB process to repair corrupt replication metadata tables require removing and reconfiguring replication.

Si debe ejecutar el comando DBCC CHECKDB con la opción REPAIR_ALLOW_DATA_LOSS en una base de datos de usuario o en una base de datos de distribución:If you have to run the DBCC CHECKDB command with the REPAIR_ALLOW_DATA_LOSS option on a user database or distribution database:

  1. Ponga el sistema en modo inactivo: detenga la actividad en la base de datos y en todas las demás bases de datos de la topología de replicación, e intente sincronizar todos los nodos.Quiesce the system: Stop activity on the database and at all other databases in the replication topology, and then try to synchronize all nodes. Para más información, vea Poner en modo inactivo una topología de replicación (programación de la replicación con Transact-SQL).For more information, see Quiesce a Replication Topology (Replication Transact-SQL Programming).
  2. Ejecute DBCC CHECKDB.Execute DBCC CHECKDB.
  3. Si el informe de DBCC CHECKDB incluye reparaciones de tablas de la base de datos de distribución o de tablas de metadatos de replicación en una base de datos de distribución, quite la replicación y vuelva a configurarla.If the DBCC CHECKDB report includes repairs for any tables in the distribution database or any replication metadata tables in a user database, remove and reconfigure replication. Para obtener más información, vea Deshabilitar la publicación y distribución.For more information, see Disable Publishing and Distribution.
  4. Si el informe de DBCC CHECKDB incluye reparaciones de tablas replicadas, lleve a cabo la validación de datos para determinar dónde se encuentran las diferencias entre los datos de las bases de datos de publicaciones y de suscripciones.If the DBCC CHECKDB report includes repairs for any replicated tables, perform data validation to determine whether there are differences between the data in the publication and subscription databases.

Conjuntos de resultadosResult Sets

DBCC CHECKDB devuelve el siguiente conjunto de resultados:DBCC CHECKDB returns the following result set. Los valores pueden variar, excepto cuando se especifican las opciones ESTIMATEONLY, PHYSICAL_ONLY o NO_INFOMSGS:The values might vary except when the ESTIMATEONLY, PHYSICAL_ONLY, or NO_INFOMSGS options are specified:

 DBCC results for 'model'.    

 Service Broker Msg 9675, Level 10, State 1: Message Types analyzed: 13.    

 Service Broker Msg 9676, Level 10, State 1: Service Contracts analyzed: 5.    

 Service Broker Msg 9667, Level 10, State 1: Services analyzed: 3.    

 Service Broker Msg 9668, Level 10, State 1: Service Queues analyzed: 3.    

 Service Broker Msg 9669, Level 10, State 1: Conversation Endpoints analyzed: 0.    

 Service Broker Msg 9674, Level 10, State 1: Conversation Groups analyzed: 0.    

 Service Broker Msg 9670, Level 10, State 1: Remote Service Bindings analyzed: 0.    

 DBCC results for 'sys.sysrowsetcolumns'.    

 There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.    

 DBCC results for 'sys.sysrowsets'.    

 There are 97 rows in 1 pages for object 'sys.sysrowsets'.    

 DBCC results for 'sysallocunits'.    

 There are 195 rows in 3 pages for object 'sysallocunits'.    

 There are 0 rows in 0 pages for object "sys.sysasymkeys".    

 DBCC results for 'sys.syssqlguides'.    

 There are 0 rows in 0 pages for object "sys.syssqlguides".    

 DBCC results for 'sys.queue_messages_1977058079'.    

 There are 0 rows in 0 pages for object "sys.queue_messages_1977058079".    

 DBCC results for 'sys.queue_messages_2009058193'.    

 There are 0 rows in 0 pages for object "sys.queue_messages_2009058193".    

 DBCC results for 'sys.queue_messages_2041058307'.    

 There are 0 rows in 0 pages for object "sys.queue_messages_2041058307".    

 CHECKDB found 0 allocation errors and 0 consistency errors in database 'model'.    

 DBCC execution completed. If DBCC printed error messages, contact your system administrator.    

Si se especifica NO_INFOMSGS, DBCC CHECKDB devuelve el siguiente conjunto de resultados (mensaje):DBCC CHECKDB returns the following result set (message) when NO_INFOMSGS is specified:

 The command(s) completed successfully.

Si se especifica PHYSICAL_ONLY, DBCC CHECKDB devuelve el siguiente conjunto de resultados:DBCC CHECKDB returns the following result set when PHYSICAL_ONLY is specified:

 DBCC results for 'model'.    

 CHECKDB found 0 allocation errors and 0 consistency errors in database 'master'.  

 DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Si se especifica ESTIMATEONLY, DBCC CHECKDB devuelve el siguiente conjunto de resultados:DBCC CHECKDB returns the following result set when ESTIMATEONLY is specified.

 Estimated TEMPDB space needed for CHECKALLOC (KB)    

 -------------------------------------------------  

 13   

 (1 row(s) affected)   

 Estimated TEMPDB space needed for CHECKTABLES (KB)    

 --------------------------------------------------    

 57 

 (1 row(s) affected)  

 DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PermissionsPermissions

Requiere la pertenencia al rol fijo de servidor sysadmin o la función fija de base de datos db_owner.Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

EjemplosExamples

A.A. Comprobar la base de datos actual y otra base de datosChecking both the current and another database

En el ejemplo siguiente se ejecuta DBCC CHECKDB para la base de datos actual y para la base de datos AdventureWorks2012AdventureWorks2012.The following example executes DBCC CHECKDB for the current database and for the AdventureWorks2012AdventureWorks2012 database.

-- Check the current database.    
DBCC CHECKDB;    
GO    
-- Check the AdventureWorks2012 database without nonclustered indexes.    
DBCC CHECKDB (AdventureWorks2012, NOINDEX);    
GO    

B.B. Comprobar la base de datos actual, suprimiendo los mensajes informativosChecking the current database, suppressing informational messages

En el ejemplo siguiente se comprueba la base de datos actual y se suprimen todos los mensajes informativos.The following example checks the current database and suppresses all informational messages.

DBCC CHECKDB WITH NO_INFOMSGS;    
GO    

Vea tambiénSee Also

DBCC (Transact-SQL)DBCC (Transact-SQL)
Ver el tamaño del archivo disperso de una instantánea de base de datos (Transact-SQL)View the Size of the Sparse File of a Database Snapshot (Transact-SQL)
sp_helpdb (Transact-SQL)sp_helpdb (Transact-SQL)
Tablas del sistema ( Transact-SQL )System Tables (Transact-SQL)