當前位置:首頁 » 數據倉庫 » oracle資料庫性能監控
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫性能監控

發布時間: 2022-10-23 13:29:56

① 想往Oracle資料庫方向發展.請教些問題

我就是運維的,搞運維知識得非常全面,Linux命令得全會,因為要用sqlPLUS,
要會資料庫備份,冷備份,熱備份,RMAN使用,數據導入導出,
ORACLE10G/11G 的操作,主要是表、索引、觸發器建立刪除,數據清理,熟悉SQL語句查詢

ORACLE性能調整,高可用搭建,standby搭建等。。。很多

② 如何查詢Oracle性能監控

1.查看臨時表空間使用情況

Select
f.tablespace_name
,sum(f.bytes_free + f.bytes_used)
/1024/1024/1024 "total GB"
,sum((f.bytes_free + f.bytes_used) - nvl(p.bytes_used, 0))
/1024/1024/1024 "Free GB"
,sum(nvl(p.bytes_used, 0))
/1024/1024/1024 "Used GB"
from sys.v_$temp_space_header f, dba_temp_files d, sys.v_$temp_extent_pool p
where f.tablespace_name(+) = d.tablespace_name
and f.file_id(+) = d.file_id
and p.file_id(+) = d.file_id
group by
f.tablespace_name

2.查看使用臨時表空間的SQL

Select se.username,
se.sid,
su.extents,
su.blocks * to_number(rtrim(p.value)) as Space,
tablespace,
segtype,
sql_text
from v$sort_usage su, v$parameter p, v$session se, v$sql s
where p.name = 'db_block_size'
and su.session_addr = se.saddr
and s.hash_value = su.sqlhash
and s.address = su.sqladdr
order by se.username, se.sid

3.收縮臨時表空間

alter tablespace temp shrink space;

alter tablespace temp shrink tempfile ''

4.重建索引

alter index PK_CROSSRELATION rebuild;

5.查看錶空間使用情況

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
D.TOT_GROOTTE_MB "表空間大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空閑空間(M)",
F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;

6.查詢表空間的總容量

select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name;

7. 查詢表空間使用率

select total.tablespace_name,
round(total.MB, 2) as Total_MB,考試大論壇
round(total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where free.tablespace_name = total.tablespace_name;

8. 查找當前表級鎖的SQL如下:

select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;

殺掉鎖表進程:
alter system kill session '436,35123';


9.監控當前資料庫誰在運行什麼SQL語句
select osuser, username, sql_text
from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;


10.找使用CPU多的用戶session
select a.sid,spid,status,substr(a.program,1,40) prog, a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=12 and
c.sid=a.sid and
a.paddr=b.addr
order by value desc;

11.查看死鎖信息
SELECT (SELECT username
FROM v$session
WHERE SID = a.SID) blocker, a.SID, 'is blocking',
(SELECT username
FROM v$session
WHERE SID = b.SID) blockee, b.SID
FROM v$lock a, v$lock b
WHERE a.BLOCK = 1 AND b.request > 0 AND a.id1 = b.id1 AND a.id2 = b.id2;

12.具有最高等待的對象
SELECT o.OWNER,o.object_name, o.object_type, a.event,
SUM (a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, dba_objects o
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.current_obj# = o.object_id
GROUP BY o.OWNER,o.object_name, o.object_type, a.event
ORDER BY total_wait_time DESC;


13.查看具有最高等待的對象

SELECT a.session_id, s.osuser, s.machine, s.program, o.owner, o.object_name,
o.object_type, a.event,
SUM (a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, dba_objects o, v$session s
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.current_obj# = o.object_id
AND a.session_id = s.SID
GROUP BY o.owner,
o.object_name,
o.object_type,
a.event,
a.session_id,
s.program,
s.machine,
s.osuser
ORDER BY total_wait_time DESC;

14.查看等待最多的SQL

SELECT a.program, a.session_id, a.user_id, d.username, s.sql_text,
SUM (a.wait_time + a.time_waited) total_wait_time
FROM v$active_session_history a, v$sqlarea s, dba_users d
WHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE
AND a.sql_id = s.sql_id
AND a.user_id = d.user_id
GROUP BY a.program, a.session_id, a.user_id, s.sql_text, d.username;

15.顯示正在等待鎖的所有會話

SELECT * FROM DBA_WAITERS;

③ java代碼實現監控oracle使用情況

  1. 通過JMX技術來監控Oracle的JVM

2. 阿里巴巴資料庫連接池(具有數據連接監控功能)


Druid是一個JDBC組件,它包括三部分:

DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的插件體系。

DruidDataSource 高效可管理的資料庫連接池。

SQLParser

Druid可以做什麼?

1) 可以監控資料庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對於線上分析資料庫訪問性能有幫助。

2) 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的資料庫連接池。

3) 資料庫密碼加密。直接把資料庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。

