Partilhar 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 off-line, 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 off-line e você tentar acessá-lo 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 pode não estar 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.

Observação sobre cuidadosCuidado

Um arquivo só deve ser definido como off-line quando o arquivo estiver corrompido, mas puder 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.

Conteúdo relacionado

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