oracle數據庫數據字典應用


oracle數據字典

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

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

 

數據字典存儲了如下信息:

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

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

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

  ü Oracle用戶名。

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

  ü 完整性約束的信息。

  ü 列的默認值。

  ü 審計信息等。

 

當數據管理員或用戶發了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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM