DBA 使命
確保 SQL Server 系統**正常、高效、安全、可恢復**運行。
12 大核心任務
1. 安裝與配置
- 依需求規劃版本、版本、實例拓撲、檔案佈局
- 配置非預設參數(
max memory、MAXDOP、tempdb 數量/大小)
- 持續根據負載變化微調,非一勞永逸
2. 容量規劃
- **硬體**:磁碟 (IOPS/吞吐/空間)、CPU、記憶體、網路
- **軟體**:OS 版本、補丁、SQL 版本、資料庫/對象數量增長曲線
- **網路**:頻寬、延遲、拓撲、客戶端分布
- 三期規劃:短期(滿足當前)、中期(業務增長)、長期(極限壓力)
3. 應用架構設計
- 資料庫設計:邏輯/物理模型、檔案群規劃、檔案放置
- 應用設計:與開發協作,推動參數化查詢、連接池、避免 N+1
- 技術架構:分層部署、擴展性、容災、安全區域劃分
4. 管理資料庫對象
表、索引、視圖、存儲過程、函數、觸發器、同義詞、序列、圖表…
核心問題:
• 需存什麼數據?怎麼存?
• 哪些索引加速檢索?
• 視圖/存儲過程/函數邊界在哪?
• 觸發器針對什麼操作?會不會遞歸/死循環?
5. 存儲空間管理
- 數據/日誌檔案初始大小、自動增長策略(固定 MB、非百分比)
- 監控空間使用趨勢,預警 70%/85%/95%
- 數據歸檔/清理策略(分區切換、備份後截斷)
6. 安全管理
- 帳號生命週期:建立、授權、審核、禁用、刪除
- 最小權限原則:角色 → 權限,避免直接授權給用戶
- 審計:
SERVER AUDIT、DATABASE AUDIT SPECIFICATION
- 加密:TDE (靜態)、Always Encrypted (列級)、TLS (傳輸)
7. 備份與恢復
- 策略:完整 (週) + 差異 (日) + 日誌 (15-60分)
- 驗證:
RESTORE VERIFYONLY、定期演練還原
- 異地備份:複製到異地/雲存儲,RPO/RTO 量化
8. 性能監視與調優
- 指標:
Batch Requests/sec、Page Life Expectancy、Wait Stats、CPU/IO/Memory
- 工具:
DMV、Query Store、Extended Events、PerfMon
- 閉環:發現 → 分析 → 索引/查詢/參數調整 → 驗證 → 固化
9. 排程作業
- Agent Job:備份、索引維護、統計更新、清理、ETL、報表
- 失敗通知:郵件/Teams/Slack/Webhook
- 冪等設計:重跑不產生副作用
10. 網絡管理
- 端口、防火牆、VPN、私有連結、強制加密連接
- 監聽器、別名、可用性群組端點
11. 高可用與高擴展
- HA:FCI、AlwaysOn AG、鏡像(棄用)、日誌傳送
- Scale-out:讀寫分離、分片、PolyBase/外部表
- SLA 導向設計:RPO=0 (同步)、RTO<5min (自動故障轉移)
12. 故障診斷與解決
- 方法論:現象 → 定位 (Wait Stats/Extended Events/Query Store) → 根因 → 修復 → 複盤
- 常見類別:阻塞/死鎖、計劃退化、資源耗盡、損壞頁面、複制延遲
- 工具箱:
sp_WhoIsActive、DBCC CHECKDB、DBCC PAGE、記憶體傾印分析
能力模型
初級:會裝、會備份、會建用戶
中級:會調優、會HA部署、會自動化
高級:架構設計、容規、跨平台遷移、疑難雜症破解、團隊賦能
**DBA 是資料庫系統的「專業醫生」:診斷快、判斷準、手術穩、預防強。**