网管程序员论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2105|回复: 0

自动定时重启sql server回收内存详细介绍

[复制链接]
发表于 2013-2-27 17:16:09 | 显示全部楼层 |阅读模式
最近为数据库服务器增加了内存,达到了最大支持的8G,数据库用的是mssql 2005 ,之前内存一直是4G的,不存在内存大和32位操作系统冲突的事情,32位操作系统单进程最大支持2G的内存,这样子的话内存就白加了,怎么办呢?

网上搜索了很多资料,发现微软提供了一个算是临时的解决方案吧,使用AWE来分配内存,这样子sqlserver占用的内存基本上可以达到系统总内存。但是,经过一段时间的运行,发现了一个问题,就是当内存占用增加到一定量(比如6G)的时候,内存还会一直增加下去,这样时间长了就会造成内存用完,甚至可能造成服务器当机,本站数据库服务器就因为这个在晚上自己死机了,造成访问中断。究其原因是因为AWE不能自动回收内存。

于是乎一个想法出来了,因为sqlserver重启时会自动回收内存,那么问题就变成了定时重新启动sqlserver ,大家都知道sqlserver有自动备份等功能,但是没有自动重启的功能。这时候我突然想到了windows自带的计划任务,我们可不可以利用计划任务来定时重新启动sqlserver呢?

现在脉络基本清楚,基于平时重新启动sqlserver 时经常提示要关闭自动备份功能(也就是sqlserver代理),于是我新建一个记事本,然后重命名为sql.bat ,单击右键编辑输入以下内容

net stop sqlserveragent
net stop mssqlserver
net start mssqlserver
net start sqlserveragent


基于这样的内容,自动运行时不会出现任何提示,不信大家可以试试看更换或者删减下上面的4个语句,运行后应该都会有提示,需要手工操作才可以。

下面就是在控制面板里面新建一个计划任务了,这里省掉。

windows自带的计划任务:

开始→程序→附件→系统工具→计划任务→打开添加任务计划。进入任务计划向导。

利用“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。“任务计划”在每次启动 Windows XP 的时候启动并在后台运行。

使用“任务计划”可以完成以下任务:

计划让任务在每天、每星期、每月或某些时刻(例如系统启动时)运行。
更改任务的计划。
停止计划的任务。
自定义任务在计划时刻的运行方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|最新更新|网管程序员社区 鄂ICP备11008024号-3

GMT+8, 2019-9-20 11:58 , Processed in 0.093600 second(s), 21 queries .

Powered by 网管论坛

© 2001-2018 www.027safe.com Inc.

快速回复 返回顶部 返回列表