要了解oracle體系結構必須先了解兩個基本的概念: 數據庫和實例.
?? 一: 數據庫
??????? 數據庫(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? 負責在每當緩沖區高速緩存中的更改永久地記錄在數據庫中時,更新控制文件和數據文件中的數據庫狀態信息。
????????????????????????????? .OTHER
posted on 2006-09-15 15:10
壞男孩 閱讀(406)
評論(0) 編輯 收藏 所屬分類:
ORACLE篇章