oracle資料字典
資料字典是由oracle伺服器建立和維護的一組只讀的系統表。資料字典分為兩類:一是基表,二是資料字典檢視。
資料字典檢視包括使用者名稱、使用者許可權、物件名、約束和審計等資訊,是通過執行catalog.sql指令碼檔案來產生的。
資料字典儲存瞭如下資訊:
ü 資料庫的邏輯結構和物理結構,如表空間和資料檔案的資訊。
ü 所有資料庫物件定義的資訊。這些物件包括表、索引、檢視、序列號、同義詞、過程、函式、軟體包和觸發器等。
ü 所有資料庫物件的磁碟空間分配的資訊,如物件所分配的磁碟空間和當前正在使用的磁碟空間。
ü Oracle使用者名稱。
ü 每個使用者所授予的許可權和角色。
ü 完整性約束的資訊。
ü 列的預設值。
ü 審計資訊等。
當資料管理員或使用者發了DDL或DCL語句時,oracle伺服器都要將相關的資訊記錄到資料字典中。其中DML語句有;插入(insert)、修改(update)
資料字典表:儲存在系統表空間,資訊來源於以$結尾的基表。
user_xxxs:顯示當前使用者所擁有的物件資訊。
all_xxxs:顯示當前使用者所擁有的以及有權利檢視的物件資訊。
dba_xxxs:顯示資料庫所有的物件資訊,只有管理員使用者才能訪問。
xxx可以為tables、indexes、objects等。
動態效能視圖:結構在記憶體中初始化,資訊來源於記憶體和控制檔案,資料庫在mount狀態可以訪問的
是基於x$結尾的檢視。
v$xxx 當前例項 (v$instance v$database v$version)
gv$xxx 所有例項
nomount階段就有,open階段有表空間檢視
可使用模糊查詢找到需要的資料字典檢視 ,資料庫處於open狀態 。
SYS@openlab> select table_name from dict where lower(table_name) like `dba%user%`;
SYS@openlab>desc dict
Name Null? Type
—————————————– ——– —————————-
TABLE_NAME VARCHAR2(30)
COMMENTS VARCHAR2(4000)
在資料庫處於nomount狀態下可以查詢動態效能檢視。
SYS@openlab> select count(*) from v$fixed_table;
COUNT(*)
———-
2062
資料字典應用例項:
SQL> connect sys/oracle as sysdba
Connected.
資料庫名字、建立日期
SQL> select name,created,log_mode,open_mode
2 from v$database;
NAME CREATED LOG_MODE OPEN_MODE
——— ———— ———— ——————–
OCP 14-JAN-18 NOARCHIVELOG READ WRITE
查詢版本資訊
SQL> select * from v$version;
BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
PL/SQL Release 11.2.0.4.0 – Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 – Production
NLSRTL Version 11.2.0.4.0 – Production
檢視控制檔案
SQL> col name for a60
SQL> select name from v$controlfile;
NAME
————————————————————
/u01/app/oracle/oradata/ocp/control01.ctl
/u01/app/oracle/oradata/ocp/control02.ctl
檢視重做日誌組成員等資訊
SQL> select group#,members,bytes,status,archived
2 from v$log;
GROUP# MEMBERS BYTES STATUS ARC
———- ———- ———- —————- —
1 1 104857600 INACTIVE NO
2 1 104857600 INACTIVE NO
3 1 104857600 CURRENT NO
重做日誌存放位置
SQL> col member for a60
SQL> select group#,member
2 from v$logfile;
GROUP# MEMBER
———- ————————————————————
3 /u01/app/oracle/oradata/ocp/redo03.log
2 /u01/app/oracle/oradata/ocp/redo02.log
1 /u01/app/oracle/oradata/ocp/redo01.log
資料庫備份和恢復策略,歸檔檔案位置
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 4
Current log sequence 6