前言
我們可能經(jīng)常安裝和部署數(shù)據(jù)庫服務(wù)器,但是可能突然忘記了某個(gè)設(shè)置,為后來的運(yùn)維造成隱患。下面是國外大牛整理的的檢查列表。
其實(shí)也包含了很多我們平時(shí)數(shù)據(jù)庫配置的最佳實(shí)踐。比如TEMPDB 文件的個(gè)數(shù),比如數(shù)據(jù)庫文件,日志文件如何存放,最大內(nèi)存的設(shè)置等等。如果有補(bǔ)充的歡迎留言
正文
1. 機(jī)架和電纜服務(wù)器
確保每個(gè)電源插入不同的電源電路
果可能,請確保網(wǎng)絡(luò)電纜已插入不同的網(wǎng)絡(luò)交換機(jī)
2.SQL Server服務(wù)和SQL Server代理服務(wù)的使用域帳戶。
在SQL Server 2012安裝期間,您將需要知道這些帳戶的用戶名和密碼
讓這些帳戶使用永不過期的密碼
3.檢查服務(wù)器上的主BIOS設(shè)置
啟用超線程和turbo-boost(是一種超頻技術(shù),提升最多10%的性能)
電源管理應(yīng)設(shè)置為操作系統(tǒng)控制
禁用內(nèi)存測試
4.在服務(wù)器上安裝Windows Server 2012 R2 Standard Edition
使用集成RAID控制器在RAID 1中使用兩個(gè)內(nèi)部驅(qū)動器
如有可能,請考慮使用SSD
如果使用SSD,則不需要對其進(jìn)行碎片整理
為C:驅(qū)動器創(chuàng)建一個(gè)單獨(dú)的分區(qū)
將Windows頁面文件大小更改為16GB,并防止C盤
將Windows電源計(jì)劃更改為“高性能”
在服務(wù)器上運(yùn)行CPU-Z以確認(rèn)處理器全速運(yùn)行
將光盤驅(qū)動器的驅(qū)動器號更改為Z:
5.將服務(wù)器上的NETBIOS名稱更改為所需的服務(wù)器永久名稱
6.使用Windows Server 2012 R2自帶功能安裝.NET 3.51
7.在服務(wù)器上安裝Microsoft Update
這是Windows Update的超集
8.在服務(wù)器上安裝所有Microsoft和Windows更新
這可能需要幾輪才能獲得所有必需的更新
9.對C盤進(jìn)行碎片整理
使用使用計(jì)劃任務(wù)每周自動對C盤碎片整理
不允許將新驅(qū)動器自動添加到計(jì)劃中
10.創(chuàng)建一個(gè)具有正確DNS和默認(rèn)網(wǎng)關(guān)信息的靜態(tài)IP地址
11.將服務(wù)器加入到相應(yīng)的Windows域
12.在服務(wù)器上激活Windows
13.在服務(wù)器上安裝最新版本的Dell OMSA (這個(gè)東西我沒用過)
14.下載最新版本的Dell Server Update Utility(SUU)
將.iso裝入SUU,并運(yùn)行SUU
這將確保您具有服務(wù)器的最新固件和驅(qū)動程序
15.使用Dell OMSA為LUN創(chuàng)建RAID陣列
創(chuàng)建一個(gè)LUN,然后轉(zhuǎn)到邏輯磁盤管理器創(chuàng)建/格式化驅(qū)動器
II。按照下面顯示的順序創(chuàng)建陣列和LUN
戴爾OMSA中的一般PERC設(shè)置
對RAID 10陣列使用智能鏡像
II。沒有預(yù)讀高速緩存
III。啟用回寫緩存
IV。應(yīng)啟用緩存策略
v。使用64K分配單元
16.使用Windows邏輯磁盤管理器創(chuàng)建邏輯磁盤
使用OMSA創(chuàng)建陣列后,打開磁盤管理器
您將看到“初始化磁盤”對話框
確保使用GPT分區(qū)樣式
17.檢查下,保證新的邏輯驅(qū)動器在Windows資源管理器中都能夠看到
18.在安裝SQL Server 2012之前,把所有需要的邏輯驅(qū)動器都創(chuàng)建上
19.使用CrystalDiskMark測試每個(gè)邏輯驅(qū)動器的性能
20.使用SQLIO測試每個(gè)邏輯驅(qū)動器的性能
21.在每個(gè)驅(qū)動器上,創(chuàng)建下面的文件夾
數(shù)據(jù)驅(qū)動器:SQLData
日志驅(qū)動器:SQLLogs
TempDB驅(qū)動器:TempDB
備份驅(qū)動器:SQLBackups
22.使用組策略編輯器(GPEDIT.MSC)將這些Windows權(quán)限授予SQL Server服務(wù)帳戶
執(zhí)行卷維護(hù)任務(wù)
鎖定內(nèi)存頁面
23.安裝SQL Server 2012企業(yè)版
確保沒有待處理的重新引導(dǎo),否則SQL Server 2012將無法安裝
僅安裝此實(shí)例所需的SQL Server 2012組件
C。使用混合模式認(rèn)證
將sa密碼設(shè)置為強(qiáng)密碼
II。將自己添加為SQL管理員
III。添加任何需要成為管理員的其他DBA
對于SQL Server服務(wù)帳戶使用域賬戶
使用對應(yīng)的域賬戶作為SQL Server代理帳戶
F。將SQL Server代理服務(wù)設(shè)置為自動啟動
G。將默認(rèn)目錄設(shè)置為相應(yīng)的驅(qū)動器號和路徑
I.用戶數(shù)據(jù)庫目錄:P:\ SQLData
II.用戶數(shù)據(jù)庫日志目錄: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:驅(qū)動器進(jìn)行碎片整理
如果您使用的是SSD,則不需要這樣做
26.更改SQL Server 2012實(shí)例級屬性
a. 啟用optimize for ad hoc workloads
這將允許SQL Server在第一次執(zhí)行時(shí)使用較少的內(nèi)存來存儲臨時(shí)查詢計(jì)劃
b.設(shè)置最大并行度設(shè)置為服務(wù)器上NUMA節(jié)點(diǎn)中的物理核心數(shù)
c.啟用默認(rèn)備份壓縮
這將為所有數(shù)據(jù)庫備份默認(rèn)使用SQL Server備份壓縮
d.在SQL Server配置管理器中添加跟蹤標(biāo)志3226作為啟動選項(xiàng)
這將阻止在SQL Server錯誤日志中記錄成功的數(shù)據(jù)庫備份消息
e .在SQL Server配置管理器中添加跟蹤標(biāo)志1118作為啟動選項(xiàng)
這將有助于緩解tempdb中的配置爭用
f. 在實(shí)例上啟用數(shù)據(jù)庫郵件
用于SQL Server代理警報(bào)和SQL Server代理作業(yè)失敗時(shí)郵件通知
G。將Max Server Memory設(shè)置為適當(dāng)?shù)姆悄J(rèn)值
值取決于服務(wù)器中可用的物理內(nèi)存量
它還取決于安裝的SQL Server組件
II。以下是一些示例值:
1.96GB總RAM:將最大服務(wù)器內(nèi)存設(shè)置為87000
2. 64GB總RAM:將最大服務(wù)器內(nèi)存設(shè)置為56000
3. 32GB總RAM:將最大服務(wù)器內(nèi)存設(shè)置為27000
H。在T:\ TempDB目錄中額外再創(chuàng)建三個(gè)TempDB數(shù)據(jù)文件。總共4個(gè)tempdb文件(不需要一開始就和CPU個(gè)數(shù)對齊)
所有TempDB數(shù)據(jù)文件的大小應(yīng)為4096MB
將自動增長設(shè)置為1024MB
II。 TempDB日志文件應(yīng)為1024MB
27.確認(rèn)您可以從域上的其他計(jì)算機(jī)ping通 SQL Server計(jì)算機(jī)
28.使用SQL Server 2012 Configuration Manager,確認(rèn)實(shí)例啟用了TCP / IP
29.確認(rèn)您可以使用其他計(jì)算機(jī)上的SSMS遠(yuǎn)程連接到SQL Server實(shí)例
30.在實(shí)例上創(chuàng)建一個(gè)SQL Server操作員
使用DBAdmin與電子郵件地址dbadmin@yourcompany.com
31.確認(rèn)數(shù)據(jù)庫郵件正常運(yùn)行
右鍵單擊數(shù)據(jù)庫郵件并發(fā)送測試消息
32.配置SQL Server代理郵件以使用數(shù)據(jù)庫郵件
33.為以下錯誤創(chuàng)建SQL Server代理警報(bào):
a . YourServerName Alert - Sev 19錯誤:資源中的致命錯誤
b. YourServerName Alert - Sev 20錯誤:當(dāng)前進(jìn)程中的致命錯誤
C。 YourServerName Alert - Sev 21錯誤:數(shù)據(jù)庫進(jìn)程中的致命錯誤
d。 YourServerName Alert - Sev 22錯誤致命錯誤:表完整性可疑
e. YourServerName Alert - Sev 23錯誤:致命錯誤數(shù)據(jù)庫完整性可疑
f。 YourServerName Alert - Sev 24錯誤:致命的硬件錯誤
g。 YourServerName Alert - Sev 25錯誤:致命錯誤
h。 YourServerName Alert - Error 825:Read-Retry Required
i。 YourServerName警報(bào) - 錯誤832:常量頁面已更改
j.YourServerName警報(bào) - 錯誤855:檢測到不可糾正的硬件內(nèi)存損壞
k。 YourServerName警報(bào) - 錯誤856:SQL Server已檢測到硬件內(nèi)存損壞,但已恢復(fù)該頁面
34.這里提供了創(chuàng)建這些SQL Server代理警報(bào)的通用腳本:
確保每個(gè)代理警報(bào)都有響應(yīng)來通知DBAdmin操作員
35.創(chuàng)建一個(gè)名為Nightly Free System Cache的SQL Server代理作業(yè),運(yùn)行此命令:
DBCC FREESYSTEMCACHE ('SQL Plans');
每天晚上在凌晨12:00運(yùn)行
36.下載最新版本的Ola Hallengren的SQL Server維護(hù)解決方案腳本:
http://ola.hallengren.com/
連接到實(shí)例時(shí)打開MaintenanceSolution.sql腳本
將@BackupDirectory變量修改為N:\ SQLBackups
II。運(yùn)行腳本創(chuàng)建十一個(gè)新的SQL Server代理作業(yè)
III。對于每個(gè)作業(yè),如果作業(yè)發(fā)生故障,請轉(zhuǎn)到“通知”屬性窗口,并將作業(yè)通過電子郵件發(fā)送給DBAdmin組
IV。對于每個(gè)作業(yè),創(chuàng)建一個(gè)運(yùn)行時(shí)間的計(jì)劃。
v。這是一個(gè)建議的工作時(shí)間表:
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時(shí)全天
5. DatabaseBackup - USER_DATABASES - 每小時(shí)記錄一次
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。
總結(jié)
對于個(gè)人認(rèn)為比較重要的最佳實(shí)踐我都用紅色的標(biāo)注了。不過上面的啟用超線程和turbo-boost
我覺得要根據(jù)客戶的實(shí)際情況,如果 客戶的系統(tǒng)能夠用上這些多余的邏輯CPU,那么才應(yīng)該開啟超線程。根據(jù)經(jīng)驗(yàn)通常OLTP系統(tǒng)開啟超線程是比較有好處的。但對于某些報(bào)表查詢,可能開啟超線程反而會有不良影響。
詳細(xì)可以參考:https://blogs.msdn.microsoft.com/slavao/2005/11/12/be-aware-to-hyper-or-not-to-hyper/
tempdb文件個(gè)數(shù)
我們知道增加tempdb數(shù)據(jù)文件可以減少PAGELATCH爭用 ,按照以前的最佳實(shí)踐是和CPU內(nèi)核數(shù)對齊。但是現(xiàn)在已經(jīng)做了優(yōu)化,不需要一來就設(shè)置那么多
MBR and GPT
GPT意為GUID分區(qū)表。(GUID意為全局唯一標(biāo)識符)。這是一個(gè)正逐漸取代MBR的新標(biāo)準(zhǔn)。它和UEFI相輔相成——UEFI用于取代老舊的BIOS,而GPT則取代老舊的MBR。之所以叫作“GUID分區(qū)表”,是因?yàn)槟愕尿?qū)動器上的每個(gè)分區(qū)都有一個(gè)全局唯一的標(biāo)識符.在MBR磁盤上,分區(qū)和啟動信息是保存在一起的。如果這部分?jǐn)?shù)據(jù)被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個(gè)磁盤上保存多個(gè)這部分信息的副本,因此它更為健壯,并可以恢復(fù)被破壞的這部分信息。GPT還為這些信息保存了循環(huán)冗余校驗(yàn)碼(CRC)以保證其完整和正確——如果數(shù)據(jù)被破壞,GPT會發(fā)覺這些破壞,并從磁盤上的其他地方進(jìn)行恢復(fù)。而MBR則對這些問題無能為力——只有在問題出現(xiàn)后,你才會發(fā)現(xiàn)計(jì)算機(jī)無法啟動,或者磁盤分區(qū)都不翼而飛了.
總之,GPT更先進(jìn),更健壯,推薦使用GPT
關(guān)于其他選項(xiàng)沒什么爭議。應(yīng)該盡量遵守的。
以上就是本文的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以參閱:oracle 數(shù)據(jù)庫啟動階段分析 、關(guān)于數(shù)據(jù)庫連接池Druid使用說明 、淺談oracle rac和分布式數(shù)據(jù)庫的區(qū)別 等,有什么問題可以隨時(shí)留言,歡迎各位到本站交流討論。
您可能感興趣的文章:- mysql自動定時(shí)備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
- SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法
- c#獲得目標(biāo)服務(wù)器中所有數(shù)據(jù)庫名、表名、列名的實(shí)現(xiàn)代碼
- 理解web服務(wù)器和數(shù)據(jù)庫的負(fù)載均衡以及反向代理
- 在Tomcat服務(wù)器下使用連接池連接Oracle數(shù)據(jù)庫