- 1. Microsoft SQL Server 2000(已包含有SP4升級補丁程...
- 2. MySQL(for Windows 32Bit)官方最新下載 V5.5.13
- 3. MySQL(for Windows 64Bit)最新官方下載 V5.5.13
- 4. Apache HTTP Server(最流行的網頁服務器軟件之一) ...
- 5. phpMyAdmin(通過互聯網控制操作MYSQL的軟件) V3.4....
- 6. Access與MYSQL互轉 Access2MSSQL PRO v3.0.0 英文綠...
- 7. Http File Server(http文件服務器)最新下載 V2.30 ...
- 8. phpMyAdmin 3.4.0 RC2 多語綠色版_很方便的網絡遠M...
- 9. SqlDbAid 1.5.7.0 綠色版 MSSQL腳本創建與編輯工具
- 10. Microsoft SQL Server 2000 Personal Edition 中文...
手工調整Sql Server2005數據庫內存 提高內存利用率
作者: 來源: 發布時間:2011-5-16 18:02:37 點擊:
我有一臺數據庫服務器,32位,操作系統是Windows2003企業版,4G內存,320G存儲空間,使用SQLSERVER2005 數據庫管理系統,里邊有若干個數據庫,平時主要處理大量的業務外,還設置了一些同步,由于及時優化,CPU 一直保持在5%以下,各項主要指標觀察下來一直正常,如數據庫的緩沖命中率保持在95%以上等,所以平時就以默認安裝的模式運行著,本以為SQLSERVER2005能合理的分配內存,至少比SQLSERVER2000有了很大的改進,且操作系統也由Windows 2000Server更新為Windows 2003,內存不足時無論是系統還是數據庫本身都會自動調整內存(Sqlserver2000需要手工調整,可Google一下),最近觀察不管是什么時候內存使用都不超過2G,且SQLSERVER2005占用1.7G的現象,開始以為是數據數內存足夠了,也沒有在意,后來越想越覺得有問題,當操作大表時,數據庫占用的內存都有任何改變,于是Google一下才發現也需要手工調整,當然是原因一大堆,想想解釋得也合理。于是也及時進行了調整,效果還不錯。
這里把調整的步驟講給大家,希望有同樣問題的朋友參考參考:
1.打開操作系統啟動時PAE 配置項;
步驟:找到系統安裝的引導位置的目錄下找到boot.ini文件,默認是隱藏只讀的,找到 Windows2003 啟動配置,在后面加上空格 /PAE ,保存;重啟
示例所示:
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE
2.打開組策略,添加數據庫運行所依賴的帳號有權進行鎖定內存;大部分情況下,數據庫運行的帳號都是系統級的帳號,如administrator 或者是 administrators組的帳號,當然也有處于安全考慮的給了一個運行權限很小的帳號,只能運行數據庫;所以必須授權該帳號具有鎖定內存的權限;
步驟:開始->運行->gpedit.msc->組策略->計算機設置->windows配置->安全設置->本地策略->用戶權限分配->鎖定內存頁->本地安全策略設置->添加->選擇運行的帳號或者組;
3.重啟服務器,遠程維護的要查看boot.ini是否正確,切起切起,否則后果可想而知;
4.配置數據庫,重啟后操作系統已支持大內存了,但數據庫還是需要配置的;默認都未配置;執行以下命令即可
步驟:打開查詢分析器,進行以下操作,這里以3G內存給數據庫使用為例進行操作,這幾條命令分別含義是:打開高級選項,打開鎖定內存,設置最大內存,最好是一起完成;
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 3072
RECONFIGURE
GO
5.重啟數據庫,當配置項手工配置好后,需要重啟數據庫,這時你就發現SQLSERVER2005數據庫占用多大的內存了,再看看數據庫的屬性也改變了,AWE上打了勾,最大內存改為3G了,以前是很大的,忽悠我^-^
注意點:
1.當操作系統PAE未打開時,配置數據庫是沒有用的,數據庫會提示出錯,告訴你內存鎖定系統當前不支持;
2.Boot.ini 文件是隱藏的,只讀的,先修改屬性后再操作;
3.數據庫重啟前最好先備份,防患于未然;
4.不知是操作系統問題,還是盜版的問題,我的SQLSERVER2005在進程任務管理器只有180M,經過和朋友確認,才知是顯示錯誤,其實也不知是錯誤還是就是這樣的,我想有一種可能,那就是系統把3G劃給數據庫使用后,自己只有1G,他只知道自己分配的那一塊給數據庫系統180M吧;
5.數據庫的內存設置有一個合理限度,根據服務器業務多少確定,但不能超過物理內存,我覺得至少得留500M給系統吧,另外如果系統中還有其他的服務在使用也要考慮進去,否則系統內存不足,引起磁盤頁面交換頻繁,反而使性能有所下降。
這里把調整的步驟講給大家,希望有同樣問題的朋友參考參考:
1.打開操作系統啟動時PAE 配置項;
步驟:找到系統安裝的引導位置的目錄下找到boot.ini文件,默認是隱藏只讀的,找到 Windows2003 啟動配置,在后面加上空格 /PAE ,保存;重啟
示例所示:
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE
2.打開組策略,添加數據庫運行所依賴的帳號有權進行鎖定內存;大部分情況下,數據庫運行的帳號都是系統級的帳號,如administrator 或者是 administrators組的帳號,當然也有處于安全考慮的給了一個運行權限很小的帳號,只能運行數據庫;所以必須授權該帳號具有鎖定內存的權限;
步驟:開始->運行->gpedit.msc->組策略->計算機設置->windows配置->安全設置->本地策略->用戶權限分配->鎖定內存頁->本地安全策略設置->添加->選擇運行的帳號或者組;
3.重啟服務器,遠程維護的要查看boot.ini是否正確,切起切起,否則后果可想而知;
4.配置數據庫,重啟后操作系統已支持大內存了,但數據庫還是需要配置的;默認都未配置;執行以下命令即可
步驟:打開查詢分析器,進行以下操作,這里以3G內存給數據庫使用為例進行操作,這幾條命令分別含義是:打開高級選項,打開鎖定內存,設置最大內存,最好是一起完成;
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 3072
RECONFIGURE
GO
5.重啟數據庫,當配置項手工配置好后,需要重啟數據庫,這時你就發現SQLSERVER2005數據庫占用多大的內存了,再看看數據庫的屬性也改變了,AWE上打了勾,最大內存改為3G了,以前是很大的,忽悠我^-^
注意點:
1.當操作系統PAE未打開時,配置數據庫是沒有用的,數據庫會提示出錯,告訴你內存鎖定系統當前不支持;
2.Boot.ini 文件是隱藏的,只讀的,先修改屬性后再操作;
3.數據庫重啟前最好先備份,防患于未然;
4.不知是操作系統問題,還是盜版的問題,我的SQLSERVER2005在進程任務管理器只有180M,經過和朋友確認,才知是顯示錯誤,其實也不知是錯誤還是就是這樣的,我想有一種可能,那就是系統把3G劃給數據庫使用后,自己只有1G,他只知道自己分配的那一塊給數據庫系統180M吧;
5.數據庫的內存設置有一個合理限度,根據服務器業務多少確定,但不能超過物理內存,我覺得至少得留500M給系統吧,另外如果系統中還有其他的服務在使用也要考慮進去,否則系統內存不足,引起磁盤頁面交換頻繁,反而使性能有所下降。
上一篇:教你家用路由器如何設置 下一篇: 快速修復RHEL6.0本地源錯誤
[收藏此文章]