DP-300 Azure 資料庫管理員 — 第二天課程筆記
Day 2 的內容量比 Day 1 大很多。從 Managed Instance、VM 選型、效能調校一路講到高可用性、備份策略、資料庫遷移、TDE 加密。幾乎每個段落都有考試重點。
Managed Instance:過渡方案
Managed Instance(MI)是介於 PaaS 跟 VM 之間的選項。相容性 99%(不是 100%),只提供 SSDE 服務,不含 SSIS、SSAS、SSRS。資料上限 16 TB,業務關鍵型的話只有 4 TB。
部署優先順序還是:PaaS > VM > MI。MI 的定位是「沒辦法直接從 VM 跳到 PaaS」時的中繼站,費用不低,不是首選。
遷移路徑建議:VM → MI → PaaS,逐步遷移。
MI 有自動調優功能(SQL Server 2016+ 起),但目前只支援索引層面(建立/刪除索引)跟統計資訊更新。存儲規劃、應用程式優化、架構優化這些還沒涵蓋。
VM 部署的 License 陷阱
這個要特別注意:VM 映像預設包含 SQL Server 授權費用。如果你沒手動選「使用自己的授權」(Hybrid Benefit),帳單會非常驚人。
| 場景 | 說明 |
|---|---|
| 預設部署 | 包含 SQL License 費用,很貴 |
| Hybrid Benefit | 選「自帶授權」,不額外收費 |
| 測試環境 | 用免費版(Developer/Express) |
部署 VM 的時候一定要手動選 Hybrid Benefit。不做任何變更的話,預設就是收你 License 費。
CPU 與記憶體選型
CPU
OLTP(交易處理)要的是高單核效能(高主頻/高 ACU),核心數不用多。OLAP(分析處理)反過來,核心數越多越好,單核效能不重要。
幾個規則:選 1:1 CPU 比例(物理核心:虛擬核心 = 1:1)、避免 B 系列(Burstable)——雖然便宜但 CPU 超分,生產環境性價比低。
記憶體公式
| 工作負載 | 最低記憶體 |
|---|---|
| OLTP | 資料量 ÷ 20 + 2 GB |
| OLAP | 資料量 ÷ 10 + 2 GB |
2 GB 是留給作業系統的。建議比估算值高 3-4 倍就好,盲目加記憶體沒意義。
SQL Server 有個特性:它會吃掉所有可用記憶體。這不代表記憶體不夠,是引擎的自動管理行為。但你一定要設 Max Server Memory,至少留 2 GB 給 OS。
TempDB 放哪裡
TempDB 跟 VM 臨時磁碟是絕配——兩者的生命週期完全一致。臨時磁碟隨 VM 重啟清空,TempDB 隨 SQL 重啟重建。
| 項目 | 說明 |
|---|---|
| 首選位置 | VM 臨時磁碟(D: drive) |
| 效能 | 比持久化 SSD 更好 |
| 費用 | VM 自帶,不用額外付費 |
| 例外 | TempDB 容量需求超過臨時磁碟大小時才需要額外配 SSD |
重點:資料檔案(.mdf/.ndf)和日誌檔案(.ldf)絕對不要放在臨時磁碟上。
效能調校
建議啟用:備份壓縮(縮短備份時間,不是為了省空間)、自動調優(2016+)。
建議禁用:自動收縮(Auto Shrink,會造成索引碎片)、自動關閉(Auto Close,頻繁啟停開銷大)。
必須設定:Max Server Memory。
資料壓縮的正確觀念
核心觀念:資料壓縮是為了提升效能(減少 I/O),不是為了省儲存空間。
適用 OLAP / 資料倉庫(低頻寫入),不適用 OLTP(頻繁寫入會降速)。壓縮後 I/O 量減少(比如 27%),讀取效能就直接提升 27%。
常見誤解:「磁碟不夠用所以壓縮」→ 應該買更大的磁碟或排查日誌增長問題。
日誌檔增長控制
唯一正確方法:Log Backup。
| 方法 | 正確性 |
|---|---|
| Log Backup | ✅ 唯一正確 |
| 切 Simple Recovery Model | ❌(喪失時間點還原能力) |
| 手動清除日誌 | ❌ |
| 刪除日誌檔案 | ❌ 危險 |
| 資料壓縮 | ❌ 完全無關 |
日誌不斷增長是因為沒做 Log Backup,不是記憶體或磁碟不足。網路上大部分解法是錯的。
應用程式跟資料庫必須住在一起
黃金法則:延遲 < 1ms。
1 | ❌ App(本地)↔ DB(雲端) 延遲 5-100ms+ |
99% 的應用程式設計假設延遲 < 1ms。跨地域部署延遲至少 5ms,遷移後一堆效能問題的根因往往是網路延遲,不是雲端效能不足。
混合部署的正確用法是拿雲端當災難復原站點或備份目的地,不是把 App 跟 DB 拆開放。
HA vs DR
| 高可用性(HA) | 災難復原(DR) | |
|---|---|---|
| 同步方式 | 同步 | 非同步 |
| 資料一致性 | 零資料遺失 | 有 RPO(可能丟資料) |
| 故障轉移 | 可自動 | 必須手動 |
| 延遲要求 | < 1ms | > 1ms(跨 Region) |
考試重點:同步節點可以自動轉移,非同步/異地節點必須手動。原因很直白——非同步的資料有差異,自動轉移會丟資料。
課上有句話很到位:「寧可停機,也不要盲目切換非同步節點。丟失的資料不可逆。」連微軟自己的服務故障時,也是選擇等修復而不是盲目轉移。
Always On 可用性群組(AOAG)
SQL Server 2012+ 的 AOAG 是目前首選的 HA/DR 技術,取代了舊的 Database Mirroring 跟 Log Shipping。PaaS 版本內建 HA 不用手動配;MI 跟 VM 需要自己搞,技術難度較高。
Azure Site Recovery(ASR)是 VM 層面的非同步複製,RPO 較高,簡單場景可以用,但不能替代 AOAG。
備份策略
PaaS 的備份基本不用你操心:預設保留 7 天、快速保留上限 35 天、長期保留最長 10 年、完整備份每週自動跑、日誌備份每 5-10 分鐘自動跑。RPO 趨近零。
VM 的話需要自己規劃。建議先備份到本地(速度快),再同步到雲端(異地保護)。備份壓縮可以把時間砍一半。
資料庫遷移
遷移前第一步:用 DMA(Data Migration Assistant)評估相容性。資料搬移本身問題不大,程式碼才是最大挑戰——函數、預存程序、觸發器的相容性。
版本跨度太大(比如 SQL 2000 → 2022)沒辦法直接升,要逐步過渡:2000 → 2008 → 2012 → 2022。
停機時間評估:1 小時以內是低難度,5 分鐘以內需要事務複製或 AOAG,零停機不要輕易承諾。
遷移鐵則:一定要有回退計畫(Rollback Plan),測試沒辦法覆蓋 100% 場景。
TDE 透明資料加密
對靜態資料加密,防止硬碟被偷之後資料外洩。對應用程式透明,不需要改 code。
但最重要的是金鑰管理:金鑰丟失 = 資料丟失。資料就在眼前卻打不開,找誰都沒用。
推薦用 Azure Key Vault 管金鑰,不要依賴 Windows OS 保護(OS 壞掉金鑰就可能跟著沒了)。啟用 TDE 之前,先把金鑰備份機制建好。
考試速記
| 問題 | 答案 |
|---|---|
| 部署優先順序? | PaaS > VM > MI |
| VM CPU 避免哪個系列? | B 系列 |
| 如何控制日誌增長? | Log Backup(唯一正確) |
| 資料壓縮用途? | 提升 OLAP 讀取效能 |
| TempDB 放哪? | VM 臨時磁碟 |
| 同步節點故障轉移? | 可自動 |
| 非同步節點故障轉移? | 必須手動 |
| App 跟 DB 可以分開部署? | 不行,延遲 < 1ms |
| Hyperscale 可以降級? | 超過回退期不可逆 |
| TDE 金鑰丟了? | 資料永久無法存取 |
| 遷移前第一步? | DMA 評估相容性 |
| 能承諾零停機? | 不要輕易承諾 |
| PaaS 預設備份保留? | 7 天 |
| VM License 陷阱? | 預設含 License,要選 Hybrid Benefit |
| OLTP 記憶體公式? | 資料量 ÷ 20 + 2 GB |
來源:DP-300 Azure Database Administrator Associate 課程第二天筆記







