資料庫伺服器構建和部署檢查列表詳解,資料庫詳解
前言
我們可能經常安裝和部署資料庫伺服器,但是可能突然忘記了某個設定,為後來的營運造成隱患。下面是國外大牛整理的的檢查列表。
其實也包含了很多我們平時資料庫配置的最佳實務。比如TEMPDB 檔案的個數,比如資料庫檔案,記錄檔如何存放,最大記憶體的設定等等。如果有補充的歡迎留言
本文
1. 機架和電纜伺服器
確保每個電源插入不同的電源電路
果可能,請確保網路電纜已插入不同的網路交換器
2.SQL Server服務和SQL Server代理服務的使用域帳戶。
在SQL Server 2012安裝期間,您將需要知道這些帳戶的使用者名稱和密碼
讓這些帳戶使用永不到期的密碼
3.檢查伺服器上的主BIOS設定
啟用超執行緒和turbo-boost(是一種超頻技術,提升最多10%的效能)
電源管理應設定為作業系統控制
禁用記憶體測試
4.在伺服器上安裝Windows Server 2012 R2 Standard Edition
使用整合RAID控制器在RAID 1中使用兩個內部磁碟機
如有可能,請考慮使用SSD
如果使用SSD,則不需要對其進行磁碟重組
為C:磁碟機建立一個單獨的分區
將Windows分頁檔大小更改為16GB,並防止C盤
將Windows電源計劃更改為“高效能”
在伺服器上運行CPU-Z以確認處理器全速運行
將光碟片磁碟機的磁碟機代號更改為Z:
5.將伺服器上的NETBIOS名稱更改為所需的伺服器永久名稱
6.使用Windows Server 2012 R2內建功能安裝.NET 3.51
7.在伺服器上安裝Microsoft Update
這是Windows Update的超集
8.在伺服器上安裝所有Microsoft和Windows更新
這可能需要幾輪才能獲得所有必需的更新
9.對C盤進行磁碟重組
使用使用計劃任務每周自動對C盤磁碟重組
不允許將新磁碟機自動添加到計劃中
10.建立一個具有正確DNS和預設閘道資訊的靜態IP地址
11.將伺服器加入到相應的Windows域
12.在伺服器上啟用Windows
13.在伺服器上安裝最新版本的Dell OMSA (這個東西我沒用過)
14.下載最新版本的Dell Server Update Utility(SUU)
將.iso裝入SUU,並運行SUU
這將確保您具有伺服器的最新韌體和驅動程式
15.使用Dell OMSA為LUN建立RAID陣列
建立一個LUN,然後轉到邏輯磁碟管理器建立/格式化磁碟機
II。按照下面顯示的順序建立陣列和LUN
戴爾OMSA中的一般PERC設定
對RAID 10陣列使用智能鏡像
II。沒有預讀快取
III。啟用回寫緩衝
IV。應啟用緩衝策略
v。使用64K配置單位
16.使用Windows邏輯磁碟管理器建立邏輯磁碟
使用OMSA建立陣列後,開啟磁碟管理器
您將看到“初始化磁碟”對話方塊
確保使用GPT分區樣式
17.檢查下,保證新的邏輯磁碟機在Windows資源管理員中都能夠看到
18.在安裝SQL Server 2012之前,把所有需要的邏輯磁碟機都建立上
19.使用CrystalDiskMark測試每個邏輯磁碟機的效能
20.使用SQLIO測試每個邏輯磁碟機的效能
21.在每個磁碟機上,建立下面的檔案夾
資料磁碟機:SQLData
日誌磁碟機:SQLLogs
TempDB磁碟機:TempDB
備份磁碟機:SQLBackups
22.使用組策略編輯器(GPEDIT.MSC)將這些Windows許可權授予SQL Server服務帳戶
執行卷維護任務
鎖定記憶體頁面
23.安裝SQL Server 2012企業版
確保沒有待處理的重新引導,否則SQL Server 2012將無法安裝
僅安裝此執行個體所需的SQL Server 2012組件
C。使用混合模式認證
將sa密碼設定為強密碼
II。將自己添加為SQL管理員
III。添加任何需要成為管理員的其他DBA
對於SQL Server服務帳戶使用域賬戶
使用對應的域賬戶作為SQL ServerProxy 帳戶
F。將SQL Server代理服務設定為自動啟動
G。將預設目錄設定為相應的磁碟機代號和路徑
I.使用者資料庫目錄:P:\ SQLData
II.使用者資料庫日誌目錄:L:\ SQLLogs
III. Temp DB目錄:T:\ TempDB
IV。 Temp DB日誌目錄:T:\ TempDB
v。備份目錄:N:\ SQLBackups
24.安裝SQL Server 2012最新 Service Pack
25.安裝SQL Server 2012 最新的累積更新6
累積更新可從此位置獲得:
http://support.microsoft.com/kb/2874879/en-us
安裝後手動對C:磁碟機進行磁碟重組
如果您使用的是SSD,則不需要這樣做
26.更改SQL Server 2012執行個體級屬性
a. 啟用optimize for ad hoc workloads
這將允許SQL Server在第一次執行時使用較少的記憶體來儲存臨時查詢計劃
b.設定最大並行度設定為伺服器上NUMA節點中的物理核心數
c.啟用預設備份壓縮
這將為所有Database Backup預設使用SQL Server備份壓縮
d.在SQL Server組態管理員中添加追蹤旗標3226作為啟動選項
這將阻止在SQL Server錯誤記錄檔中記錄成功的Database Backup訊息
e .在SQL Server組態管理員中添加追蹤旗標1118作為啟動選項
這將有助於緩解tempdb中的配置爭用
f. 在執行個體上啟用資料庫郵件
用於SQL Server代理警報和SQL Server代理作業失敗時郵件通知
G。將Max Server Memory設定為適當的非預設值
值取決於伺服器中可用的實體記憶體量
它還取決於安裝的SQL Server組件
II。以下是一些樣本值:
1.96GB總RAM:將最大伺服器記憶體設定為87000
2. 64GB總RAM:將最大伺服器記憶體設定為56000
3. 32GB總RAM:將最大伺服器記憶體設定為27000
H。在T:\ TempDB目錄中額外再建立三個TempDB資料檔案。總共4個tempdb檔案(不需要一開始就和CPU個數對齊)
所有TempDB資料檔案的大小應為4096MB
將自動成長設定為1024MB
II。 TempDB記錄檔應為1024MB
27.確認您可以從域上的其他電腦ping通 SQL Server電腦
28.使用SQL Server 2012 Configuration Manager,確認執行個體啟用了TCP / IP
29.確認您可以使用其他電腦上的SSMS遠端連線到SQL Server執行個體
30.在執行個體上建立一個SQL Server操作員
使用DBAdmin與電子郵件地址dbadmin@yourcompany.com
31.確認資料庫郵件正常運行
按右鍵資料庫郵件並發送測試訊息
32.配置SQL Server代理郵件以使用資料庫郵件
33.為以下錯誤建立SQL Server代理警報:
a . YourServerName Alert - Sev 19錯誤:資源中的致命錯誤
b. YourServerName Alert - Sev 20錯誤:當前進程中的致命錯誤
C。 YourServerName Alert - Sev 21錯誤:資料庫進程中的致命錯誤
d。 YourServerName Alert - Sev 22錯誤致命錯誤:表完整性可疑
e. YourServerName Alert - Sev 23錯誤:致命錯誤資料庫完整性可疑
f。 YourServerName Alert - Sev 24錯誤:致命的硬體錯誤
g。 YourServerName Alert - Sev 25錯誤:致命錯誤
h。 YourServerName Alert - Error 825:Read-Retry Required
i。 YourServerName警報 - 錯誤832:常量頁面已更改
j.YourServerName警報 - 錯誤855:檢測到不可糾正的硬體記憶體損壞
k。 YourServerName警報 - 錯誤856:SQL Server已檢測到硬體記憶體損壞,但已恢複該頁面
34.這裡提供了建立這些SQL Server代理警報的泛型指令碼:
確保每個代理警報都有響應來通知DBAdmin操作員
35.建立一個名為Nightly Free System Cache的SQL Server代理作業,運行此命令:
DBCC FREESYSTEMCACHE ('SQL Plans');
每天晚上在淩晨12:00運行
36.下載最新版本的Ola Hallengren的SQL Server維護解決方案指令碼:
http://ola.hallengren.com/
串連到執行個體時開啟MaintenanceSolution.sql指令碼
將@BackupDirectory變數修改為N:\ SQLBackups
II。運行指令碼建立十一個新的SQL Server代理作業
III。對於每個作業,如果作業發生故障,請轉到“通知”屬性視窗,並將作業通過電子郵件發送給DBAdmin組
IV。對於每個作業,建立一個已耗用時間的計劃。
v。這是一個建議的工作時間表:
CommandLogCleanup星期日上午12:00
2. DatabaseBackup - SYSTEM_DATABASES - 完整的每日11:55 PM
3. DatabaseBackup - USER_DATABASES - DIFF Daily at 12:00 PM
4. DatabaseBackup - USER_DATABASES - 上午12:00時全天
5. DatabaseBackup - USER_DATABASES - 每小時記錄一次
DatabaseIntegrityCheck - SYSTEM_DATABASES星期六上午7:55
7. DatabaseIntegrityCheck - USER_DATABASES星期六上午8:00
8. IndexOptimize - USER_DATABASES星期日下午8:00
9. 檔案清理 星期日上午12:00
10.sp_delete_backuphistory星期日上午12:00
11.sp_purge_jobhistory 星期日上午12:00。
總結
對於個人認為比較重要的最佳實務我都用紅色的標註了。不過上面的啟用超執行緒和turbo-boost
我覺得要根據客戶的實際情況,如果 客戶的系統能夠用上這些多餘的邏輯CPU,那麼才應該開啟超執行緒。根據經驗通常OLTP系統開啟超執行緒是比較有好處的。但對於某些報表查詢,可能開啟超執行緒反而會有不良影響。
詳細可以參考:https://blogs.msdn.microsoft.com/slavao/2005/11/12/be-aware-to-hyper-or-not-to-hyper/
tempdb檔案個數
我們知道增加tempdb資料檔案可以減少PAGELATCH爭用 ,按照以前的最佳實務是和CPU核心數對齊。但是現在已經做了最佳化,不需要一來就設定那麼多
MBR and GPT
GPT意為GUID分區表。(GUID意為通用唯一識別碼)。這是一個正逐漸取代MBR的新標準。它和UEFI相輔相成——UEFI用於取代老舊的BIOS,而GPT則取代老舊的MBR。之所以叫作“GUID分區表”,是因為你的磁碟機上的每個分區都有一個全域唯一的標識符.在MBR磁碟上,分區和啟動資訊是儲存在一起的。如果這部分資料被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁碟上儲存多個這部分資訊的副本,因此它更為健壯,並可以恢複被破壞的這部分資訊。GPT還為這些資訊儲存了迴圈冗餘校正碼(CRC)以保證其完整和正確——如果資料被破壞,GPT會發覺這些破壞,並從磁碟上的其他地方進行恢複。而MBR則對這些問題無能為力——只有在問題出現後,你才會發現電腦無法啟動,或者磁碟分割都不翼而飛了.
總之,GPT更先進,更健壯,推薦使用GPT
關於其他選項沒什麼爭議。應該盡量遵守的。
以上就是本文的全部內容,希望對大家有所協助。感興趣的朋友可以參閱:oracle 資料庫啟動階段分析 、關於資料庫連接池Druid使用說明 、淺談oracle rac和分散式資料庫的區別 等,有什麼問題可以隨時留言,歡迎各位到本站交流討論。