oracle數據庫數據字典應用

oracle數據字典

數據字典是由oracle服務器建立和維護的一組只讀的系統表。數據字典分爲兩類:一是基表,二是數據字典視圖。sql

數據字典視圖包括用戶名、用戶權限、對象名、約束和審計等信息,是經過運行catalog.sql腳本文件來產生的。數據庫

 

數據字典存儲了以下信息:服務器

  ü 數據庫的邏輯結構和物理結構,如表空間和數據文件的信息。oracle

  ü 全部數據庫對象定義的信息。這些對象包括表、索引、視圖、序列號、同義詞、過程、函數、軟件包和觸發器等。app

  ü 全部數據庫對象的磁盤空間分配的信息,如對象所分配的磁盤空間和當前正在使用的磁盤空間。函數

  ü Oracle用戶名。性能

  ü 每一個用戶所授予的權限和角色。spa

  ü 完整性約束的信息。日誌

  ü 列的默認值。對象

  ü 審計信息等。

 

當數據管理員或用戶發了DDLDCL語句時,oracle服務器都要將相關的信息記錄到數據字典中。其中DML語句有;插入(insert)、修改(update

 

數據字典表:存儲在系統表空間,信息來源於以$結尾的基表。

   user_xxxs:顯示當前用戶所擁有的對象信息。

   all_xxxs:顯示當前用戶所擁有的以及有權利查看的對象信息。

   dba_xxxs:顯示數據庫全部的對象信息,只有管理員用戶才能訪問。

  xxx能夠爲tablesindexesobjects等。

 

動態性能視:結構在內存中初始化,信息來源於內存和控制文件,數據庫在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

相關文章
相關標籤/搜索