由注册表引起的 I/O 操作发生了不可恢复的错误修复方法

服务器出现此问题:
很多使用Windows Server 2003系统的用户都会收到如下错误:
事件类型: 错误
事件来源: Application Popup
事件种类: 无
事件 ID: 333
日期: 2007-8-11
事件: 8:48:03
用户: N/A
计算机: LZ_YQ
描述:
由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。
然后系统失去响应,需要重新启动。
事件ID是333,英文日志为
Event Type: Error
Event Source: Application Popup
Event Category: None
Event ID: 333
Date: date
Time: time
User: N/A
Computer: computer name
Description: An I/O operation initiated by the Registry failed unrecoverably. The Registry could not read in, or write out, or flush, one of the files that contain the system's image of the Registry.
该错误原因是:在非分页内存或在分页的池内存不足暂时可能会出现此问题。 系统保留录制类事件,直到重新启动计算机时或相关的配置单元是卸载,即使在临时内存 insufficiency 停止。
请参看如下kb,由于该补丁处于测试阶段,因此需要通过邮件下载对应补丁:
http://support.microsoft.com/kb/970054
这问题主要是有内存耗尽出现的问题,请加大内存或者查找耗内存的元凶

服务器开始阶段性的出现死机状态了。隔一段时间就无法连接了。重启后正常,过一段时间又是同样的问题。

事件查看器中有大量的同样报错:
事件ID:2020
描述:服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的。

事件ID:333
描述:由注册表引起的 I/O 操作发生了不可恢复的错误。 注册表将不能读取、写出或刷新包含注册表系统图像的其中一个文件。

尝试用以下方法解决这个问题,效果还有待观察:
1、启动注册表编辑器(开始->运行->Regedt32.exe)。
2、在注册表中找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Memory Management
3、在编辑菜单上,单击添加数值,然后添加下面的注册表值(如果下面的注册表值已经存在,那么按照以下的参考值进行调整):
(1)、数值名称:PoolUsageMaximum
数据类型:REG_DWORD
基数:十进制
数值数据:40
将该值设置为 40 可以通知内存管理器在达到 PagedPoolMax 的 40% 而不是默认设置 80% 时开始修整过程。

(2)、数值名称:PagedPoolSize
数据类型:REG_DWORD
基数:十六进制
数值数据:0xFFFFFFFF
将 PagedPoolSize 设置为 0xFFFFFFFF (-1) 可为计算机分配最大的页面缓冲池以取代其他资源。

4、退出注册表编辑器。

后记(2011年7月28日):
按照以上进行调整以后,在第二天的早上,服务器照样出现死机状况。怀疑是不是服务器中毒了,进行查毒,发现服务器中毒了,清理病毒后,进行了数据库的重装。

后记(2011年7月30日):
服务器又挂掉了,网上了查了333问题,尝试按照http://support.microsoft.com/kb/970054进行处理。
第一步:下载安装补丁程序,要应用此修补程序,计算机必须安装有 Windows Server 2003 Service Pack 1 或 Service Pack 2。

微软官方下载378286_CHS_i386_zip.exe

本站下载378286_CHS_i386_zip

第二步:要启用此修补程序,请添加以下注册表项,然后将值设置为 1 或 2。
位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
名称:RegistryFlushErrorSubside
类型:REG_DWORD
数值:1 或 2
如果您将 RegistryFlushErrorSubside 注册表项的值设置为 1,则系统在发生临时内存不足时仅记录一次 333 事件。如果将该值设置为 2,则系统会触发 Stop 错误以进行诊断。

后记(2011年8月1日):
最后的解决办法,也是最无奈、最有效的解决办法。试了N种办法,都没法解决,以前好好的,怀疑是不是系统升级了什么补丁引起的问题,一怒之下,把6月份以后的系统补丁删个干净,结果世界安静了,服务器也不死机了。

(0)

