SQL Server服務器的配置選項屬於那種人們了解較少且經常誤用的選項
當一個技術支持人員要求你按照某種方式調整一個選項
而另一個技術支持人員卻要求你按照另一種完全對立的方式調整同一個選項時
你可能對這些選項的真正含義感到困惑
有關這些選項的資料很缺乏
至少可以說不夠詳細和清楚
在SQL Server
中
Microsoft減少了幾個配置選項
讓SQL Server動態配置它們
從而減少了幾個容易混淆的地方
同時
Microsoft又為SQL Server
新增了兩個服務器配置選項
調整了一些數據庫選項
從而稍許簡化了數據庫管理員的工作
新增的服務器選項
就象訪問大多數企業版服務器的屬性一樣
我們不能在SQL Server Enterprise Manager中通過服務器屬性窗口訪問SQL Server
新增的兩個服務器選項
作為防止用戶由於不小心而錯誤配置服務器的一個安全措施
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
服務器選項總共有
個
默認情況下
sp_configure存儲過程只顯示其中的
個
顯示結果中不包含高級選項
而且所有新的SQL Server配置選項都不會出現在這個精簡的清單中
然而
我們可以使用show advanced options命令參數讓SQL Server顯示出所有選項
要啟用show advanced options
我們使用如下命令格式
EXEC sp_configure
show advanced options
RECONFIGURE
要安裝一個選項
我們必須在使用sp_configure配置服務器之後運行RECONFIGURE命令
上面命令的輸出結果如下
Configuration option
show advanced options
changed from
to
Run the RECONFIGURE command to install
一旦能夠查看高級選項
我們就可以看到兩個新的服務器選項
其中最重要的一個新選項是awe enabled選項
它能夠讓SQL Server企業版提高服務器的內存訪問能力
默認情況下
SQL Server能夠使用的最大RAM是
GB
在Windows
上
應用程序可以 使用Address Windowing Extensions(AWE)API訪問更多的RAM
例如
在Windows
Advanced Server中
我們能夠使用多達
GB的內存
只有Windows
Datacenter Server支持
GB內存才超過它
顯然
當SQL Server擁有更多的可用內存
它將能夠緩沖更多的數據
改善查詢的響應時間
不過
啟用awe enabled選項也有副作用
啟用awe enabled選項之後
SQL Server不再動態地分配內存
由於缺乏內存動態分配功能
管理負擔隨之增加
因為我們必須仔細地監視RAM使用情況
另外
設置awe enabled選項之後
我們還必須設置max server memory選項
如果我們不設置max server memory選項
服務器RAM又等於最低要求
GB
SQL Server將在啟動的時候占據機器上幾乎所有的RAM
只給Windows和其他應用留下
MB的RAM
通過設置max server memory選項
我們可以限制SQL Server使用的內存總量
awe enabled選項只能在SQL Server
Enterprise Edition上使用
操作系統必須是Windows
Advance Server或Datacenter
如果你在SQL Server的其他版本上使用這個選項(或者操作系統是WinNT)
SQL Server將忽略這個選項
在某些服務器配置組合下
不適當地配置這個選項將導致不可預知的結果
例如
如果我們在Windows
操作系統
運行SQL Server Personal Edition的機器上設置這個選項
SQL Server可能報告它已經停止(甚至是在它正在運行的時候)
而且它將拒絕停止SQL Server實例
在SQL Server Enterprise Edition服務器上啟用AWE包括三個步驟
首先
我們必須確保啟動SQL Server實例的帳號具有在內存中鎖定頁的權限
SQL Server安裝時自動把頁鎖定權限授予我們指定用來啟動SQL Server服務的Windows帳號
但是
如果後來這個帳號已經改變
你應該檢查一下已經把哪些權限授予了啟動SQL Server的用戶
檢查帳號的權限可以使用Windows
的組策略工具
第二個步驟是運行sp_configure存儲過程
把awe enabled選項設置為
然後
我們必須執行RECONFIGURE
用手工方式重新啟動SQL Server
配置命令的語法為
EXEC sp_configure
awe enabled
RECONFIGURE
注意
在Windows
或者NT上
如果要訪問高於
GB的物理內存
我們還必須采取其他一些措施
即修改boot
ini文件
加入/pae選項
第二個新的SQL Server
選項用來啟用C
級安全審核模式
C
是一個政府安全等級
它保證系統能夠保護資源並具有足夠的審核能力
C
模式允許我們監視對所有數據庫實體的所有訪問企圖
啟用SQL Server的C
審核功能的命令如下
EXEC sp_configure
c
audit mode
RECONFIGURE
(要實現完整的C
級安全保證
Windows操作系統也必須提供相應的支持)啟用C
審核模式並重新啟動之後
SQL Server自動在\MSSQL\Data目錄下面創建跟蹤文件
我們可以使用SQL Server Profiler查看這些監視服務器活動的跟蹤文件
SQL Server以
KB大小的塊為單位把數據寫入跟蹤文件
因此
當SQL Server非正常停止時
我們最多可能丟失
KB的日志數據
可以想象
包含審核信息的日志文件將以很快的速度增大
例如
某次試驗只訪問了三個表
跟蹤文件已經超過了
MB
當跟蹤文件超過
MB時
C
審核將關閉舊文件並創建新文件
每次SQL Server啟動的時候
它會創建一個新的跟蹤文件
如果磁盤空間不足
SQL Server將停止運行
直至我們為審核日志釋放出足夠的磁盤空間並重新啟動SQL Server實例
在SQL Server啟動的時候
我們可以使用
f參數禁用審核
減少的服務器選項
在SQL Server
中
Microsoft減少了原有的幾個選項
讓SQL Server
自動配置這些選項
減少的選項中最引人注目的是max async IO選項
這個選項允許數據庫管理員指定在單一的數據庫文件上可以出現多少異步的磁盤讀取和寫入操作
SQL Server
中的max async IO選項是人們了解最少的選項之一
它的默認值是
但很少有管理員去調整這個值
在SQL Server
中
這個異步IO選項隨著SQL Server接收的適配器反饋信息動態地上升或者下降
SQL Server利用反饋算法確定服務器負載以及SQL Server系統能夠控制的數量
數據庫選項
在SQL Server
中
如果你曾經查看過Enterprise Manager中數據庫的Options選項卡
你可能會對一些通用選項的消失感到困惑(要訪問Options選項卡
在Enterprise Manager中右擊數據庫然後選擇Properties)
Options選項卡中減少了trunc
log on chkpt
以及Select Into/Bulk Copy這兩個選項
如圖
所示
為了清楚和向後兼容起見
這些通用選項現在稱為recovery model(恢復模型)選項
如果用SQL Server
的Enterprise Manager連接SQL Server
數據庫
我們仍舊可以看到這些老選項
以前
我們使用下面的命令為Northwind數據庫開啟trunc
log on chkpt
選項
SP_DBOPTION Northwind
trunc
log on chkpt
true
設置好選項之後
我們可以通過Options選項卡或者下面的查詢檢查Northwind數據庫上這些選項設置是否成功
SELECT DATABASEPROPERTY (
Northwind
IsTruncLog
)
結果為
表示選項設置成了true
結果為
表示選項設置成了false
如果結果為NULL
它表示我們或者選擇了一個錯誤的選項
或者數據庫不存在
為了便於使用
Microsoft把trunc
log on chkpt
和Select Into/Bulk Copy選項換成了恢復模型設置
這種選項改變的目的在於確保數據庫管理員能夠充分理解在災難恢復策略中恢復模型選項的意義
SQL Server
為我們提供了三種數據庫恢復模型
simple(簡單恢復)
full(完全恢復)
bulk_logged(大容量日志記錄恢復)
簡單恢復模型最容易操作
但它是最缺乏靈活性的災難恢復策略
選擇簡單恢復模型等同於把trunc
log on chkpt
設置成true
在這種恢復模型下
我們只能進行完全備份和差異備份(differential backup)
這是因為事務日志總是被截斷
事務日志備份不可用
一般地
對於一個包含關鍵性數據的系統
我們不應該選擇簡單恢復模型
因為它不能夠幫助我們把系統還原到故障點
使用這種恢復模型時
我們最多只能把系統恢復到最後一次成功進行完全備份和差異備份的狀態
進行恢復時
我們首先要恢復最後一次成功進行的完全備份
然後在此基礎上恢復差異備份(差異備份只能把自從數據庫最後一次完全備份之後對數據庫的改動施加到數據庫上)
完全恢復模型把trunc
log on chkpt
選項和Select Into/Bulk Copy選項都設置成false
完全恢復具有把數據庫恢復到故障點或特定即時點的能力
對於保護那些包含關鍵性數據的環境來說
這種模型很理想
但它提高了設備和管理的代價
因為如果數據庫訪問比較頻繁的話
系統將很快產生龐大的事務日志記錄
由於在這種模型中Select Into/Bulk Copy設置成了false
SQL Server將記錄包括大容量數據裝入在內的所有事件
最後一種恢復模型是大容量日志記錄恢復
它把tru
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22177.html