Estados de arquivo

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System)

No 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 acessá-lo por uma instrução Transact-SQL, ele falhará apresentando 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 estado de arquivo pode ser definido como offline quando 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, confira RESTORE (Transact-SQL).

Um arquivo de banco de dados também é definido como OFFLINE quando um banco de dados está em recuperação registrada em massa ou completa e um arquivo é removido. A entrada em sys.master_files persiste até que um log de transações seja truncado após o valor de drop_lsn. Para obter mais informações, veja Truncamento do log de transações.
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