最近為資料庫伺服器增加了記憶體,達到了最大支援的8G,資料庫用的是mssql 2005 ,之前記憶體一直是4G的,不存在記憶體大和32位作業系統衝突的事情,32位作業系統單進程最大支援2G的記憶體,這樣子的話記憶體就白加了,怎麼辦呢? 網上搜索了很多資料,發現微軟提供了一個算是臨時的解決方案吧,使用AWE來分配記憶體,這樣子sqlserver佔用的記憶體基本上可以達到系統總記憶體。
&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 但是,經過一段時間的運行,發現了一個問題,就是當記憶體佔用增加到一定量(比如6G)的時候,記憶體還會一直增加下去,這樣時間長了就會造成記憶體用完,甚至可能造成伺服器當機, 課件下載論壇 的資料庫伺服器就因為這個在晚上自己死機了, 造成訪問中斷。 究其原因是因為AWE不能自動回收記憶體。
於是乎一個想法出來了,因為sqlserver重啟時會自動回收記憶體,那麼問題就變成了定時重新開機sqlserver ,大家都知道sqlserver有自動備份等功能,但是沒有自動重啟的功能。 這時候我突然想到了windows自帶的計畫任務,我們可不可以利用計畫任務來定時重新開機sqlserver呢?
現在脈絡基本清楚,基於平時重新開機sqlserver 時經常提示要關閉自動備份功能(也就是sqlserver代理),於是我新建一個記事本,然後重命名為sql.bat ,按一下右鍵編輯輸入以下內容:
net stop sqlserveragent
net stop mssqlserver
net start mssqlserver
net start sqlserveragent
基於這樣的內容,自動運行時不會出現任何提示,不信大家可以試試看更換或者刪減下上面的4個語句,運行後應該都會有提示,需要手工操作才可以。 下面就是在控制台裡面新建一個計畫任務了,這裡省掉。
轉載請注明出處HTTP://www.kejianxiazai.com。