Oracle體系結構前必掌握的2個概念

一、數據庫

    數據庫(database)是一個數據集合。

    無論數據庫是採用關係結構還是面向對象結構, oracle數據庫都將

    其數據存放在數據文件中。 在其內部, 數據庫結構數據對文件的邏輯

    映射, 使不同的數據分開存儲, 這些邏輯劃分稱爲表空間。

    表空間和文件介紹:

    1: 表空間

    表空間(tablespace)是數據庫的邏輯劃分, 每個數據庫至少有一個表空間,叫做系統表空間(system 表空間)。 一個表空間只能屬於一個數據庫。

    每個表空間由同一個磁盤上的一個或多個文件組成, 這些文件稱爲數據文件。

    表空間的特性:

    (1)控制數據庫數據磁盤分配

    (2)限制用戶在表空間中可以使用的磁盤空間大小

    (3)表空間具有 online, offline, readonly, readwrite屬性

    修改表空間的屬性:

    SQL> alter tablespace 表空間名稱 屬性;

    查詢表空間狀態:

    SQL> select tablespace_name, status from dba_tablespaces;

    注意: system, undo, temp表空間不能設爲offline屬性。

    (4)完成部分數據庫的備份與恢復

    (5)表空間通過數據文件來擴大, 表空間的大小等於構成該表空間的所以數據文件的大小隻和。

    查詢表空間與數據文件對應關係:

    SQL> select tablespace_name, bytes, file_name from dba_data_files;

    基於表空間的幾個操作:

    (1)查詢用戶缺省表空間:

    SQL> select username, default_tablespace from dba_users;

    (2)查詢表與存儲該表的表空間:

    SQL> select table_name, tablespace_name from user_tables;

    (3)修改用戶缺省表空間:

    SQL> alter user username default tablespace tablespace_name;

    (4)將數據從一個表空間移動到另一個表空間:

    SQL> alter table table_name move tablespace tablespace_name;

    2.數據文件

    每個表空間由同一個磁盤上的一個或多個文件組成, 這些文件叫做數據文件(datafile),數據文件只能屬於一個表空間。 數據文件創建後可以改變大小。 創建新的表空間需要創建新的數據文件。 數據文件一旦加入到表空間中, 就不能從表空間中移走, 也不能與其他表空間發生聯繫。

    數據庫必須的三類文件是 data file, control file, redolog file. 其他文件 prameter file,password file, archived log files並不是數據庫必須的, 他們只是輔助數據庫的。

    查看數據庫的物理文件組成:

    (1)查看數據文件: SQL> select * from v$datafile;

    (2)查看控制文件: SQL> select * from v$controlfile;

    (3)查看日誌文件: SQL> select * from v$logfile;

    二: 實例

    通俗的講實例就是操作oracle數據庫的一種手段。

    數據庫實例也稱作服務器, 是用來訪問數據庫文件集的存儲結構及後臺進程的集合。

    一個數據庫可以被多個實例訪問(稱爲真正的應用羣集選項)。

    決定實例的大小及組成的各種參數或者存儲在名稱init.ora的初始化文件中, 或者隱藏

    在數據庫內部的服務器參數文件中。 通過spfile引用該文件, spfile存儲在spfile.ora文件中。

    實例啓動時讀取初始化文件, 數據庫系統管理員可以修改該文件, 對初始化文件的修改只有在下次啓動時纔有效。

    Instance分爲兩部分:

    1: memory structure(內存結構)

    memory structure分爲兩部分:SGA(System Global Area)區是用於存儲數據庫信息的內存區,該信息爲數據庫進程所共享。它包含oracle服務器的數據和控制信息, 它是在Oracle 服務器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。

    包括:

    .share pool

    .datafase buffer cache

    .redo log buffer

    .other structures

    PGA(Program Global Area)區包含單個服務器進程或單個後臺進程的數據和控制信息,與幾個進程共享的SGA 正相反PGA 是隻被一個進程使用的區域,PGA 在創建進程時分配在終止進程時回收。

    2: background process(後臺進程)

    包括:

    .PMON 負責在一個Oracle 進程失敗時清理資源

    .SMON 檢查數據庫的一致性如有必要還會在數據庫打開時啓動數據庫的恢復

    .DBWR 負責將更改的數據從數據庫緩衝區高速緩存寫入數據文件

    .LGWR 將重做日誌緩衝區中的更改寫入在線重做日誌文件

    .CKPT 負責在每當緩衝區高速緩存中的更改永久地記錄在數據庫中時,更新控制文件和數據文件中的數據庫狀態信息。

發佈了25 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章