一.排查问题
控制面板 -> 管理工具 -> 事件查看器 -> Windows日志 -> 应用程序
根据出错时间点找到错误日志:地址窗口化扩展插件(AWE)要求'锁定内存页'特权,但在该进程的访问标记中当前未提供该权限。
二. 可能是我在SQLService设置了最大内存的原因
三.解决问题
方法1:
运行-->
gpedit.msc ->Windows 设置->安全设置->本地策略->用户权限分配->内存中锁定页面 这里加上sql server的启动帐号
gpedit.msc ->Windows Settings->Security Settings->Local Policies->User Rights Assignment->Lock pages in memory 这里加上sql server的启动帐号.
方法1:
运行->services.msc,找到sql服务,选中这几个服务右击->属性->登录->选中第一行本地系统账户->确定,然后重启这个服务!
补充
以上方法应用之后虽然不会出现应用程序池或者web站点自动停用的情况,但处理一些数据量比较大,消耗内存多的操作时会出错。
感觉是sql service用了内存之后似乎不会自动回收,导致随着时间推移内存占用越来越多,正好我们的系统每天都要发一些报表,遇到这类数据量大一些的操作就会报错。
为了解决这个问题我到网上抄了一段批处理并加入定时任务,每天定时重启一次sql service服务。
一.新建文本文档复制以下代码,保存并修改后缀名为bat
net stop sqlserveragent
net stop mssqlserver
net start mssqlserver
net start sqlserveragent
二.添加定时任务
操作系统为window server 2008
1.开始->程序->附件->系统工具->任务计划程序
2.选中 "任务计划程序库",右边点"新文件夹",输入runBat
3.选中左边的"runBat",右边点"创建基本任务"
4.输入名称点下一步
5.选择触发间隔
6.选择启动程序
7.正确选择程序或脚本选项后,起始于我也填写了脚本所在的文件夹。
8.完成