資料庫伺服器構建和部署最佳實踐

来源:http://www.cnblogs.com/OwenZeng/archive/2017/09/28/7605157.html
-Advertisement-
Play Games

我們可能經常安裝和部署資料庫伺服器,但是可能突然忘記了某個設置,為後來的運維造成隱患。下麵是國外大牛整理的的檢查列表。 其實也包含了很多我們平時資料庫配置的最佳實踐。比如TEMPDB 文件的個數,比如資料庫文件,日誌文件如何存放,最大記憶體的設置等等。如果有補充的歡迎留言 ...


前言

我們可能經常安裝和部署資料庫伺服器,但是可能突然忘記了某個設置,為後來的運維造成隱患。下麵是國外大牛整理的的檢查列表。 其實也包含了很多我們平時資料庫配置的最佳實踐。比如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 Server代理帳戶       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.啟用預設備份壓縮            這將為所有資料庫備份預設使用SQL Server備份壓縮        d.在SQL Server配置管理器中添加跟蹤標誌3226作為啟動選項            這將阻止在SQL Server錯誤日誌中記錄成功的資料庫備份消息       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與電子郵件地址[email protected]   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內核數對齊。但是現在已經做了優化,不需要一來就設置那麼多

關於其他選項沒什麼爭議。應該儘量遵守的。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文介紹了Android下三種獲取FPS的方法,在調試及優化Android性能時可做參考。 ...
  • 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/77678577 本文出自 "【趙彥軍的博客】" 其他 "Groovy 使用完全解析 http://blog.csdn.net/zhaoyanjun6/article/details/7 ...
  • 前言 一般iOS中的armv7、armv7s、arm64、i386、x86_64這些都代表了什麼?在Xcode中如何選擇? 介紹 armv7、armv7s、arm64都是ARM處理器的指令集。 i386、x86_64是mac處理器的指令集 這些指令集在哪些設備中有用到呢? 在實際開發中的選擇問題 X ...
  • Keep UINavigationBar at the top (Don't scroll with keyboard) (#21, #24) If you don't want to hide the default UINavigationBar of UINavigationControlle ...
  • 原文地址:http://www.linuxidc.com/Linux/2007-05/4338.htm # /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql ... ...
  • 安裝oracle11g客戶端,再安裝oacle12c odac插件。應將oracle11g的環境變數放到12c環境變數前面。 ...
  • 標簽:SQL SERVER/MSSQL SERVER/資料庫/DBA/ 概述 SQLServer2016發佈版本到現在已有一年多的時間了,目前最新的穩定版本是SP1版本。接下來就開看看2016在Alwyson上做了哪些改進,記得之前我在寫2014Alwayson的時候提到過幾個需要改進的問題在201 ...
  • MySQL更改線上配置方案思想:原則上,需要備機、備份工作准備到位,有參數調優配置方案、有配置回退方案、有應急切換備機方案。以上方案評審無問題,然後可以和客戶約定實施的時間。服務中斷時間,先向客戶側申請30分鐘吧。如果客戶承受不了,就讓客戶自己給個時間。在規定時間內,我們做得到就做,做不到就立即回退 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...