終於把 OCP DBA 的課程都考完了
累啊!總的來說ORACLE的認證值得考
本人有CCNP
MCSE證書
但通過DBA的考試
覺得不僅加深了對現代數據庫的了解
還豐富了計算機科學的知識結構
我覺得
從某種角度來說
ORACLE數據庫甚至具備一些操作系統的功能
ORACLE的考試
要記住的東西相當多
考試要求基本上是以原始的命令行方式
而不是圖形界面操作
因此表的名字
以及相應的scripts相當多是要求記住的
整個DBA考試
光書中提到的table就有數百個之多
我想這主要是因為過去ORACLE主要是在UNIX系統上運行的
可供使用的圖形界面軟件不多!這也相應地增加了考試的難度!整個考試重點在於對概念的理解
對細節考得不是太多
我想國外的考試都是這樣吧!例如問lock contention 的原因是什麼?然而
oracle的概念可是五花八門
數不勝數!
最初一門SQL是基礎
這門不難
只要多點上機實踐
一般都沒問題
但是pl/sql的許多概念
例如觸發器等
要弄清楚
如果有數據庫開發的基礎
這門課是小菜一碟!
第二門
《數據庫管理》
可算上是ORACLE的基礎課了
也是核心課程
課程中提到了許多在以後的課程中反復使用的概念與方法
例如
instance及相應的進程(pmon
smon
arc
dbw
等)
數據庫的物理結構由dbf文件
控制文件
redo log文件
archive文件等
數據庫的邏輯構成由tablespace
segment
extent
block等
需要理解的是ORACLE的基本運行過程
oracle讀取parameter file 的設置在physical memory中構造instance
通過dbwr進程將SGA的database buffer 中的數據定期或不定期地寫入datafile
同時也將sql指令由lgwr進程記錄在redolog文件中
系統定期將redolog文件copy成為archive文件
系統為了transactional的需要
提供了rollback segment
這樣保證了read consistence
這一門的概念相當多
令人覺得oracle的存儲概念相當細
例如對segment 的block還分了pctfree 和 pctuse
順便也提到了row migrate 與row chain 的概念
可見oracle對邏輯及物理對象的管理能夠非常細致!再有
scn不僅儲存在control file 中
還在datafile 的header 中
scn的引入是為了保證系統各文件之間的協調與連慣
本門許多命令的可選參數基本是不用記的
太多了!也不怎麼考
這些參數在《性能調整》一門中則作了詳細介紹!大家只要記住最基本的語句就行了!
第三門
《備份與恢復》
如果對操作系統備份與恢復有了解的話
會有一定的幫助
但oracle的備份與恢復難點在於對邏輯對象的操作
例如
對table的操作可用import與export命令
而rman是重點
Oracle的備份與恢復有相當多的分類
令人眼花缭亂
有archivelog和noarchivelog
完全備份與不完全備份
只讀表空間的備份
介質恢復
等等
由此可見
oracle的備份比操作系統的備份復雜多了!
在《網絡管理》一門中
最具實際應用意義的是net
的設置及listener 的設置
本門的命令使用還是非常多的
例如在lsnctr
connection manger(cman)
namesctl 方面
ORACLE還自己做了一套與OSI
層網絡結構相對應的協議棧
我想OSI有自己的網絡結構
CISCO也自己搞了一套網絡結構
現在發現ORACLE也有類似的
我覺得可笑
越發感覺OSI做的東西只供參考
沒有被大廠商所采納
我發現ORACLE產品做得相當完善
精彩之處在於它的中間層結構集成了路由器才有的功能
能做對ORACLE 服務的網絡協議轉換
而且connection concentration 做得相當合理
Oracle 公司做一個相當於 DNS server 的 name server 組件
與microsoft DNS 服務器大同小異
在網絡安全授權與認證方面
我發現CISCO與 oracle做得非常相似
例如雙方都有 kerberos
radius 等的authentication 的應用
考這門的時候
如果大家有路由知識
有操作系統網絡知識
這門可說是相當簡單的!也就是說對考過CISCO 及 Microsoft 認證的人
會降低了不少難度!
在《性能調整》一門中
ORACLE的性能調整不能不令人歎服
門類齊全
功能完備
對share pool的調整
細化為對dictionary cache
library cache
big pool的調整
對physical I/O 的調整
更細化為physical datafile
DBW
REDO LOG
LGWR
CKPT
ARCHIVE
SORT
ROLLBACK SEGMENT等的調整
令人不能不歎服
同樣是數據庫管理系統
SQL SERVER
Sybase
甚至是db
都沒有這麼細!對SQL語句和 application design 的調整
是本門最難的一部分
如果大家以前對編譯原理有相當認識
會有不少幫助
ORACLE 對多CPU 系統也專門作了優化
如latch
process
mts
lru等方面的參數設置都與此有關
在這門中
《數據庫管理》當中學過的語句中一些不常用的選項
在這門都作了詳細的介紹
例如
建table 以及index中的nosort選項
是為了減少排序的使用
再如
cache選項
create 和alter table時加上cache是為了將table放在the most
recently
used end of LRU lists
以提高性能
在《數據庫管理》中提到的如analyze 命令的具體用法也作了深化
指出與DBA_TABLE
DBA_INDEX
INDEX_STATS等表相關
操作系統中建議采用raid 來提高磁盤使用效率
將不同文件放在不同磁盤
以減少讀寫磁盤等待時間等的概念
在這裡都提到了
有一些操作系統使用的方法
在ORACLE提供了相似的措施
如stripe 磁盤
能夠提高效率
本門提到的index的使用
相當科學
如建立逆向index
以及 index
organization table這些都符合人們的優化思維!大家如果對《數據庫管理》一門中許多基礎概念清晰理解
學習本門時將受益菲淺
例如 snapshot too old 的概念
切不可以模稜兩可!對於init
ora中的許多參數
oracle認為非常重要
大家要搞清楚
例如large_pool_size的使用
設置
這一門對developer來說也有重要意義
能使程序員更加注重從提高數據庫程序運行效率的角度來編程
從我個人角度來說
這一門課是最值得看了
是對所有概念的總結和升華
在我看來
只要花上三個月時間認真看書
通過OCP DBA的考試應該沒問題的
再有
就是要直接看英文書
這樣才能節省時間
關於DBA考試的中文書沒有哪本不是翻譯過來的
有的錯漏百出!
從實踐角度來看
真正能在工作中用到的知識
也許也就考試肉容的
%左右
但ORACLE在實現這些功能的方法
代表了許多IT廠商實際應用的思路與模型
理解ORACLE的原理
有利於理解其它IT行業產品的使用
歡迎大家來信探討!
From:http://tw.wingwit.com/Article/program/Oracle/201311/18233.html