Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Detalhes
| Atributo | Valor |
|---|---|
| Nome do produto | SQL Server |
| ID do evento | 5009 |
| Origem do Evento | MSSQLSERVER |
| Componente | SQLEngine |
| Nome simbólico | ALT_BADDISKS |
| Texto da mensagem | Um ou mais arquivos listados na instrução não foram encontrados ou não foram inicializados |
Explicação
Esse erro indica que você especificou um nome de arquivo ou IDD de arquivo no ALTER DATABASE comando DBCC SHRINK* que não pôde ser resolvido.
Considere o cenário a seguir.
- Você tem um banco de dados do Microsoft SQL Server que usa um modelo de recuperação completo ou bulk-logged.
- Você adiciona um novo arquivo de dados chamado db_file1 ao banco de dados.
- Você define o tipo de arquivo do arquivo
db_file1como dados. - Você percebe que especificou o tipo de arquivo incorretamente.
- Você remove o arquivo
db_file1e faz backup do log de transações desse banco de dados. - Você adiciona um novo arquivo de log chamado db_file1 ao mesmo banco de dados.
- Você tenta remover o arquivo de log que é nomeado db_file1 usando a ALTER DATABASE instrução ou usando SQL Server Management Studio.
Além disso, uma mensagem de erro semelhante à seguinte é exibida:
Mensagem 5009, Nível 16, Estado 9, Linha 1: um ou mais arquivos listados na instrução não foram encontrados ou não foram inicializados.
Possíveis causas:
Esse problema ocorre se o nome lógico do arquivo que você tentar remover não for exclusivo nas tabelas do catálogo do sistema. Por exemplo, esse problema ocorre se o arquivo existia no banco de dados anteriormente e foi removido.
Quando você tenta remover um arquivo que tem o mesmo nome lógico, o SQL Server tenta remover o arquivo lógico descartado. Isso resulta na mensagem de erro.
Ação do usuário
Para encontrar uma solução alternativa para esse problema, siga estas etapas.
Observação
Essas etapas fazem com que os valores da ID de arquivo sejam reutilizados.
Use a ALTER DATABASE instrução para criar um novo arquivo lógico com um nome diferente e o mesmo tipo de dado. Por exemplo, nomeie o arquivo lógico como
different_remove_file_nameem vez dedb_file1, como no seguinte exemplo:ALTER DATABASE [DBNAME] ADD FILE ( NAME = N'different_remove_file_name', FILENAME = N'D:\MSSQL.1\MSSQL\DATA\db_file1.ndf', SIZE = 1MB, MAXSIZE = 1MB)Observação
Você pode usar qualquer nome ou caminho de arquivo.
Use a ALTER DATABASE instrução para remover o arquivo lógico que você criou na etapa 1, como no exemplo a seguir:
ALTER DATABASE [DBNAME] REMOVE FILE [different_remove_file_name]Crie um backup de log de transações do banco de dados.
Tente remover o arquivo lógico chamado db_file1 novamente.