TOP1 : 錄影機OS Watcher
如果說,作為一個Oracle維護工程師,你至少應該裝一個工具在你維護的系統裡,那麼我首推這個。它就像銀行自助取款機頂上的攝像頭,默默的記錄下你作業系統中的一切,在你需要回顧的時候,隨時拿來看看。MOS下載地址:文件 ID 1614397.1
通過startOSW.sh命令來啟動,stopOSW.sh命令來結束。它啟動之後預設只會保留3天的資料,如果你需要更多,需要手動設定下。需要特別提醒的是,如果使用了Oracle RAC,那你一定要記得去配置一下prvnet,他會記錄你私有網路心跳的狀態。
為了節約空間,它會每小時的資訊單獨打包成一個gzip壓縮檔案,需要看哪個時間段的,解壓開來即可。很多時候某個系統半夜就出現了異常端倪,直到上班才正式爆發,如果隨手安裝了OSW,那麼問題處理起來會非常快。跟OSW功能類似的另外一個工具是nmon,不過只有AIX和Linux平臺,如果掌握了OSW和oratop,那麼nmon也可以退休了。
TOP2:監視器oratop
顧名思義,oratop是向top致敬,用類似於Unix/Linux裡top命令的展現方式實時展現資料庫的相關資訊。
下載連結:
oratop – Utility for Near Real-time Monitoring of Databases, RAC and Single Instance(1500864.1) |
用法也很簡單oratop
system/manager@dbhost:4800/db1.domain.com
值得一提的是,不僅僅支援單例項資料庫,還支援RAC、Active DG,以及12c多租戶資料庫。
oratop實在太容易上手了,功能不做進一步的說明,你用用就會。
TOP3:快刀手:ora
與oratop不一樣的是,ora完全是響應式的,整合了諸多需要通過一長串SQL語句才能實現功能查詢。這個工具最開始也是Oracle開發的,DBA在使用過程中可以根據自己的需要,增加新的功能點,在問題分析過程中最快速的得知資料庫物件的情況,做出相應的處理抉擇:
比如某個系統CPU突然飆高了,可以使用ora active|wc –l看看有多少個活動的語句,可以通過ora active|grep sequen 看看同時等待順序讀的SQL都是哪些,ora sqltext SQL_ID可以看到具體的SQL語句,通過ora plan SQL_ID 可以檢視具體的執行計劃,是否同一個語句有多個執行計劃;通過ora size可以看到相應表多大,有哪些索引,什麼時候做過統計資訊蒐集。看到這些內容,基本的SQL情況相信你也瞭然於胸了。
Top4:視覺化:SQL Devloper
前述三個都是命令列的工具,不方便用圖形介面的技術咖常用的利器。如果你之前一直很喜歡用圖形介面,盜版的Toad,PL/SQL Developer用了十幾年的,那建議你用用免費的SQL Developer,最新版本是4.1.3:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
Top5:3A認證:AWR/ASH/ADDM
這三個指令碼,都在$ORACLE_HOME/rdbms/admin目錄下。
絕大部分的工程師在系統效能檢查的時候,至少都會看看AWR。如果需要看具體某幾分鐘內的資料庫情況,通常要藉助ASH,如果想讓Oracle幫你自動診斷,那就得藉助於ADDM了。
對於效能比較在意的系統,建議把AWR從預設的1小時採集一次調整到30分鐘。楊建榮為這3個指令碼做了定製,可以參考DBA+之前的文章進行學習。
Top6:小保健:ORAchk
ORAchk 之前被稱為RACcheck,後來它的檢查範圍進行了擴充套件,改名為了ORAchk,它是在資料庫系統進行健康檢查的一個專用工具,這個工具主要用來檢查軟體的配置是否符合要求以及一些最佳實踐是否被應用了。通過這個工具,使用者可以很方便地、自動化地對自己的系統進行健康檢查和評估。如果你是用了Exadata,那Oracle還提供了exachk工具。
檢查的專案包括:
-
OS kernel 引數
-
OS 包/補丁
-
OS上其它和RAC相關的配置
-
CRS/Grid Infrastructure
-
RDBMS
-
ASM
-
資料庫引數
-
對於RAC資料庫影響較大的設定
-
升級到11.2.0.3/11.2.0.4/12c時的升級檢查
-
Maximum Availability Architecture (MAA)檢查
檢查結果網頁式輸出,當然了,有些問題你不必在意。
TOP7:大保健:RDA
RDA是Remote Diagnostic Agent 的簡稱,是oracle用來收集、分析資料庫的工具,執行該工具不會改變系統的任何引數,RDA收集的相關資料非常全面,可以簡化我們日常監控、分析資料庫的工作,Oracle Support也建議我們在反饋相關問題時,提供RDA收集的資料,這樣可以為快速解決問題提供一個有力的保證。
RDA比ORAchk更加複雜,也更加全面,支援的模組非常多:
$./rda.sh -L modules
Available data collection modules are:
ACFS Collects ASM Cluster File System Information
ACT Collects Oracle E-Business Suite Application Information
ADBA Collects ACS Oracle Database Assessment
ADX Collects AutoConfig and Rapid Clone Information
AGT Collects Enterprise Manager Agent Information
APEX Collects APEX Information
ASAP Collects Oracle Communications ASAP Information
ASBR Collects Application Server Backup and Recovery Information
ASG Collects Application Server Guard Information
ASIT Collects Oracle Application Server Installation Information
ASM Collects Automatic Storage Management Information
B2B Collects Oracle Business to Business Information
BAM Collects Business Activity Monitoring Information
BEE Collects Beehive Information
BRM Collects Oracle Communications BRM Information
CCR Collects OCM Diagnostic Information
CFG Collects Key Configuration Information
COHR Collects Oracle Coherence Information
CONT Collects Oracle Content Services Information
CRID Collects Oracle Access Manager (COREid) Information
D2PC Collects Distributed Transaction Information
DB Controls RDBMS Data Collection
DBA Collects RDBMS Information
DBC Collects Database Control Information
DBM Collects RDBMS Memory Information
DEV Collects Oracle Developer Information
DG Collects Data Guard Information
EXA Collects Exadata Information
FLTR Controls Report Content Filtering
INST Collects the Oracle Installation Information
IPSA Collects Oracle Communications IP Service Activator Information
J2EE Collects J2EE/OC4J Information
JDBC Collects Oracle Java DB Connectivity (JDBC) Information
(…… 省略部分)
XDB Collects XDB Information
XSMP Samples User Defined Data
XTRA Collects User Defined Data
可以根據需要選擇只關注的模組進行配置,./rda.sh -S OS DB DBA INST
Top8: 救命寶:RMAN
其實選RMAN的時候我比較糾結,按理說大家都應該掌握,不需要額外提及了。或者說,這應該算是資料庫工程師維護的常識了吧。
之所以放在這裡,是因為前天上午7點多,一個Oracle使用者電話過來,說他們工程師在好幾天之前刪了一張表,問我能不能找回來。我首先問有沒有備份,不管RMAN還是data pump,答覆是沒有。再問有沒有歸檔日誌,還有幾個。
用RMAN,不僅要記得做備份,還應該每年至少一次的恢復驗證,免得備了也白備
Top9: 巨無霸:OEM CC
OEM企業管理器從8i的單機版到現在的OEM13c CC(Cloud Control),不僅僅是變得更漂亮了,考過OCM的同學都有印象,如果你的DG不用OEM,光記那繁雜的命令就搞死你了。
OEM裡,有一個工具你千萬別忘了,就是OSM,周俊和魏興華同學在我們的公眾號上發表過專門論述的文章,值得看看(不用OEM也可以用OSM)。
現在的OEM,除了Oracle資料庫,其他你想監控和管理的一切,幾乎都可以往上面塞。有點類似IBM的tivoli和HP的openview,逐漸的變得臃腫,而不那麼稱手了。
如上的9個工具包含維護、優化和備份,如果你都學好了,至少也是一箇中級DBA了吧。