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