4) SQL執行日誌,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫訪問情況。

擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

④ ORACLE中DBSNMP用戶是干什麼用的

DBSNMP是Oracle資料庫中用於智能代理(Intelligent Agent)的用戶,用來監控和管理資料庫相關性能的用戶,如果停止該用戶,則無法提取相關的數據信息;

⑤ oracle客戶端與服務端有什麼區別

oracle客戶端與服務端有什麼區別:

1、oracle服務端是指裝在資料庫伺服器上的oracle主服務,資料庫的核心,用於資料庫的管理,數據的與存儲、查詢、資料庫資源的監控、監聽等服務。

oracle客戶端只是指與服務端交互的工具,要登錄使用oracle資料庫服務就需要安裝客戶端(例如PLSQL),利用PLSQL連接到資料庫,來執行oralce服務的一些增刪改查等操作。

2、伺服器端不一定在本地(client一定在本地),所以需要在客戶端配置TNSNAMES.ORA文件。在文件中添加服務名和IP。

3、oracle資料庫服務都會有一個全局資料庫名例如:orcl,這是在安裝資料庫時指定的。如果要安裝多個資料庫,那麼這個全局資料庫名必須不一樣。伺服器端的listener文件里配置有監聽程序,可以配置多個監聽IP。

而oracle客戶端連接服務端是就要配置oracle的實例名來確認資料庫信息。

4、伺服器端的客戶工具是通過伺服器端tnsnames.ora和listener.ora進行驗證並建立連接;

遠程客戶端是通過客戶端的tnsnames.ora和伺服器端的listener.ora執行驗證和建立連接。

⑥ 如何實時監控oracle資料庫中是否有新紀錄

在要監控的表A中創建觸發器,把新記錄數據,更新到另外一張表B,
應用定期查詢B的時間,前後兩次查詢的結果一樣就是沒有更新,不一樣就是有新記錄。
當然也可以直接查詢原表A,不過A的數據一多就影響性能了。

⑦ oracle資料庫管理培訓

