Oracle數據字典

一、概述

Oracle通過數據字典來管理和展現數據庫信息,數據字典儲存數據庫的元數據,是數據庫的“數據庫”。數據字典由4部分組成:內部RDBMS(X$)表、數據字典表、動態性能視圖(V$)和(靜態)數據字典視圖。

數據字典系統表,保存在system表空間中。執行以下語句可以查詢所有數據字典:

select * from dictionary;

二、內部RDBMS(X$)表

X$表示Oracle數據庫的核心部分,這些表用於跟蹤數據庫內部信息,維持數據庫的正常運行。X$表是加密命名的,而且Oracle不做文檔說明,也不允許sysdba以外的用戶直接訪問,顯示授權不被允許。X$表是Oracle數據庫的運行基礎,在數據庫啓動時由Oracle應用程序動態創建。

三、動態性能視圖

動態性能視圖記錄了數據庫運行時信息和統計數據,大部分動態性能視圖被實時更新以及反映數據庫當前狀態。在數據庫啓動時,Oracle動態創建X$表,在此基礎上,Oracle創建了GV$和V$視圖,GV$即Global V$,除了一些特例外,每個V$都對應一個GV$。GV$產生是爲了OPS/RAC環境的需要,每個V$都是基於GV$的,只是GV$多了INST_ID列來顯示實例ID。

v$database數據庫信息

v$datafile數據文件信息

v$controlfile控制文件信息

v$logfile重做日誌信息

v$instance數據庫實例信息

v$log日誌組信息

v$loghist日誌歷史信息

v$sga數據庫SGA信息

v$parameter初始化參數信息

v$process數據庫服務器進程信息

v$bgprocess數據庫後臺進程信息

v$controlfile_record_section控制文件記載的各部分信息

v$thread線程信息

v$datafile_header數據文件頭所記載的信息

v$archived_log歸檔日誌信息

v$archive_dest歸檔日誌的設置信息

v$logmnr_contents歸檔日誌分析的DMLDDL結果信息

v$logmnr_dictionary日誌分析的字典文件信息

v$logmnr_logs日誌分析的日誌列表信息

v$tablespace表空間信息

v$tempfile臨時文件信息

v$filestat數據文件的I/O統計信息

v$undostatUndo數據信息

v$rollname在線回滾段信息

v$session會話信息

v$transaction事務信息

v$rollstat回滾段統計信息

v$pwfile_users特權用戶信息

v$sqlarea當前查詢過的sql語句訪問過的資源及相關的信息

v$sql與v$sqlarea基本相同的相關信息

v$sysstat數據庫系統狀態信息

四、數據字典表

數據字典表(Data dictionary
table)用以存儲表、索引、約束以及其它數據庫結構的信息,這些對象通常以“$”結尾(例如:TAB$、OBJ$、TS$等),在創建數據庫的時候通過運行$ORACLE_HOME/rdbms/admin/sql.bsq腳本來創建。

五、靜態數據字典視圖

由於X$表和數據字典表通常不能直接被用戶訪問,Oracle創建了靜態數據字典視圖來提供用戶對於數據字典信息的訪問,由於這些信息通常相對穩定,不能直接修改,所以又被稱爲靜態數據字典視圖。靜態數據字典視圖在創建數據庫時由$ORACLE_HOME/rdbms/admin/catagory.sql腳本創建。

靜態數據字典視圖按照前綴的不同通常分成三類,在本質上是爲了實現權限控制。在Oracle數據庫中,每個用戶與方案(Schema)是對應的,Schema是用戶所擁有的對象的集合。數據庫通過Schema將不同用戶的對象隔離開來,用戶可以自由的訪問自己的對象,但是要訪問其他Schema對象就需要相關的授權。

1、USER_*(用戶所擁有的相關對象信息)

user_objects用戶對象信息

user_source數據庫用戶的所有資源對象信息

user_segments用戶的表段信息

user_tables用戶的表對象信息

user_tab_columns用戶的表列信息

user_constraints用戶的對象約束信息

user_sys_privs當前用戶的系統權限信息

user_tab_privs當前用戶的對象權限信息

user_col_privs當前用戶的表列權限信息

user_role_privs當前用戶的角色權限信息

user_indexes用戶的索引信息

user_ind_columns用戶的索引對應的表列信息

user_cons_columns用戶的約束對應的表列信息

user_clusters用戶的所有簇信息

user_clu_columns用戶的簇所包含的內容信息

user_cluster_hash_expressions散列簇的信息

2、ALL_*(用於有權限訪問的所有對象的信息)

all_users數據庫所有用戶的信息

all_objects數據庫所有的對象的信息

all_def_audit_opts所有默認的審計設置信息

all_tables所有的表對象信息

all_indexes所有的數據庫對象索引的信息

3、DBA_(數據庫所有相關對象的信息)

dba_users數據庫用戶信息

dba_segments表段信息

dba_extents數據區信息

dba_objects數據庫對象信息

dba_tablespaces數據庫表空間信息

dba_data_files數據文件設置信息

dba_temp_files臨時數據文件信息

dba_rollback_segs回滾段信息

dba_ts_quotas用戶表空間配額信息

dba_free_space數據庫空閒空間信息

dba_profiles數據庫用戶資源限制信息

dba_sys_privs用戶的系統權限信息

dba_tab_privs用戶具有的對象權限信息

dba_col_privs用戶具有的列對象權限信息

dba_role_privs用戶具有的角色信息

dba_audit_trail審計跟蹤記錄信息

dba_stmt_audit_opts審計設置信息

dba_audit_object對象審計結果信息

dba_audit_session會話審計結果信息

dba_indexes用戶模式的索引信息

六、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道

如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章