Oracle 10g 體系結構及安全管理

概述

  從宏觀上看,Oracle數據庫服務器主要由兩部分組成,  數據庫和實例.數據庫

    數據庫是Oracle用於保存數據的一系列物理結構和邏輯結構.服務器

      數據庫是指操做系統下數據文件,控制文件,日誌文件等.通常狀況下,數據庫是靜態的,經過操做能夠修改數據的相關數據,併產生相關日誌及文件.函數

    實例是由服務器在運行過程當中的內存結構和一系列進程組成的.性能

      實例是動態的,由一組內存結構和相關的進程組成,與數據庫密切相關.當操做系統關閉時,實例隨着數據庫關閉也就消失了.spa

物理存儲結構

  Oracle數據庫的內部結構(存儲結構)包括物理存儲結構(Physical Structure)和邏輯存儲結構(Logical Structure),二者密切聯繫,相互關聯.操作系統

  從文件的角度看.數據庫能夠分紅三個層次.Oracle數據庫的物理存儲結構主要包括數據文件(Data File), 控制文件(Control File), 歸檔日誌文件(Archived Log File)等,全部文件都是由操做系統的物理塊組成.日誌

  數據文件

    數據文件(Data File)用來存儲數據和相關腳本的文件.Oracle數據庫由一個或多個數據文件組成.數據文件能夠存儲兩種類型的數據,用戶數據和系統數據.code

  控制文件

    每一個數據庫至少有一個控制文件,通常是三個控制文件,和數據文件放在同一個目錄下.控制文件是特定的二進制文件,通常比較小,其中存放了數據庫文件相關的關鍵信息.對象

    數據庫啓動時,經過控制文件找到數據文件和重作日誌文件,經過控制文件保持數據庫的完整性以及恢復數據時使用那些重作日誌.blog

    數據庫控制文件名經過init.ora文件的CONTROL_RILES參數規定.主要包含的信息類型以下:

      數據庫名

      數據庫建立時間

      數據文件和重作日誌文件的存放位置

      表空間名

      當前日誌序列號

      檢查點信息

      關於重作日誌和歸檔的當前狀態信息

        查看控制文件信息的兩種方法:

SQL > SELECT * FROM v$controlfile;
SQL > SELECT type,record_size,records_total,records_used 
            FROM V$controlfile_record_section 
            WHERE type = 'DATAFILE';

  歸檔日誌文件

    歸檔日誌文件 (Archived Log File) 用於保存被覆蓋的重作日誌文件.

    非歸檔模式就是在數據庫運行時,日誌信息不斷地記錄到日誌文件組中,當日志文件組記錄滿後又從新從第一個日誌組開始覆蓋寫日誌信息,這時不會用到歸檔日誌文件.

邏輯存儲結構

  Oracle數據庫在邏輯上按照從大到小的層次分別爲表空間, 邏輯對象, 段區間和塊,小的邏輯結構包含在大的邏輯結構中.

  表空間

    表空間(Tablespace)是用於存放表,索引和視圖等對象的磁盤邏輯空間,是數據庫中最高級的邏輯存儲結構,是數據庫的邏輯的劃分,是一個或多個物理文件表示.

    在無指定狀況下,默認屬於System表空間.

  邏輯對象

    邏輯對象(Logic Object) 或模式對象,是由用戶建立的邏輯結構,用以包含或引用他們的數據,如表,視圖,索引,簇,存儲過程,序列和同義詞之類的結構.

    可使用你Oracle Enterprise Manager來建立和操做邏輯對象.

  段

    段(segment) 是表空間中指定類型的邏輯結構, 由一個活多個區間組成.一個單獨的表能夠是一個段.

    當分配空間時,以區間爲單位.

    Oracle數據庫中,幾種常見類型的段:

      數據段 (Data Segments). 存放一個表或簇中的全部數據, 當使用create table 自動在表空間上建立data segments.

      索引段 (Index Segments). 存放全部索引數據, 當使用create index自動在表空間上建立index segments.

      回滾段 (Rollback Segments). 存放事物所修改數據的舊值.

      臨時段 (Temporary Segments). 處理SQL 語句和排序數據時所用的工做區間.

  區間

    區間(extent) 是Oracle數據庫的最小存儲單元,由一系列連續的塊組成的空間,每一次系統分配和回收空間都是以區間爲單位進行的.

  塊  

    塊(block) 是Oracle進行邏輯管理的最基本的管理單元,數據庫進行讀寫都是以塊爲單位進行的,其大小與操做系統的塊不一樣,由db_block_size參數決定的:

db_block_size=8192

數據字典

  Oracle數據字典由基表和視圖組成,存儲Oracle系統的活動信息和全部用戶數據庫的定義信息等.

  靜態數據字典

    靜態數據字典是數據庫的一部分,記錄了系統資源信息,用戶登陸信息,數據庫信息等內容.

    靜態數據字典是由一些基表和視圖組成,存在於SYSTEM表空間,可分紅4類,由前綴區分:

數據字典分類
數據字典前綴 說明
ALL 由受權的用戶訪問,顯示全部可訪問的對象信息
USER 由用戶建立,顯示用戶私有的對象信息
DBA 由具備DBA權限的用戶訪問,管理數據庫對象信息
V$ 由具備DBA權限的用戶訪問,顯示運行中的動態信息

   查詢表空間的信息 (當前用戶必須擁有DBA角色)

SQL > SELECT * FROM dba_data_files;

  查詢某一用戶下的全部表,過程,函數等信息

SQL > SELECT owner,object_name,object_type FROM all_objects;

  動態性能表

    動態性能表本質上不是數據字典的一部分,是一組虛擬表,記錄了當前數據庫的活動狀況和參數.動態性能表通常以V$前綴開始.

  經常使用數據字典

基本數據字典
數據字典名稱 說明
DBA_TABLES 全部用戶的全部表信息
DBA_TAB_COLUMNS 全部用戶的表的列(字段)信息
DBA_VIEWS 全部用戶的視圖信息
DBA_SYNONYMS 全部用戶的同義詞信息
DBA_SEQUENCES 全部用戶序列信息
DBA_COUNSTRAINTS 用戶的表的約束信息
DBA_INDEXES 全部用戶索引的信息
DBA_TRIGGERS 全部用戶觸發器信息
DBA_SOURCE 全部用戶存儲過程信息
DBA_SEGMENTS 全部用戶段(表,索引及Cluster)空間信息
DBA_EXTENTS 全部用戶段的擴展信息
DBA_OBJECTS 全部用戶對象的基本信息
CAT 當前用戶能夠訪問的全部基表
TAB 當前用戶建立的全部基表,視圖,同義詞等
DICT 構成數據字典的全部表的信息

 

數據庫相關的數據字典

數據庫對象 數據字典中的表和視圖 說明
數據庫 V$DATABASE 記錄數據庫系統的運行情況
表空間 DBA_TABLESPACES 記錄系統表空間的基本信息
DBA_DATA_FILES 記錄系統數據文件及表空間的基本信息
DBA_FREE_SPACE 記錄系統表空間的自由空間的信息
實例 V$INSTANCE 記錄實例的基本信息
V$PARAMETER 記錄系統各參數的基本信息
V$SYSTEM_PARAMETER 顯示實例當前的有效參數信息
相關文章
相關標籤/搜索