Oracle資料庫管理專題
時間主要授課內容
第一單元
內容一:簡介(資料庫體系結構)描述課程目標研究 Oracle 10g 資料庫體系結構
內容二:安裝 Oracle 資料庫軟體解釋 DBA 核心任務和工具 計劃 Oracle 安裝 使用最佳的靈活的體系結構 使用 Oracle Universal Installer (OUI) 安裝軟體
內容三:創建 Oracle 資料庫使用資料庫配置助手 (DBCA) 創建資料庫 使用 DBCA 創建資料庫設計模板 使用 DBCA 生成資料庫創建腳本
內容四:管理 Oracle 常式啟動和停止 Oracle 資料庫及組件 使用 Oracle Enterprise Manager (EM) 使用 SQL*Plus 和 iSQL*Plus 訪問資料庫 修改資料庫初始化參數 了解資料庫啟動階段 查看預警日誌 使用數據字典
內容五:使用RMAN工具RMAN使用及維護
第二單元
內容一:使用簡單的SELECT語句SELECT語句的語法檢索出來的數據排序用WHERE設置檢索條件GROUP BY和HAVING使用子查詢 連接查詢
內容二:oracle 11g中支持的數據類型Oracle 11g中數據類型介紹
內容三:視圖解釋視圖的概念使用數據字典視圖生成簡單和復雜的視圖生成帶約束選項的視圖 修改視圖
內容四:相關的DDL和DML語句使用DDL語句使用DML語句
內容五:實現數據完整性1.主鍵約束 2.外鍵約束3.CHECK 4.UNIQUE5.NOT NULL
內容六:oracle內置函數介紹使用函數的基本概念在SELECT語句中使用的各種字元,數字,日期函數說明轉換函數的定義及使用介紹其他常用函數
第三單元
內容一:視圖解釋視圖的概念使用數據字典視圖生成簡單和復雜的視圖生成帶約束選項的視圖修改視圖
內容二:存儲過程解釋存儲過程的概念存儲過程分類 自定義存儲過程存儲過程中的參數傳遞
內容三:觸發器解釋觸發器的概念及作用觸發器的分類實現觸發器
內容四:事務和鎖1、事務的類型及機制2、事務分類3、實現事務4、鎖的類型及使用
內容五:游標游標簡介 使用游標
第四單元
內容一:管理資料庫存儲結構描述表數據存儲(以塊為單位) 定義表空間和數據文件的用途 了解和使用 Oracle Managed Files (OMF) 創建和管理表空間 5、獲取表空間信息 描述自動存儲管理 (ASM) 的主要概念和功能
內容二:管理用戶安全性創建和管理資料庫用戶帳戶 對用戶進行驗證 分配默認的存儲區(表空間)授予許可權和撤消許可權創建和管理職責 創建和管理配置文件 實施標准口令保護功能 控制用戶對資源的使用
內容三:管理方案對象定義方案對象和數據類型 創建和修改表 3、定義約束條件 查看錶的列和內容 創建索引、視圖和序號 解釋臨時表的用途 使用數據字典
第五單元
內容一:管理數據和並發處理能力通過 SQL 管理數據 確定和管理 PL/SQL 對象描述觸發器和觸發事件監控和解決鎖沖突
內容二:管理撤消數據解釋 DML 和撤消數據生成 監控和管理撤消 描述撤消數據和重做數據之間的區別 配置撤消保留 保障撤消保留 使用撤消 Advisor
內容三:實施 Oracle 資料庫安全性描述 DBA 安全性責任 應用最少許可權原則 啟用標准資料庫跟蹤 指定跟蹤選項 復查跟蹤信息 維護跟蹤線索
第六單元
內容一:配置 Oracle Network 環境使用 Oracle 11G Enterprise Manager 配置 Oracle Network 環境 創建其它監聽程序 創建 Oracle Net Service 別名 配置連接時故障轉移 控制 Oracle Net Listener 測試 Oracle Net 的連接性 確定何時使用共享伺服器和專用伺服器
內容二:積極維護1、使用統計數據 2、描述指導框架3、管理自動工作量資料檔案庫 (AWR) 4、使用自動資料庫診斷監控程序 (ADDM) 設置預警閾值 使用伺服器生成的預警 使用自動任務
內容三:性能管理使用 Oracle Enterprise Manager 頁監控性能 使用 SQL Tuning Advisor 使用 SQL Access Advisor 使用共享內存的自動管理 使用內存 Advisor 設置內存緩沖區的大小 使用與性能相關的動態視圖 排除無效或不可用的對象中的故障
第七單元
內容一:備份和恢復的概念確定 Oracle 資料庫中可能出現的錯誤類型 描述優化常式恢復的方法 確定檢查點、重做日誌文件和歸檔日誌文件的重要性 配置 ARCHIVELOG 模式
內容二:執行資料庫備份創建一致的資料庫備份 在不關閉資料庫的情況下進行備份 創建增量備份 自動資料庫備份 監控快速恢復區
內容三:執行資料庫恢復恢復丟失的控制文件 恢復丟失的重做日誌文件 在數據文件丟失後執行完全恢復
內容四:執行FlashBack描述閃回資料庫 使用閃回表將表內容還原到過去的某一特定時間點恢復已刪除的表使用閃回查詢查看截至任意時間點的資料庫內容 使用閃回版本查詢查看一段時間內的行版本 使用閃回事務處理查詢查看行的事務處理歷史記錄
內容五:移動數據描述移動數據的可用方法 創建和使用目錄對象 使用 SQL*Loader 從 Oracle 資料庫(或用戶文件)中裝入數據 解釋數據泵的通用體系結構 使用數據泵的導出和導入功能在 Oracle 資料庫之間移動數據 使用外部表並通過平台獨立文件移動數據
內容六:資料庫應用在java中連接oracle:JDBC與ODBC使用與連接 介紹一個資料庫設計的實例

⑧ 如何查詢Oracle性能監控

可以通過生成資料庫性能報告查看資料庫性能

資料庫版本:oracle 9i
statspack
SQL> conn perfstat/perfstat

SQL> execute statspack.snap

SQL> @$ORACLE_HOME/rdbms/admin/spreport.sql

資料庫版本:oracle 10g,11g

awr
SQL> execute dbms_workload_repository.create_snapshot;

SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql