Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Detalles
| Attribute | Valor |
|---|---|
| Nombre del producto | SQL Server |
| Id. de evento | 5009 |
| Origen de eventos | MSSQLSERVER |
| Componente | SQLEngine |
| Nombre simbólico | ALT_BADDISKS |
| Texto del mensaje | No se encuentra o no se puede inicializar uno o más archivos enumerados en la instrucción |
Explicación
Este error indica que especificaste un nombre de archivo o un fileID en ALTER DATABASE el comando DBCC SHRINK* que no se pudo resolver.
Considere el caso siguiente:
- Tiene una base de datos de Microsoft SQL Server que usa un modelo de recuperación completo o optimizado para cargas masivas de registros.
- Agrega un nuevo archivo de datos denominado db_file1 a la base de datos.
- Establece el tipo de archivo de
db_file1como datos. - Se da cuenta de que ha especificado el tipo de archivo de forma incorrecta.
- Quita el archivo
db_file1y, después, hace una copia de seguridad del registro de transacciones de esta base de datos. - Agrega un nuevo archivo de registro denominado db_file1 a la misma base de datos.
- Intentas eliminar el archivo de registro que se llama db_file1 usando la ALTER DATABASE sentencia o usando SQL Server Management Studio.
En esta situación, recibe un mensaje de error similar al siguiente:
Mensaje 5009, nivel 16, estado 9, línea 1 No se encuentra o no se puede inicializar uno o más archivos enumerados en la instrucción.
Causas posibles:
Este problema se produce si el nombre lógico del archivo que intenta quitar no es único en las tablas del catálogo del sistema. Por ejemplo, este error se genera si el archivo existía anteriormente en la base de datos y se quitó.
Al intentar quitar un archivo con el mismo nombre lógico, SQL Server intenta quitar el archivo lógico quitado. lo que da como resultado este mensaje de error.
Acción del usuario
Para solucionar este problema, siga estos pasos:
Nota:
Estos pasos hacen que se reutilicen los valores del identificador de archivo.
Utiliza la ALTER DATABASE instrucción para crear un nuevo archivo lógico que tenga un nombre diferente y el mismo tipo de datos. Por ejemplo, asigne al archivo lógico el nombre
different_remove_file_nameen lugar dedb_file1, como en el siguiente ejemplo: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)Nota:
Puede usar cualquier nombre de archivo o cualquier ruta de acceso de archivo.
Usa la ALTER DATABASE sentencia para eliminar el archivo lógico que creaste en el paso 1, como en el siguiente ejemplo:
ALTER DATABASE [DBNAME] REMOVE FILE [different_remove_file_name]Cree una copia de seguridad del registro de transacciones de la base de datos.
Intente quitar de nuevo el archivo lógico con el nombre db_file1.