Compartilhar via


Estados de arquivo

Em SQL Server, o estado de um arquivo de banco de dados é mantido independentemente do estado do banco de dados. Um arquivo sempre está em um estado específico, como ONLINE ou OFFLINE. Para exibir o estado atual de um arquivo, use a exibição de catálogo sys.master_files ou sys.database_files . Se o banco de dados estiver offline, o estado dos arquivos poderá ser exibido da exibição de catálogo sys.master_files .

O estado dos arquivos em um grupo de arquivos determina a disponibilidade de todo o grupo. Para que um grupo de arquivos fique disponível, todos os seus arquivos devem estar online. Para exibir o estado atual de um grupo de arquivos, use a exibição de catálogo sys.filegroups . Se um grupo de arquivos estiver offline e você tentar acessar o grupo de arquivos por uma instrução Transact-SQL, ele falhará com um erro. Quando o otimizador de consulta cria planos de consulta para instruções SELECT, ele evita índices não clusterizados e exibições indexadas que residam em grupos de arquivos off-line, permitindo que essas instruções sejam bem-sucedidas. Porém, se o grupo de arquivos offline contiver o heap ou índice clusterizado da tabela de destino, as instruções SELECT falharão. Além disso, qualquer instrução INSERT, UPDATE ou DELETE que modifique uma tabela contendo um índice em um grupo de arquivos offline falhará.

Definições de estado de arquivo

A tabela a seguir define os estados de arquivo.

Estado Definição
ONLINE O arquivo está disponível para todas as operações. Os arquivos no grupo de arquivos primário sempre estão on-line se o próprio banco de dados estiver on-line. Se um arquivo no grupo de arquivos primário não estiver on-line, o banco de dados não estará on-line e os estados dos arquivos secundários serão indefinidos.
OFFLINE O arquivo não está disponível para acesso e talvez não esteja presente no disco. Os arquivos se tornam off-line por ação explícita do usuário e permanecem off-line até que uma ação adicional do usuário seja executada.

**Cuidado** Um arquivo só deve ser definido offline quando o arquivo está corrompido, mas pode ser restaurado. Um arquivo definido como off-line pode somente ser definido como on-line pela restauração do arquivo do backup. Para obter mais informações sobre como restaurar um único arquivo, consulte RESTORE (Transact-SQL).
RESTORING O arquivo está sendo restaurado. Os arquivos entram no estado de restauração devido a um comando de restauração que afeta todo o arquivo, não apenas uma restauração de página e permanece nesse estado até que a restauração esteja completa e o arquivo recuperado.
RECOVERY_PENDING A recuperação do arquivo foi adiada. Um arquivo entra nesse estado automaticamente devido a um processo de restauração em etapas no qual o arquivo não é restaurado e recuperado. Uma ação adicional é exigida do usuário para resolver o erro e permitir que o processo de recuperação seja concluído. Para obter mais informações, consulte Restaurações por etapas (SQL Server).
SUSPECT A recuperação do arquivo falhou durante um processo de restauração on-line. Se o arquivo estiver no grupo de arquivos primário, o banco de dados também será marcado como suspeito. Caso contrário, o arquivo será suspeito e o banco de dados ainda estará on-line.

O arquivo permanecerá no estado suspeito até que seja tornado disponível por um dos seguintes métodos:

Restauração e recuperação

DBCC CHECKDB com REPAIR_ALLOW_DATA_LOSS
DEFUNCT O arquivo foi descartado quando não estava on-line. Todos os arquivos em um grupo de arquivos tornam-se extintos quando um grupo de arquivos off-line é removido.

ALTER DATABASE (Transact-SQL)

Estados de banco de dados

Estados de espelhamento (SQL Server)

DBCC CHECKDB (Transact-SQL)

Arquivos e grupos de arquivos do banco de dados