相关推荐

  • 由注册表引起的 I/O 操作发生了不可恢复的错误修复方法

    服务器出现此问题: 很多使用Windows Server 2003系统的用户都会收到如下错误: 事件类型: 错误 事件来源: Application Popup 事件种类: 无 事件 ID: 333 日期: 2007-8-11 事件: 8:48:03 用户: N/A 计算机: LZ_YQ 描述: 由注册表引起的 I/O 操作发生了不可恢复的错误. 注册表将不能读取.写出或刷新包含注册表系统图像的其中一个文件. 然后系统失去响应,需要重新启动. 事件ID是333,英文日志为 Event Type:

  • C# 注册表 操作实现代码

    其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG. 下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息.该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHIN

  • c#注册表操作类分享

    复制代码 代码如下: /// <summary>/// 注册表基项静态域/// /// 主要包括:/// 1.Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键/// 2.Registry.CurrentUser 对应于HKEY_CURRENT_USER主键/// 3.Registry.LocalMachine 对应于 HKEY_LOCAL_MACHINE主键/// 4.Registry.User 对应于 HKEY_USER主键/// 5.Registry.

  • 二十九、教你备份与恢复Windows 2000注册表

    二十九.教你备份与恢复Windows 2000注册表  Windows 2000将它的配置信息存储在注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注

  • 对注册表进行编辑的三种途径

    了解了关于注册表的基本内容之后,我们就可以正式进入我们所要讨论的话题了:对注册表进行编辑修改!一般来说,要想对注册表进行增.删.改,可以有以下三种途径: 第一种途径:直接修改(最不安全,但最直接最有效) 就是通过注册表编辑器直接的来修改注册表的键值数据项,这样做会避免在注册表中留下垃圾(虽然都很小,但越来越多会拖慢系统速度),但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎. 注册表编辑器是一个可以让你改变系统注册设定的高级工具WIN98注册表编辑器的常用操作注册表编辑器是一

  • 注册表中存储数据库链接字符串的方法

    数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的

  • 自动化测试读写64位操作系统的注册表

    非Web程序(桌面程序)的设置一般都存在注册表中. 给这些程序做自动化测试时, 需要经常要跟注册表打交道. 通过修改注册表来修改程序的设置. 本章介绍如何利用C#程序如何操作注册表, 特别是如何操作64位操作系统的注册表. 阅读目录 自动化测试经常需要修改注册表 Windows注册表简介 C#修改注册表 32位机器和64位机器注册表的区别 C#程序访问64位操作系统的注册表 自动化测试经常需要修改注册表 很多系统的设置(比如:IE的设置)都是存在注册表中. 桌面应用程序的设置也是存在注册表中.

  • Win2k注册表备份恢复详解

    Windows 2000 将它的配置信息存储在名为注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000 在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注册表中的某一主键或子键保存为文本文件,或者打印出

  • 注册表应用100例—注册表使用全攻略之十一

    注册表应用100例-注册表使用全攻略之十一 1 修改窗口滚动条的大小(Windows 9x/2000/XP)(1)打开注册表编辑器.(2)打开HKEY_CURRENT_USER\Control Panel\Desktop\Windows Metrics子键.(3)右边窗口中的ScrollHeight和ScrollWidth是窗口滚动条的高和宽,默认值为-270(均以Windows 9x为例,Windows 2000/XP的默认值与其相差不大),分别双击ScrollHeight和ScrollWid

  • 浅谈Windows XP的注册表备份

    作者:高山 经常系统错误,有时甚至引起系统崩溃的情况,这时备份就显得很重要了,没有人愿意系统崩溃而只得重新装Windows XP.你可以选用不同的方法来备份你的注册表,你也可以把你的备份版本放在多种介质上,但是你首先必须明白你的计算机网络正使用何种文件系统类型.Windows XP支持FAT和NTFS两种不同的文件系统. 在这里我先介绍一下FAT,FAT32以及NTFS. 文件分配表(FAT) 一种供MS-DOS及其它Windows操作系统对文件进行组织与管理的文件系统.文件分配表(FAT)是当

随机推荐