Oracle性能分析入門學習中,遇到Oracle數據庫的性能問題,壹般首要的步驟就是導出AWR的分析報告,AWR是10g中新引入的壹個工具,在這之前壹般是利用statspack。要導出AWR報告,只要利用Oracle的壹個腳本即可以完成,下面是我利用script錄制的壹段導出AWR report的過程。
首先進入$ORACLE_HOME/rdbms/admin目錄,在sqlplus下運行@awrrpt腳本,按照提示壹步壹步就可以達成,導出的格式有兩種,txt格式和html格式。
在OTN上,有壹個DBA新feature系列,第六周就是專門講的這個feature,大家可以去那裏了解壹下(中文的)
Script started on Sun 27 Jan 2008 08:47:15 PM PST
[ractest@sun880-1 /u01/app/oracle/orahome/rdbms/admin]$ cd $ORACLE_HOME/rdbms/admin
[ractest@sun880-1 /u01/app/oracle/orahome/rdbms/admin]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 – Production on Sun Jan 27 20:47:38 2008
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> @awrrpt
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
———– ———— ——– ————
2080780909 ORCLDB 1 orcldb1
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter ‘html’ for an HTML report, or ‘text’ for plain text
Defaults to ‘html’
Enter value for report_type: text
Type Specified: text
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
———— ——– ———— ———— ————
* 2080780909 1 ORCLDB orcldb1 sun880-1
2080780909 4 ORCLDB orcldb4 sun880-4
2080780909 2 ORCLDB orcldb2 sun880-2
2080780909 3 ORCLDB orcldb3 sun880-3
Using 2080780909 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing without
specifying a number lists all completed snapshots.
Enter value for num_days: 1
Listing the last day’s Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
———— ———— ——— —————— —–
標籤: Oracle
Oracle_基本概念和體系
是磁盤上存儲的數據的集合(包括配置文件、數據文件、日誌文件和控制文件等)
數據庫實例
運行在數據庫文件上的壹組Oracle後臺進程/線程以及壹個共享內存區。數據庫可以由實例裝載
和打開。
oracle實時應用集群(RAC,Real Application Clusters)
oralce並行服務器架構/RAC架構
數據庫服務名
從oracle8i開始引入,數據庫客戶端與服務器端連接時建議指定其數據庫服務名,而不是數據庫
實例名。
網絡服務名
數據庫在客戶端的邏輯表示,包含數據庫服務名和網絡地址兩方面信息。
監聽器
鎖
ORACLE裏鎖有以下幾種模式:
——————————————————
0:none
——————————————————
1:null 空
Select,有時會在v$locked_object出現。
——————————————————
2:Row-S 行共享(RS):共享表鎖,sub share
2級鎖有:Select for update,Lock For Update,Lock Row Share
select for update當對話使用for update子串打開壹個遊標時,所有返回集中的數據行都將處於行級(Row-X)獨占式鎖定,其他對象只能查詢這些數據行,不能進行update、delete或select for update操作。
——————————————————
3:Row-X 行獨占(RX):用於行的修改,sub exclusive
3級鎖有:Insert, Update, Delete, Lock Row Exclusive
沒有commit之前,如果另外壹個會話插入同樣的壹條記錄會沒有反應, 因為後壹個3的鎖會壹直等待上壹個3的鎖, 我們必須釋放掉上壹個才能繼續工作。
——————————————————
4:Share 共享鎖(S):阻止其他DML操作,share
4級鎖有:Create Index, Lock Share
locked_mode為2,3,4不影響DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作會提示ora-00054錯誤。
00054, 00000, “resource busy and acquire with NOWAIT specified”
// *Cause: Resource interested is busy.
// *Action: Retry if necessary.
——————————————————
5:S/Row-X 共享行獨占(SRX):阻止其他事務操作,share/sub exclusive
5級鎖有:Lock Share Row Exclusive
具體來講有主外鍵約束時update/delete…;可能會產生4,5的鎖。
——————————————————
6:exclusive 獨占(X):獨立訪問使用,exclusive
6級鎖有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive
如何搭建Oracle SOA Suite
搭建壹個從開發到部署的完整的Oracle SOA環境,需要以下三個產品:
Oracle數據庫
支持版本有:9i、10g、olite和XE。
JDeveloper(IDE)
JDeveloper是壹款開發利器,裏面不僅集成了Oracle自己的J2EE開發框架還提供了便捷的單元測試、Oracle數據庫客戶端和部署應用程序等功能。除了Oracle自己還有許多開源團隊在不斷奉獻著精彩的plugin。但是坦白的說,Jdeveloper的性能不是十分理想,比較耗費內存,有時會發生窗口“白化”。我曾經問過幾個Developer,他們給我的回答是:“壹個東西功能太強大了,包含太多的東西,有時會…”,我知道這不是壹個滿意的答案,但是我清楚的知道,如果妳將來的工作都是與Oracle的產品相關的話,JDeveloper絕對是正確的選擇。這裏我給出的,呵呵,應該Oracle官方給出的推薦的最小內存是512M。
SOA Suite
請關註“hot-pluggable”,我給它的解釋就是“熱插拔”,因為包括BPEL、ESB、RULES和EM等在內的component(組件)都是作為應用程序部署在OC4J上的,妳可以隨意的start、stop、deploy或deploy。