SQL Server服務器的配置選項屬於那種人們了解較少且經常誤用的選項。當一個技術支持人員要求你按照某種方式調整一個選項、而另一個技術支持人員卻要求你按照另一種完全對立的方式調整同一個選項時,你可能對這些選項的真正含義感到困惑。有關這些選項的資料很缺乏,至少可以說不夠詳細和清楚。在SQL Server 2000中,Microsoft減少了幾個配置選項,讓SQL Server動態配置它們,從而減少了幾個容易混淆的地方。同時,Microsoft又為SQL Server 2000新增了兩個服務器配置選項,調整了一些數據庫選項,從而稍許簡化了數據庫管理員的工作。
新增的服務器選項
就象訪問大多數企業版服務器的屬性一樣,我們不能在SQL Server Enterprise Manager中通過服務器屬性窗口訪問SQL Server 2000新增的兩個服務器選項。作為防止用戶由於不小心而錯誤配置服務器的一個安全措施,Microsoft沒有把這些高級配置選項放入Enterprise Manager。相反,我們必須使用T-SQL/sp_configure系統存儲過程去訪問這些高級選項。我們可以用不帶參數運行sp_configure的方法查看服務器的當前配置。在執行結果中,config_value是SQL Server從Master數據庫syscurconfigs表提取出來的數據,它顯示了服務器的當前配置;run_value列顯示了執行sp_configure時SQL Server正在使用的選項,SQL Server在sysconfigures表中存儲這些數據。修改某個選項之後,我們必須執行RECONFIGURE命令(在大多數情況下,還要重新啟動SQL Server)才能讓新的run_value顯示出來。本文所討論的所有選項都要求重新啟動SQL Server。
服務器選項總共有36個,默認情況下,sp_configure存儲過程只顯示其中的10個,顯示結果中不包含高級選項,而且所有新的SQL Server配置選項都不會出現在這個精簡的清單中。然而,我們可以使用show advanced options命令參數讓SQL Server顯示出所有選項。要啟用show advanced options,我們使用如下命令格式:
EXEC sp_configure 'show advanced options', '1' RECONFIGURE
要安裝一個選項,我們必須在使用sp_configure配置服務器之後運行RECONFIGURE命令。上面命令的輸出結果如下:
Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE command to install.
一旦能夠查看高級選項,我們就可以看到兩個新的服務器選項。其中最重要的一個新選項是awe enabled選項,它能夠讓SQL Server企業版提高服務器的內存訪問能力。默認情況下,SQL Server能夠使用的最大RAM是3GB。在Windows 2000上,應用程序可以 使用Address Windowing Extensions(AWE)API訪問更多的RAM。例如,在Windows 2000 Advanced Server中,我們能夠使用多達8GB的內存,只有Windows 2000 Datacenter Server支持64GB內存才超過它。顯然,當SQL Server擁有更多的可用內存,它將能夠緩沖更多的數據,改善查詢的響應時間。
不過,啟用awe enabled選項也有副作用。啟用awe enabled選項之後,SQL Server不再動態地分配內存。由於缺乏內存動態分配功能,管理負擔隨之增加,因為我們必須仔細地監視RAM使用情況。另外,設置awe enabled選項之後,我們還必須設置max server memory選項。如果我們不設置max server memory選項,服務器RAM又等於最低要求3GB,SQL Server將在啟動的時候占據機器上幾乎所有的RAM,只給Windows和其他應用留下128 MB的RAM。通過設置max server memory選項,我們可以限制SQL Server使用的內存總量。
awe enabled選項只能在SQL Server 2000 Enterprise Edition上使用,操作系統必須是Windows 2000 Advance Server或Datacenter。如果你在SQL Server的其他版本上使用這個選項(或者操作系統是WinNT),SQL Server將忽略這個選項。在某些服務器配置組合下,不適當地配置這個選項將導致不可預知的結果。例如,如果我們在Windows 98操作系統、運行SQL Server Personal Edition的機器上設置這個選項,SQL Server可能報告它已經停止(甚至是在它正在運行的時候),而且它將拒絕停止SQL Server實例。
在SQL Server Enterprise Edition服務器上啟用AWE包括三個步驟。首先,我們必須確保啟動SQL Server實例的帳號具有在內存中鎖定頁的權限。SQL Server安裝時自動把頁鎖定權限授予我們指定用來啟動SQL Server服務的Windows帳號;但是,如果後來這個帳號已經改變,你應該檢查一下已經把哪些權限授予了啟動SQL Server的用戶。檢查帳號的權限可以使用Windows 2000的組策略工具。第二個步驟是運行sp_configure存儲過程,把awe enabled選項設置為1。然後,我們必須執行RECONFIGURE,用手工方式重新啟動SQL Server。配置命令的語法為:
EXEC sp_configure 'awe enabled', '1' RECONFIGURE
注意,在Windows 2000或者NT上,如果要訪問高於4GB的物理內存,我們還必須采取其他一些措施,即修改boot.ini文件,加入/pae選項。
第二個新的SQL Server 2000選項用來啟用C2級安全審核模式。C2是一個政府安全等級,它保證系統能夠保護資源並具有足夠的審核能力。C2模式允許我們監視對所有數據庫實體的所有訪問企圖。啟用SQL Server的C2審核功能的命令如下:
EXEC sp_configure 'c2 audit mode', '1' RECONFIGURE