一、職涯定位:開發 vs 管理
| 維度 | 開發 (PL/SQL、Forms) | 管理 (DBA) |
| 核心技能 | 邏輯思維、程式設計、業務建模 | 原理深度、全局視野、故障處理、效能調優 |
| 責任風險 | 專案交付、功能正確性 | 資料安全、系統可用性、誤操作可能導致庫掛掉 |
| 經驗依賴 | 技術棧更新快,屬「青春飯」 | **極度依賴經驗驗積累**,越老越吃香 |
| 轉型建議 | 畢業生建議先做開發積累業務與SQL經驗,再轉型 DBA | 需扎實理論基礎+大量實戰演練 |
二、高效學習方法論
- 看書:建立知識骨架 (官方 Concepts、2 Day DBA)。
- 思考:多問「為什麼」,挑戰預設認知。
- 寫筆記:整理知識點、記錄疑問、梳理邏輯——**輸出倒逼輸入**。
- 做實驗:驗證理論、觀察行為、製造故障再修復。
- 再思考、再筆記:形成「模糊→清晰→再模糊(更深層)」的螺旋上升。
忌諱:遇到問題直接發帖問人,未查文檔、未搜論壇、未自行實驗 —— 這是「思維惰性」,註定學不會。
三、Oracle 體系全景架構 (必須建立的心智模型)
1. 物理結構
- 控制檔:維護資料庫完整性資訊 (至少 1 個,建議多路徑多工)。
- 資料檔:實際儲存使用者資料。
- 重做日誌檔:記錄變更,支援崩潰恢復 (至少 2 組)。
- 參數檔 (PFILE/SPFILE):定義例程特性。
- 歸檔日誌檔:重做日誌離線備份,支援介質恢復。
- 密碼檔:鑑別 SYSDBA/SYSOPER 權限。
2. 邏輯結構 (由大到小)
表空間 → 段 → 區 → 區塊
- 表空間:邏輯儲存單位,一組資料檔集合。
- 段:物件 (表、索引) 佔用的空間集合。
- 區:連續區塊,一次性分配單位。
- 區塊:Oracle 最小 I/O 單位,建庫時指定 (建議 8K+)。
3. 記憶體架構
- SGA (System Global Area):共享記憶體區,含共用池、資料庫緩衝區、重做日誌緩衝區、大池等。所有程序共享。
- PGA (Program Global Area):私有記憶體區,含排序區、游標狀態等。每程序獨有,建立時分配、結束時釋放。
4. 後台進程
| 進程 | 職責 |
| DBWn | 將髒緩衝寫入資料檔 |
| LGWR | 將重做日誌緩衝寫入線上重做日誌檔 |
| SMON | 執行執行個體恢復、整理暫存段、合併自由空間 |
| PMON | 清理失敗程序資源、釋放鎖、重註冊監聽 |
| CKPT | 檢查點:更新控制檔/資料檔標頭 SCN |
| ARCn | 歸檔滿載重做日誌組 |
| RECO | 解決分散式交易失敗 |
5. 例程與 SCN
例程 = SGA + 後台進程。一次只能掛載/開啟一個資料庫。
SCN (System Change Number):系統內部單調遞增序號,是資料一致性、恢復排序的核心基石。
四、深入進階路線圖
- DBA 路線:OCP 認證 → 研讀 Oracle Concepts / 官方文檔 → 專題攻關:RMAN、RAC、Data Guard、SQL Tuning、Backup & Recovery、Performance Tuning。
- 開發路線:精通 PL/SQL (SQL 優化、存儲程序/函數/觸發器/套件) → 掌握 Oracle Developer Suite (Forms/Reports)。
- 上一篇文章: Oracle Listener 無回應故障排查:子進程衝突 Bug (4518443) 與解決方案
- 下一篇文章: Oracle 知識點筆記:SQL 長度限制、資料檔大小上限與 Bigfile 表空間突破
Copyright ©
程式碼之家 All Rights Reserved