文档首页/ 弹性云服务器 ECS/ 用户指南 (阿布扎比区域)/ 常见问题/ 数据库应用/ 执行磁盘初始化脚本后,Oralce、MySQL和SQL Server等数据库系统日志出现Msg 823错误怎么办?
更新时间:2024-04-15 GMT+08:00

执行磁盘初始化脚本后,Oralce、MySQL和SQL Server等数据库系统日志出现Msg 823错误怎么办?

问题描述

云服务器新增磁盘,开机自动执行磁盘初始化脚本后,Oralce、MySQL和SQL Server等数据库系统日志Msg 823错误。

可能原因

磁盘初始化脚本WinVMDataDiskAutoInitialize.ps1执行过程中会调用diskpart启用virtual disk服务,执行完毕后会退出diskpart,停用virtual disk服务。由于系统内置WinVMDataDiskAutoInitialize.ps1设置开机自启动和客户数据库业务开机自启动时间段重叠了,可能会导致I/O操作错误。

数据库使用Windows API的(例如 ReadFile、 写文件,ReadFileScatter,WriteFileGather)执行I/O操作。执行这些I/O操作时,数据库会检查任何与这些API调用相关联的错误情况。如果这些API调用失败并出现操作系统错误,数据库将报告对应错误823。单击了解微软官方指导MSSQLSERVER - 数据库引擎错误

823错误消息包含以下信息:

  • I/O操作是写入还是读取请求
  • 尝试I/O操作的文件中的偏移量
  • 执行I/O操作的文件
  • 操作系统的错误代码和错误说明

823错误消息通常表示底层存储计算机硬件或处于I/O请求路径中的驱动程序存在问题,当文件系统中存在矛盾或数据库文件已损坏时用户可能会遇到此错误。

处理方法

  1. 登录弹性云服务器,打开运行对话框,输入“services.msc”并按回车键,查看Windows系统的服务。
  2. 查找virtual disk服务,并确保virtual disk服务停止状态。
    图1 查看virtual disk服务状态

    如果virtual disk服务的状态是运行,您可以选择以下方法停止virtual disk服务。

    • 在Windows系统的服务页面,选择virtual disk服务,单击右键选择“停止”。
    • 打开powershell,执行以下命令,停止virtual disk服务。

      Get-Service -Name "vds" | Where {$_.status -eq 'Running'} | Stop-Service -Force

  3. 禁止磁盘初始化脚本WinVMDataDiskAutoInitialize.ps1在云服务器开机时自动初始化Windows数据盘。
    1. 打开运行对话框,输入“taskschd.msc”并按回车键,打开“任务计划程序”页面。
    2. 打开“任务计划程序库”,在计划任务列表找到要删除的计划任务“WinVMDataDiskInitialize”。
      图2 结束WinVMDataDiskInitialize
  4. 重启云服务器或将对应数据盘脱机后重新联机。
    1. 打开运行对话框,输入“diskmgmt.msc”并按回车键,进入磁盘管理页面。
    2. 选择磁盘名称所属区块,单击右键选择“脱机”。
      图3 磁盘脱机
    3. 选择磁盘名称所属区块,单击右键选择“联机”。
      图4 磁盘联机