Estados de los archivos

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

En SQL Server, el estado de un archivo de bases de datos se mantiene independientemente del estado de la base de datos. Un archivo siempre está en un estado específico, como ONLINE o OFFLINE. Para ver el estado actual de un archivo, use la vista de catálogo sys.master_files o sys.database_files . Si la base de datos está sin conexión, el estado de los archivos se puede ver desde la vista de catálogo sys.master_files .

El estado de los archivos en un grupo de archivos determina la disponibilidad de todo el grupo de archivos. Para que un grupo de archivos esté disponible, todos los archivos del grupo de archivos deben estar en línea. Para ver el estado actual de un grupo de archivos, utilice la vista de catálogo sys.filegroups . Si un grupo de archivos está sin conexión e intenta tener acceso al grupo de archivos mediante una instrucción Transact-SQL, devolverá un error. Cuando el optimizador de consultas crea planes para instrucciones SELECT, evita índices no clúster y vistas indizadas que residen en grupos de archivos sin conexión, permitiendo que estas instrucciones tengan éxito. No obstante, si el grupo de archivos sin conexión contiene el montón o el índice clúster de la tabla de destino, las instrucciones SELECT no funcionarán. Adicionalmente, cualquier instrucción INSERT, UPDATE o DELETE que modifique una tabla con cualquier índice en un grupo de archivos sin conexión no funcionará.

Definiciones de estado de los archivos

En la siguiente tabla se definen los estados de los archivos.

Estado o provincia Definición
ONLINE El archivo está disponible para todas las operaciones. Los archivos del grupo de archivos principal siempre están en línea si la base de datos lo está. Si un archivo del grupo de archivos principal no está en línea, la base de datos no está en línea y los estados de los archivos secundarios no están definidos.
OFFLINE El archivo no está disponible para su acceso y puede no estar presente en el disco. Los archivos pasan a estar sin conexión por una acción explícita del usuario y permanecen sin conexión hasta que se produce una acción adicional del usuario.

** Precaución ** Un archivo solo tiene que establecerse como sin conexión cuando está dañado, pero se puede restaurar. Un archivo que está sin conexión solo se puede poner en línea restaurándolo de la copia de seguridad. Para obtener más información sobre cómo restaurar un único archivo, vea RESTORE (Transact-SQL).

Un archivo de base de datos también se establece como OFFLINE cuando una base de datos se encuentra en un estado de recuperación de registros masiva o completa y se descarta un archivo. La entrada de sys.master_files persiste hasta que un registro de transacciones se trunca más allá del valor drop_lsn. Para obtener más información, vea Truncamiento del registro de transacciones.
RESTORING Se está restaurando el archivo. Los archivos entran en el estado de restauración a causa de un comando de restauración que afecta a todo el archivo y permanecen en ese estado hasta que se completa la restauración y se recupera el archivo.
RECOVERY PENDING Se ha pospuesto la recuperación del archivo. Un archivo entra en este estado automáticamente a causa de un proceso de restauración por etapas en el que el archivo no se restaura ni recupera. Se necesita una acción adicional por parte del usuario para resolver el error y permitir que se complete el proceso de recuperación. Para obtener más información, vea Restauraciones por etapas (SQL Server).
SUSPECT La recuperación del archivo no ha sido correcta durante un proceso de restauración en línea. Si el archivo está en el grupo de archivos principal, la base de datos también se marca como sospechosa. De lo contrario, solo es sospechoso el archivo y la base de datos sigue estando en línea.

El archivo permanecerá en el estado sospechoso hasta que esté disponible mediante uno de los siguientes métodos:

Restauración y recuperación

DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS
DEFUNCT El archivo se quitó cuando no estaba en línea. Todos los archivos de un grupo de archivos pasan a estar inactivos cuando se quita un grupo de archivos sin conexión.

ALTER DATABASE (Transact-SQL)

Estados de base de datos

Estados de creacion de reflejo (SQL Server)

DBCC CHECKDB (Transact-SQL)

Archivos y grupos de archivos de base de datos