1.oracle資料庫邏輯結構包含哪些東西?
1)表空間
a.乙個oracle資料庫邏輯上分為更小的邏輯區域叫做表空間
b.乙個表空間同時只屬於乙個資料庫
c.每個表空間由乙個或多個系統檔案組成,叫做資料檔案datafile
d.乙個表空間可以有1個或多個段組成
e.當資料庫執行時表空間可以是online狀態
f.除了system表空間或者帶有活動回滾段的表空間,其他表空間可以設定為offline狀態
g.表空間可以再讀寫(read-write)和唯讀(read-only)狀態間切換
2)段a.乙個段是在乙個表空間中為指定的邏輯存數結構分配的空間。例如,分配給乙個表的所有儲存就是乙個段。
b.乙個段只能屬於乙個表空間,可以跨越多個資料檔案
c.乙個段由乙個或多個區組成
3)區a.隨著段的增長,額外的區將分配給段
b.dba可以為段手動增加區
c.乙個區是連續的oracle塊集合
d.乙個區只能在乙個資料檔案中存在
4)塊a.塊作為oracle資料庫最小的儲存單位,資料全部儲存在資料塊中。
b.乙個oracle資料塊相當於乙個或多個從已存在的資料檔案中分配的作業系統塊
c.乙個標準資料塊的大小由資料庫建立時的初始化引數db_block_size指定
d.為避免不必要的i/o,資料塊的大小應該是作業系統塊大小的幾倍
e.最大的資料塊大小取決於作業系統
2.系統表空間與非系統表空間的區別?
1)系統表空間 system tablespaces:
a.隨著資料庫的建立而建立
b.在所有資料庫中必須存在
c.系統表空間包含資料字典,儲存程式單元
e.包含系統回滾段
f.最好不要包含使用者資料
2)非系統表空間 non-system tablespaces:
a.分離回滾段、臨時段、應用資料段和應用索引段
b.通過備份需求分離資料
c.分離動態和靜態資料
e.控制使用者物件空間分配的數量
f.方便資料庫管理
3.如何建立表空間?
使用create tablespace語句,一下是官方示例:
create tablespace userdata
datafile '/u01/oradata/userdata01.dbf' size 100m
autoextend on next 5m maxsize 200m;
create tablespace tablespace
[datafile clause]
[minimum extent integer[k|m]]
[blocksize integer [k]]
[logging|nologging]
[default storage_clause ]
[online|offline]
[permanent|temporary]
minimum extent 指定最小區大小,使用k(千兆)或m(兆)
logging 預設值,指定表空間中對所有表,索引和分割槽修改寫入到redo中
nologging 與logging相反
online與offline 建立完表空間後是否立即可用
permanent 指定表空間可用來保留永久物件
temporary 指定表空間只能來保留臨時物件
autoextend 啟用資料檔案自動擴充套件
4.管理表空間的方式?
1)本地管理表空間
a.用位圖bitmap(在每個資料檔案中維護)記錄空閒區
b.每個bit對應乙個資料塊
c.bit值指示空閒和已使用
好處:減少資料字典表的爭用;空間分配和**不發生undo;沒有合併需求(減少碎片);
用法舉例:
create tablespace userdata
datafile '/u01/oradata/userdata01.dbf' size 500m
extent management local uniform size 256k;
[ extent management
[ dictionary | local
[ autoallocate | uniform [size integer[k|m]] ] ] ]
local和dictionary 就不解釋了。
autoallocate 指定表空間由系統管理,使用者不能指定區大小
uniform 指定表空間由同一的區大小管理。使用k或m指定大小。
2)資料字典管理表空間
a.預設管理方法
b.空閒區被記錄在資料字典表中
create tablespace userdata
datafile '/u01/oradata/userdata01.dbf' size 500m
extent management dictionary
default storage ( initial 1m next 1m );
5.undo表空間
1)undo表空間只能用來儲存回滾段
2)建立undo表空間只能使用datafile和extent management語句
create undo tablespace undo1
datafile '/u01/oradata/undo101.dbf' size 40m;
6.temporary表空間
1)用來進行排序操作 sort_area_size(用來設定排序區的大小)
2)不能包含任何永久物件
3)推薦使用本地管理
create temporary tablespace temp
tempfile '/u01/oradata/temp01.dbf' size 500m
extent management local uniform size 10m;
4)本地管理臨時表空間有臨時資料檔案tempfiles:
a.臨時檔案一直是nologging模式
b.不能設定臨時檔案為唯讀read-only
c.不能重新命名乙個臨時檔案
d.不能使用alter database命令增加臨時檔案
e.臨時檔案對於唯讀資料庫是需要的
f.介質恢復不恢復臨時檔案
g.備份控制檔案時不生成任何臨時檔案的資訊
h.建立控制檔案時不能指定任何關於臨時檔案的資訊
7.預設default臨時表空間
1)避免使用system表空間儲存臨時資料
2)可以使用create database和alter database語句建立
3)當使用create databse命令建立,預設臨時表空間為本地管理
預設臨時表空間的限制:
a.沒有指定新的預設臨時表空間之前不能刪除現有預設臨時表空間
b.不能更改預設臨時表空間為永久型別
c.不能修改預設臨時表空間為offline狀態
注:system表空間、帶有活動回滾段和預設臨時表空間不能設定為離線狀態
Oracle表空間與資料檔案
1.oracle資料庫邏輯結構包含哪些東西?1 表空間 a.乙個oracle資料庫邏輯上分為更小的邏輯區域叫做表空間 b.乙個表空間同時只屬於乙個資料庫 c.每個表空間由乙個或多個系統檔案組成,叫做資料檔案datafile d.乙個表空間可以有1個或多個段組成 e.當資料庫執行時表空間可以是onli...
oracle管理表空間與資料檔案
檢視表空間使用情況 select upper f.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb f.total bytes 已使用空間 m to char round d.tot grootte mb f.total b...
oracle表空間和資料檔案
size medium 表空間是資料庫的邏輯組成部分,在物理上講,資料庫資料存放在資料檔案中,從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或者多個資料檔案組成,表空間由段構成,而段又由區構成,而區又由塊構成。表空間從邏輯上組織資料庫的資料,資料庫邏輯上是由乙個或者多個表空間組成,表空間有以下作...