¿Qué debo hacer si se produce un error Msg 823 en los logs del sistema de Oracle, de MySQL o de SQL Server después de ejecutar un script de inicialización de disco?
Síntomas
Después de agregar un disco a un ECS y el script de inicialización del disco se ejecuta automáticamente al iniciar el ECS, se produce el error Msg 823 en los logs del sistema de base de datos de Oracle, de MySQL y de SQL Server.
Causas posibles
Durante la ejecución del script de inicialización de disco WinVMDataDiskAutoInitialize.ps1, se invoca a diskpart para habilitar el servicio de disco virtual. Una vez completada la ejecución, se sale diskpart y se deshabilita el servicio de disco virtual. El período de inicio automático del WinVMDataDiskAutoInitialize.ps1 integrado se superpone al período de inicio automático de los servicios de base de datos del cliente, lo que puede causar errores de operación de E/S.
La base de datos utiliza API de Windows (por ejemplo, ReadFile, WriteFile, ReadFileScatter, WriteFileGather) para realizar operaciones de E/S de archivos. Después de realizar estas operaciones de E/S, la base de datos comprueba si hay alguna condición de error asociada con estas invocaciones de API. Si las invocaciones de API fallan con un error del sistema operativo, la base de datos notifica el error 823. Para obtener más información, consulte u obtenga las instrucciones oficiales de Microsoft, consulte error 823 de MSSQLSERVER.
El mensaje de error 823 contiene la siguiente información:
- Si la operación de E/S es una solicitud de lectura o escritura
- El desplazamiento dentro del archivo donde se intentó la operación de E/S
- El archivo de base de datos en el que se realizó la operación de E/S
- El código de error del sistema operativo y la descripción del error entre paréntesis
El mensaje de error 823 generalmente indica que hay un problema con el sistema de almacenamiento subyacente o el hardware o un controlador que está en la ruta de la solicitud de E/S. Puede encontrar este error cuando hay incoherencias en el sistema de archivos o si el archivo de base de datos está dañado.
Solución
- Inicie sesión en el ECS, abra el cuadro de diálogo Run, escriba services.msc y pulse Enter.
- Busque el servicio de disco virtual y asegúrese de que se ha detenido.
Figura 1 Comprobación del estado del disco virtual
Si el servicio de disco virtual se está ejecutando, deténgalo de cualquiera de las siguientes maneras:
- Deshabilite la secuencia de comandos de inicialización de disco WinVMDataDiskAutoInitialize.ps1 para que inicialice automáticamente los discos de datos de Windows al iniciar ECS.
- Abra el cuadro de diálogo Run, escriba taskschd.msc y pulse Enter. Se muestra la ventana Task Scheduler.
- Abra Task Scheduler Library, haga clic con el botón derecho en WinVMDataDiskInitialize en la lista de tareas programadas y elija End.
Figura 2 Finalizar WinVMDataDiskInitialize
- Reinicie el ECS o lleve el disco de datos sin conexión y, a continuación, en línea.
- Abra el cuadro de diálogo Run, escriba diskmgmt.msc y pulse Enter. Aparece la ventana Disk Management.
- Haga clic con el botón derecho del ratón en el bloque al que pertenece el disco y elija Offline.
Figura 3 Configuración del disco sin conexión
- Haga clic con el botón derecho en el bloque al que pertenece el disco y elija Online.
Figura 4 Configuración del disco en línea